یک تصویر کانتینر را اجرا کنید؛ باقی فرایندها نباید مانع توسعه باشند. بسیاری از تیم‌ها زمان زیادی را صرف پیکربندی لودبالانسر، شبکه، نقش‌های IAM و سیاست‌های مقیاس‌گذاری می‌کنند تا سرویس کانتینری به تولید برسد. ECS Express Mode این مسیر را کوتاه می‌کند: با حداقل پیکربندی، سرویس HTTPS روی Fargate به‌همراه Application Load Balancer، گواهی TLS، خودمقیاس‌دهی و استقرارهای Canary تحویل می‌دهد و همهٔ منابع در حساب AWS شما ساخته و قابل بازبینی خواهند بود.

چرا ECS Express Mode؟

ECS Express Mode مسیر از کد تا سرویس تولیدی را ساده می‌کند بدون قربانی کردن قابلیت گسترش و کنترل. این راه‌حل مبتنی بر Amazon ECS است و با فراهم کردن جریان یک‌مرحله‌ای، پیچیدگی‌های اولیه راه‌اندازی را حذف می‌کند. هم‌زمان می‌توان هر زمان که نیاز شد به تعریف تسک استاندارد ECS بازگشت و مواردی مثل sidecarها، عامل‌های مشاهده‌پذیری و Secrets را اضافه کرد.

آنچه به‌صورت پیش‌فرض دریافت می‌کنید

  • استفاده بهینه از ALB: تا 25 سرویس Express Mode می‌توانند یک Application Load Balancer مشترک داشته باشند؛ Express Mode تنها وقتی نیاز باشد ALB ایجاد می‌کند و هنگام حذف سرویس آن را پاک می‌کند.
  • انتشارهای ایمن (Canary): هر استقرار به‌صورت Canary انجام می‌شود: 5% ترافیک به نسخهٔ جدید هدایت می‌شود و پس از 3 دقیقه مابقی منتقل می‌گردد. در صورت افزایش خطاهای 4xx/5xx بالاتر از 1%، هشدار تولید و فرایند بازگردانی خودکار فعال می‌شود.
  • مقیاس خودکار: هر سرویس دارای سیاست autoscaling با هدف 60% استفاده CPU است و از 1 تا 20 تسک مقیاس می‌یابد؛ امکان پیکربندی مقیاس بر اساس حافظه یا تعداد درخواست‌ها نیز وجود دارد.
  • آماده برای IaC: مدیریت و تعریف سرویس‌ها از طریق CloudFormation، CDK، Terraform یا GitHub Actions ممکن است و گردش کارهای خودکار را تسهیل می‌کند.
  • مالکیت کامل منابع: کلاستر، ALB، target groupها، گروه‌های لاگ و سایر منابع همگی در حساب AWS شما ساخته می‌شوند و قابل مشاهده و تغییر مستقیم هستند.

نمونه ساده با Terraform

resource "aws_ecs_express_gateway_service" "frontend_service" {
  execution_role_arn       = aws_iam_role.execution.arn
  infrastructure_role_arn  = aws_iam_role.infrastructure.arn
  primary_container {
    image = "111122223333.dkr.ecr.us-east-1.amazonaws.com/my-service:1.4.2"
  }
}

وقتی اپلیکیشن بیش از یک کانتینر نیاز دارد

با رشد اپلیکیشن، نیاز به sidecarها (عامل‌های لاگ و ترِیس)، تصاویر سخت‌شدهٔ امنیتی یا مدیریت مدارک با Secrets Manager معمولاً پیش می‌آید. Express Mode امکان استفاده از تعریف تسک استاندارد ECS را هم فراهم می‌کند: می‌توان همان مشخصهٔ قبلی را آورد، کانتینرهای جانبی را اضافه کرد و ARN تعریف تسک را به سرویس متصل نمود. بدین شکل سادگی راه‌اندازی اولیه با قابلیت گسترش و کنترل کامل ترکیب می‌شود.

نمونه تعریف تسک با CDK

const taskDef = new ecs.FargateTaskDefinition(this, 'TaskDef', {
  cpu: 1024,
  memoryLimitMiB: 2048,
  executionRole,
  taskRole,
});

taskDef.addContainer('Main', {
  image: ecs.ContainerImage.fromRegistry('111122223333.dkr.ecr.us-east-1.amazonaws.com/my-service:1.4.2'),
  essential: true,
  // port mappings و تنظیمات اضافی
});
نمایی از داشبورد مدیریت سرویس‌های کانتینری

نکات عملی برای تیم‌های توسعه

  • برای راه‌اندازی سریع سرویس‌ها با حداقل تصمیمات زیرساختی، Express Mode گزینه‌ای کارآمد است.
  • برای نیازهای پیچیده‌تر و کنترل دقیق‌تر، از تعریف تسک استاندارد ECS استفاده کنید تا sidecarها و سیاست‌های سفارشی را اضافه نمایید.
  • نگهداری منابع در حساب خودتان امکان آزمون، ممیزی و اعمال پچ‌های موردنیاز را فراهم می‌آورد؛ مزیتی که در راهکارهای کاملاً مدیریت‌شده همیشه در دسترس نیست.

چشم‌انداز و جمع‌بندی

ECS Express Mode تعادلی عملی بین سرعت راه‌اندازی و کنترل فنی ایجاد می‌کند: تیم‌ها سریع‌تر سرویس تحویل می‌دهند و هر زمان لازم باشد می‌توانند وارد جزئیات زیرساخت شوند. این مدل فرصت می‌دهد زمان کمتری صرف تصمیم‌گیری‌های زیرساختی شود و منابع برای نوآوری باقی بماند، در حالی که دسترسی و امنیت لازم برای محیط تولید حفظ می‌شود.

برای مطالعهٔ بیشتر می‌توانید مستندات رسمی ECS و معرفی Fargate را مشاهده کنید.