برای آن‌که بیشترین بهره‌وری و کارایی را از ستون داشته باشید، رعایت بهترین رویه‌های زیر توصیه می‌شود:

Security (امنیت)

  • دسترسی به منابع ستون و APIها را از طریق IAM مدیریت کنید.
  • Security Groupها را با قوانین حداقل سطح دسترسی (Least Privilege) پیکربندی نمایید.
  • سیستم‌عامل و اپلیکیشن‌های روی Instance را به‌طور منظم به‌روزرسانی و Patch کنید.
  • برای شناسایی خودکار آسیب‌پذیری‌های نرم‌افزاری و افشای ناخواسته شبکه، از Audit Log استفاده کنید.

Storage (ذخیره‌سازی)

  • برای سیستم‌عامل و داده‌ها، Volumeهای جداگانه تعریف کنید. اطمینان یابید Volume داده‌ها پس از Termination Instance حفظ شود تا در صورت نیاز به‌صورت دستی پاک گردد.
  • Volumeها و Snapshotهای حاوی داده‌های حساس را حتماً رمزگذاری (Encrypt) کنید.
  • در Object Storage ستون می‌توانید داده‌های غیرساخت‌یافته مانند لاگ‌ها، بکاپ‌ها، تصاویر و فایل‌های حجیم را ذخیره کنید. این لایه با S3 API سازگار است و امکان یکپارچگی با ابزارهای استاندارد را فراهم می‌کند.
  • بر اساس الگوی دسترسی، کلاس ذخیره‌سازی متناسب با نیاز خود انتخاب کنید.
  • با تعریف Lifecycle Policy، مدیریت هزینه و منابع را بهینه کنید.
  • با تنظیم Bucket Policy، سطح دسترسی به آبجکت‌ها را کنترل نمایید.
  • هنگام ساخت Bucket به عمومی یا خصوصی بودن آن دقت کنید.
  • برای بهبود Performance و مدیریت هزینه، از یکپارچه‌سازی CDN با Object Storage بهره ببرید.

Resource Management (مدیریت منابع)

  • از Instance Metadata برای شناسایی و ردیابی منابع استفاده کنید.
  • Service Quotaها را بررسی کرده و در صورت نیاز به‌موقع افزایش دهید.
  • با کمک مانیتورینگ، مصرف منابع را پایش کرده و نسبت به Right-sizing اقدام کنید.

Backup & Recovery (پشتیبان‌گیری و بازیابی)

  • به‌طور منظم از Volumeها بکاپ بگیرید و از Instanceها Image تهیه کنید تا Template پیکربندی همیشه در دسترس باشد.
  • اپلیکیشن را طوری طراحی کنید که با IP دینامیک پس از Restart Instance سازگار باشد.
  • برای Failover آماده باشید؛ از Floating IP یا Network Interface برای Instance جایگزین استفاده کنید.
  • فرآیند بازیابی Volume و Instance را به‌طور دوره‌ای تست کنید.

Networking (شبکه)

  • مقدار TTL را برای IPv4 و IPv6 روی ۲۵۵ تنظیم کنید تا از مشکلات Reachability جلوگیری شود.
  • مقدار MTU را روی ۱۴۵۰ تنظیم کنید تا از Fragmentation پیشگیری شود.
  • برای جداسازی بخش‌ها، از VPC یا Subnet مجزا استفاده کنید.
  • برای اتصال شبکه‌های مستقل (داخل یا خارج از ستون) از Tunnel همراه با Encryption بهره ببرید.

Kubernetes (کوبرنتیز)

  • بر اساس نیازتون Tier مناسب را انتخاب کنید (Free, Standard, Premium)
  • تلاش کنید تا کلاستر و تمام نودپول‌ها را به روز نگه دارید و به موقع ارتقا دهید.
  • به دلیل وجود Breaking Change در نسخه‌های جدید، تا جای ممکن از وابستگی مستقیم به APIهای کوبرنتیز خودداری کنید.
  • معماری اپلیکیشن را Stateless طراحی کنید تا در Rollout یا Scale مشکل ایجاد نشود.
  • روی Control Plane هیچ‌گونه Workload قرار ندهید.
  • به ازای هر ۳ Worker یک Node Pool بسازید تا ارتقا و Placement بهینه‌تر انجام شود.
  • از Local Disk تنها در صورت نیاز استفاده کنید. در غیر این صورت، Remote Disk انتخاب بهتری است.
  • CNI را بر اساس نیاز خود از بین Calico یا Cilium انتخاب کنید.
  • از کلاستر و PVCها به‌طور منظم بکاپ بگیرید. ستون به‌صورت پیش‌فرض افزونه Velero را فراهم کرده است.
  • سرویس مانیتورینگ پیش‌فرض (Kube-prometheus-stack) را در صورت نیاز تکمیل یا با نسخه اختصاصی خود جایگزین کنید.
  • برای مدیریت دسترسی‌ها، IAM ستون را ترجیح دهید تا یکپارچگی بیشتری با سایر سرویس‌ها داشته باشید.
  • از Registry Mirror ستون یا Mirror اختصاصی در زمان ساخت Node Pool استفاده کنید.
  • برای مدیریت هزینه و SLA، Tier مناسب (Free، Standard یا Premium) را انتخاب کنید.

Virtual Machines (ماشین‌های مجازی – نسخه ۲)

  • ایزوله‌سازی با VPC: محیط‌های مختلف (Production، Staging، Test) را با VPC جدا کنید.
  • منابع مرتبط را در یک Subnet قرار دهید تا بتوانید Firewall Ruleهای یکسان اعمال کنید.
  • تنها در صورت نیاز به ماشین‌ها Public IP اختصاص دهید؛ برای دسترسی Outbound از Internet Gateway استفاده کنید.
  • برای توزیع بار و افزایش دسترس‌پذیری از Load Balancer استفاده کنید.
  • برای کنترل ترافیک ورودی/خروجی از Security Group با اصل Least Privilege بهره ببرید.
  • از داده‌ها در لایه اپلیکیشن نسخه پشتیبان بگیرید.
  • داده‌های حساس را روی Persistent Disk ذخیره کنید.
  • در سناریوهایی مانند دیتابیس‌های Multi-Replica از Placement Group استفاده کنید.
  • عملیات ساخت، تغییر یا حذف VM را از طریق API و به‌صورت IaC انجام دهید.
  • از User Data برای خودکارسازی نصب پکیج‌ها و پیکربندی سرویس‌ها استفاده کنید.
  • پس از پیکربندی یک VM، از آن Image تهیه کنید تا ساخت ماشین‌های مشابه سریع‌تر انجام شود.
  • مصرف CPU و RAM را پایش کرده و منابع را Right-size کنید.
  • نسبت CPU به RAM را بر اساس نوع Workload بهینه کنید.
  • برای بارهای سنگین از Dedicated Machine و برای محیط‌های Dev/Test از Economy Machine استفاده کنید.
  • منابع بلااستفاده را پاک کنید یا از آن‌ها Image بگیرید.
  • چرخه عمر ماشین‌ها را بررسی کرده و در صورت امکان به ظرفیت کمتر منتقل نمایید.

Database (دیتابیس)

  • در محیط Production حتماً High Availability را فعال کنید تا Failover خودکار انجام شود.
  • برای Production از ماشین‌های Dedicated با Local Disk و برای Dev/Staging از Economy Machine با Remote Disk استفاده کنید.
  • با حداقل منابع شروع کرده و در صورت نیاز مقیاس را افزایش دهید.

CDN (شبکه توزیع محتوا)

  • فایل‌های استاتیک مانند تصاویر، ویدیو، CSS و JS را روی CDN ستون قرار دهید تا Latency کاهش یابد.
  • همیشه HTTPS/TLS را فعال کنید و از Certificate واقعی استفاده نمایید. امکان صدور و تمدید خودکار گواهی در CDN ستون وجود دارد.
  • از Firewall داخلی CDN برای مقابله با حملات و ترافیک غیرمجاز استفاده کنید.
  • Caching Rules را دقیق تنظیم کنید تا حداکثر Cache Hit حاصل شود.
  • در صورت تغییر فایل‌ها، از Cache Invalidation یا Purge برای انتشار سریع نسخه‌های جدید استفاده کنید.
  • برای محتوای حساس از لینک امن (Secure Link) استفاده کنید.
  • مانیتورینگ و Log Forwarder را فعال کنید تا با تحلیل متریک‌ها و لاگ‌ها (از جمله از طریق Datastore ستون) مصرف و سلامت سرویس را بررسی کنید.