IAC در عمل: استقرار یک سایت استاتیک با Pulumi ، AWS و CloudFlare

این یک ارسال برای استقرار Pulumi و Document Challenge است: استقرار سریع وب سایت استاتیک
🚀 چه چیزی ساختم
این پروژه نحوه استقرار یک وب سایت استاتیک را از ابتدا با استفاده از Pulumi با Python ، Amazon S3 برای میزبانی وب سایت و CloudFlare برای DNS و CDN نشان می دهد.
این وب سایت ، که در یک میلیون.Tech میزبانی شده است ، با استفاده از زیرساخت ها به عنوان کد (IAC) کاملاً تهیه شده و استقرار قابل تکرار ، خودکار و کنترل شده را امکان پذیر می کند.
link لینک نسخه ی نمایشی
یک میلیون
repo repo
🔗 https://github.com/onlyfave/pulumi-deploy-static
برای یک راهنمای کامل گام به گام حتماً ReadMe را بررسی کنید.
✍ سفر من
من این پروژه را با یک هدف اصلی در ذهن شروع کردم: برای به دست آوردن تجربه کار با استفاده از Pulumi با Python ، و استفاده از دکمه های کلیک در کنسول AWS ، تجربه ای در زمینه استقرار زیرساخت ها را کسب کردم. من قبلاً با سایت های استاتیک کار می کردم ، اما این بار ، من می خواستم یک روش تمیز ، تکرار شونده و خودکار برای مدیریت چرخه کامل یک سایت ، از کد به ابر ، با استفاده از زیرساخت ها به عنوان کد (IAC).
تنظیم اولیه
من Pulumi را انتخاب کردم زیرا به من اجازه می دهد زیرساخت ها را در پایتون بنویسم (زبان مورد نظر من). من یک پروژه جدید Pulumi ایجاد کردم و داربست منابع مورد نیاز برای میزبانی یک سایت استاتیک را شروع کردم:
-
یک سطل S3 با پیکربندی سایت استاتیک
-
سیاست های دسترسی عمومی (اما با احتیاط ، برای ایمن نگه داشتن چیزها)
-
بارگذاری پرونده های سایت محلی به S3 با استفاده از Fileasset Pulumi
-
تنظیم DNS با استفاده از CloudFlare برای اشاره به دامنه سفارشی من یک میلیون.ک به سایت S3 میزبان
این طرح بود. روی کاغذ ساده اما استقرار ابر هرگز به همان اندازه صاف نیست که در نگاه اول فکر می کنید
من هر چالشی را که با آن روبرو شدم به اشتراک گذاشتم ، از خطاهای سطل S3 گرفته تا درد انتشار DNS ، و نحوه حل آنها. این بسته بندی شده با درس ، قطعه کد و مبارزات Dev واقعی است.
📖 چگونه ابر را کج کردم – عیب یابی سایت S3 ، CloudFlare & Pulumi Static من
🧠 استفاده از پاپ
پولومی ستون فقرات این پروژه بود.
- من استفاده کردم پایتون SDK برای تعریف و تهیه یک سطل S3 پیکربندی شده برای میزبانی سایت استاتیک.
- اضافه کردم پیکربندی CloudFlare DNS از طریق Pulumi برای مسیریابی دامنه سفارشی من (
one-million.tech
) به نقطه پایانی S3. - من فایلهای HTML استاتیک را با انواع صحیح با استفاده از Pulumi بارگذاری کردم
FileAsset
بشر - اسرار و پیکربندی ها را با اطمینان ذخیره کردم
pulumi config
بشر
خالص شما چیست؟
- IAC با یک زبان واقعی (Python💻)
- بدون تنظیم دستی یا کلیک از طریق داشبورد AWS/CloudFlare
- کنترل نسخه + استقرار مجدد سریع
- ادغام بدون درز از چندین ارائه دهنده ابر