راه اندازی CloudFront و Amazon S3 برای ارائه اشیاء در برنامه های وب (ایمن و کارآمد)

S3 چیست؟
- AWS S3 (سرویس ذخیره سازی ساده) یک سرویس ذخیره سازی شی است که مقیاس پذیری، در دسترس بودن داده ها، امنیت و عملکرد پیشرو در صنعت را ارائه می دهد.
- کسب و کارها می توانند هر مقدار داده را در هر زمان و از هر کجای وب ذخیره و بازیابی کنند. S3 بسیار بادوام است و به گونه ای طراحی شده است که 99.999999999 درصد دوام اشیاء را در طول یک سال معین فراهم می کند و آن را به یک راه حل مطمئن و مطمئن برای ذخیره داده های حیاتی تبدیل می کند.
- S3 به طور گسترده ای در ذخیره سازی و ارائه اشیاء در اینترنت، اعم از تصاویر، ویدیوها یا هر داده بدون ساختار دیگری استفاده می شود. اما هنگامی که ما از S3 با Cloudfront استفاده می کنیم، مزایای زیادی ارائه می دهد
Cloudfront چیست؟
- Cloudfront شبکه تحویل محتوا AWS است که توزیع محتوای وب استاتیک و پویا مانند html، .css، .js و فایل های تصویری را برای کاربران شما سرعت می بخشد.
- CloudFront محتوای شما را از طریق یک شبکه جهانی از مراکز داده به نام مکانهای لبه ارائه میکند.
در اینجا برخی از برنامه های کاربردی CloudFront آورده شده است:
-
تحویل محتوا: CloudFront با ذخیره کردن محتوای شما در مکانهای لبه در سراسر جهان، تحویل محتوای شما را تسریع میکند. این امر زمان دسترسی کاربران به محتوای شما را کاهش می دهد و عملکرد برنامه های وب شما را بهبود می بخشد.
-
پخش ویدئو: CloudFront می تواند پخش ویدئو با کیفیت بالا را به کاربران در سراسر جهان ارائه دهد. همچنین می تواند با AWS Elemental Media Services ادغام شود تا راه حل کاملی برای پخش ویدیو ارائه دهد.
-
امنیت وب سایت: CloudFront با AWS Shield ادغام می شود تا از حملات DDoS محافظت کند. همچنین از رمزگذاری SSL/TLS برای ایمن سازی محتوای شما در حین حمل و نقل پشتیبانی می کند.
-
برنامه های جهانی: CloudFront با ذخیره کردن محتوای شما در مکانهای لبه در سراسر جهان، حضور جهانی را در برنامه شما فراهم میکند. این به کاربران شما اجازه میدهد تا از مکانی که از نظر جغرافیایی به آنها نزدیکتر است، به محتوای شما دسترسی داشته باشند و تأخیر را کاهش میدهد و تجربه آنها را بهبود میبخشد.
-
دروازه API: CloudFront می تواند به عنوان یک مبدا سفارشی برای API Gateway استفاده شود. این به شما امکان میدهد پاسخهای API را در مکانهای لبه ذخیره کنید، بارگذاری را در باطن API شما کاهش میدهد و عملکرد APIهای خود را بهبود میبخشد.
ارائه اشیاء S3 با CloudFront چندین مزیت دارد:
1.) بهبود عملکرد: CloudFront یک شبکه تحویل محتوا (CDN) است که محتوا را در مکانهای لبه در سراسر جهان ذخیره میکند. با ارائه اشیاء S3 با CloudFront، میتوانید عملکرد برنامه خود را با کاهش تأخیر و بهبود زمان بارگذاری برای کاربرانی که دور از سطل S3 قرار دارند، بهبود بخشید.
2) کاهش هزینه ها: سرویس دادن به اشیاء S3 با CloudFront میتواند به کاهش هزینههای انتقال داده شما با ذخیره محتوایی که اغلب در مکانهای لبه به آن دسترسی دارید، کمک کند. این باعث کاهش تعداد درخواست های ارسال شده به سطل S3 می شود که می تواند به کاهش هزینه های انتقال داده شما کمک کند.
3.) امنیت بهبود یافته: CloudFront میتواند به بهبود امنیت اشیاء S3 شما کمک کند و شما را قادر میسازد دسترسی به محتوای خود را با استفاده از انواع روشهای احراز هویت، مانند URLهای امضا شده یا سیاستهای مدیریت هویت و دسترسی AWS (IAM) محدود کنید.
4.) سفارشی سازی: CloudFront طیف وسیعی از گزینههای سفارشیسازی، مانند گواهیهای SSL سفارشی، صفحات خطای سفارشی، و فشردهسازی محتوا را ارائه میدهد که میتواند به شما در بهینهسازی تحویل اشیاء S3 به کاربرانتان کمک کند.
5.) مقیاس پذیری: CloudFront برای مدیریت سطوح بالای ترافیک طراحی شده است و می تواند به طور خودکار مقیاس شود تا تقاضا را افزایش دهد. این می تواند به اطمینان حاصل شود که برنامه شما حتی در دوره های پر ترافیک، بسیار در دسترس و پاسخگو باقی می ماند.
به طور کلی، ارائه اشیاء S3 با CloudFront بهترین روش برای بسیاری از مشتریان AWS است که باید محتوای خود را در سطح جهانی توزیع کنند، عملکرد برنامه های خود را بهبود بخشند و هزینه های خود را کاهش دهند.
S3 و Cloudfront را برای سرویس دهی به اشیا از طریق برنامه وب راه اندازی کنید.
هدف، واقعگرایانه
1.) به کنسول مدیریت AWS وارد شوید.
2.) ایجاد و راه اندازی کنید سطل S3 (خصوصی) برای ذخیره اشیاء
3.) ایجاد کنید توزیع ابری برای سطل S3 شما
4.) راه اندازی کنید نقش IAM و مجوزهای برنامه وب
5.) در نهایت، برنامه را تست کنید !!!
مراحل اجرای پروژه:
1.) به کنسول مدیریت AWS وارد شوید.
- ابتدا با نام کاربری و رمز عبور خود وارد کنسول AWS شوید و منطقه مناسب مانند us-east-1 را انتخاب کنید.
2. سطل S3 (خصوصی) را برای ذخیره اشیاء ایجاد و تنظیم کنید.
- بیایید S3 را جستجو کنیم و کنسول S3 را باز کنیم
- ایجاد سطل S3:
- حالا بیایید چند شی را در سطل S3 برای آزمایش یا پروژه آپلود کنیم.
3.) ایجاد کنید توزیع ابری برای سطل S3 شما
4. نقش IAM و مجوزهای برنامه وب را تنظیم کنید.
- بنابراین اکنون، می توانید از این توزیع ابری در برنامه های خود استفاده کنید. معمولاً برنامه ها نیاز دارند
PutObject
،GetObject
وDeleteObject
مجوز برای سطل S3 برای آن باید درخواست خود را از طریق آن ارائه دهید کاربر یا نقش IAM (توصیه می شود) - عملیات دریافت (دسترسی خواندن اما فقط برای کاربر برنامه وب که ناشناس نیست) توسط Cloudfront اداره خواهد شد.
- برای قرار دادن و حذف شی باید یک نقش IAM ایجاد کنید و خط مشی IAM زیر را پیوست کنید.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::cloudfront-demo1-s3/*",
]
}
]
}
- حال، اختصاص دهید نقش IAM به سرور برنامه وب ** و شما خوب هستید که بروید.
5.) در نهایت، برنامه را آزمایش کنید!
- اکنون میتوانیم دامنه cloudfront را که برای تحویل شی از سطل خصوصی S3 تنظیم شده است، آزمایش کنیم.
- با زدن
https://Distribution-domain-name/s3-object-name
، به صورت زیر برمی گردد.
- در حالی که اگر فقط دامنه را بزنیم
https://Distribution-domain-name
سپس شیئی را که در شیء ریشه پیش فرض تنظیم کرده بودیم به ما نشان می دهد.
🚩🚩 توجه: چند لینک مفید: