یک تصویر کانتینر را اجرا کنید؛ باقی فرایندها نباید مانع توسعه باشند. بسیاری از تیمها زمان زیادی را صرف پیکربندی لودبالانسر، شبکه، نقشهای 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 را مشاهده کنید.





