אתר אינטרנט סטאטי על Amazon S3

אתר אינטרנט סטאטיPhoto by Christopher Gower on Unsplash

עשור אחורה

כבר לפני כמעט עשור, באחד הפוסטים היותר פופולריים שלי, כתבתי על האפשרות הזאת של אתר אינטרנט סטאטי על S3. ועדיין, שנים אחרי, אני נדהם, כל פעם מחדש, לגלות עד כמה משתמשי AWS לא מודעים לאפשרות הזאת.

אתר אינטרנט סטאטי

אז לכל מי שלא מכיר, הנה סרט חדש בערוץ ה – YouTube שלי שמסביר שלב אחרי שלב איך להפוך S3 Bucket לאתר סטטי לכל דבר. אם יש לכם אתר אינטרנט סטאטי, דפי נחיתה או Single Page Application, זה יחסוך לכם להרים תשתית שרתים ולוודא שהיא יכולה לתמוך בכמות המשתמשים שלכם, בכל רגע נתון. הפתרון הזה מנצל בצורה מעולה את הפשטות של S3, המחיר הזול, הזמינות הגבוהה והביצועים.

אז נכון, אם אתם צריכים Back-end דינמי, שמריץ קוד שהאתר שלכם תלוי בו כגון Java, NodeJS, PHP ושפות אחרות, זה כנראה לא הפתרון עבורכם אבל יוצא לי לראות יותר ויותר אתרים שמבוססים על קוד בקליינט, עם לוגיקה מבוססת JavaScript, כגון אתרי React או Angular שמדברים עם ה – Back-end באמצעות API. לארכיטקטורה כזאת, הפתרון של ארוח האתר שלכם על S3 הוא משהו שאתם חייבים לפחות לבדוק כאופציה.

אז הנה המדריך ויש לי עוד כמה תוספות בהמשך הפוסט, למספר נושאים שלא נכנסו לוידאו:

עוד כמה דברים שכדאי לדעת על השרות הזה

מה מיוחד ב – Web Hosting?

S3 תוכנן במקור לשרת בקשות באמצעות REST API. האופציה של Web Hosting, שנוספה לאחר כמה שנים, פותחת למעשה Endpoint נוסף (הגישה ב – REST API עדיין זמינה), המאפשר לגשת לקבצים המוגדרים כ – Public Read באמצעות דפדפן אינטרנט. גישה זו כוללת החזרה של קובץ index.html (או שם אחר שהוגדר בתור index) בבקשה לספריה או ל – Bucket הראשי וקובץ HTML שהוגדר לשגיאה במקרה שקובץ לא נמצא (במקום שגיאה ב – XML).

יש גם כמה מגבלות שכדאי להכיר כמו ההגבלה לעשות קריאות של GET ו – HEAD בלבד והעובדה של – Web Hosting אין תמיכה ב – HTTPS אבל זה משהו שאפשר לפתור באמצעות CloudFront (ובטח אכתוב על זה בעתיד).

ארוח Root Domain

אם אתם מתכננים לארח את הכתובות של ה – Root Domain שלכם (במקרה שלי ziniman.com) ב – S3, אתם חייבים לקרוא ל – Bucket שלכם בשם של ה – Root Domain. זה יאפשר לכם להגדיר מאוחר יותר הפניית Alias ב – Route53, שרות ה – DNS של AWS לאותו דומיין.

Redirect

באותו נושא, אם אתם רוצים לעשות Redirect מ – www.example.com ל – example.com, אתם תמיד יכולים לפתוח Bucket נוסף בשם www.example.com ולהגדיר את כל הבקשות אליו לעשות Redirect ל – Root Domain שלכם, כפי שאפשר לראות בצילום המסך של הגדרות הבלוג הזה.

S3 Redirect

לסיכום, הנה הדוקמנטציה המלאה, למקרה שפיספסתי משהו. מקווה שזה נתן לכם כמה רעיונות מה אפשר לעשות עם יכולת זו.

אודות הכותב

בועז זינימן
Principal Developer Advocate ב – AWS. לפי שהצטרף ל – AWS שימש כדירקטור בכיר לאסטרטגיית Cloud בחברת התוכנה Rogue Wave Software אשר רכשה את Zend Technologies ב – 2015. בעשור האחרון ניהל את הצוותים הטכנולוגיים ב – Zend, כולל תיכנון ופיתוח כל מערכות ה – Web, פתרונות Hosting, אסטרטגיית IT ותשתיות. לפני שהצטרף ל – Zend, במהלך 15 השנים האחרונות, ניהל צוותי פיתוח Web במספר חברות טכנולוגיה בישראל. מתמחה בעיקר במחשוב ענן ובמערכות LAMP - Linux Apache MySQL PHP ובעל הסמכת ZCE - Zend Certified Engineer משנת 2005.