🚢

ECSの直近アップデート2点とComing Soon2点を見てみた

2024/11/20に公開

本記事では、11/18,19でリリースされたECSアップデート2点と、aws/containers-roadmap上でComing SoonとなっているECSアップデート2点とを紹介します。

※本当は4件ともComing Soonとして紹介予定でしたが、うち2件が記事公開直前にリリースされたため急遽構成を変更しました😇。Coming Soonが本当にSoonだとは...

まとめ

直近アップデート2件:

  • VPC Latticeとの統合: ALBなしでタスクを直接Latticeに紐付け
  • 「ソフトウェアバージョンの一貫性」を無効化可能に: デプロイ戦略の自由度向上

Coming Soon2件:

  • 予測スケーリング
  • FargateでタスクをAZ間で均等配置

おさらい: aws/containers-roadmapとは

  • AWSのコンテナ関連のロードマップはGitHubで公開されています。

https://github.com/aws/containers-roadmap

  • 「どんなアップデートが来そうか」や「他のユーザがどんな課題を抱えているか」がわかって面白いです。

  • コンテナ関連のアップデートの"大半"は掲載されます。が、このロードマップが全てではありません

    The majority of our development work for Amazon ECS, Fargate, ECR, EKS and other AWS-sponsored OSS projects are included on this roadmap. Of course, there will be technologies we are very excited about that we are going to launch without notice to surprise and delight our customers.

  • Projectを見ると、各要望のステータスがわかります。
    roadmap-all

    • Coming Soonの定義: 数ヶ月後に登場しうる cf.定義

直近アップデート2件

1. VPC Latticeとの統合 (2024/11/18)

https://aws.amazon.com/jp/about-aws/whats-new/2024/11/amazon-vpc-lattice-elastic-container-service/

  • VPC LatticeのTarget Groupのターゲットとして、ECSのサービスも登録可能になった

  • 従来はLatticeのターゲットとして登録できなかったため、ALBを間に置いて Lattice Target Group->ALB->ECS という構成だった

    • 面倒+ALBのコストが懸念
  • ECSサービスの作成or更新時に設定可能

    • 既存サービスに対しても後から設定可能なのはありがたい
    • コンソールだとこのような画面:
  • 使い方の詳細はこちら↓

https://aws.amazon.com/jp/blogs/aws/streamline-container-application-networking-with-native-amazon-ecs-support-in-amazon-vpc-lattice/

  • ロードマップでのIssueはこちら↓

https://github.com/aws/containers-roadmap/issues/2004

2. バージョンの一貫性を無効化可能に (2024/11/19)

https://aws.amazon.com/jp/about-aws/whats-new/2024/11/amazon-ecs-configure-software-version-consistency/

  • 2024/07/11から適用された「ソフトウェアバージョンの一貫性」を、無効化可能になった

https://aws.amazon.com/jp/about-aws/whats-new/2024/07/amazon-ecs-software-version-consistency-containerized-applications/

  • versionConsistencydisabledにすれば無効化できる(デフォルトはenabled

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#ContainerDefinition-versionconsistency

「ソフトウェアバージョンの一貫性」とは?

  • サービス内のすべてのタスクが、必ず同一のイメージダイジェストから起動されるようになった(=すべてのタスクが同一になる)
  • 「latestタグを参照していたら、後から実際のイメージが変更され、スケールアウト時に異なるイメージが使われてしまう」ような問題を解消できる
  • 詳細は下記スレッドが非常に参考になります

https://x.com/otty246/status/1811672851046629619

上記アップデートの何が問題だったか?

  • 挙動が変化したことで、既存の挙動に依存していたデプロイ戦略が崩れた
    • 例)「latestでpushされ次第、各タスク定義が次回からそのイメージを使ってデプロイする」
  • 強制ではなく、オプトインにしてほしかったという声
  • Issueのスレッド数がかなり多く、色々な方が困っていた様子(レアケースに見えて、レアケースではなかった?)

https://github.com/aws/containers-roadmap/issues/2393
https://github.com/aws/containers-roadmap/issues/2394

Coming Soonアップデート2件

Issueのリアクション数の多い順で紹介します。

1. Predictive Auto Scaling

https://github.com/aws/containers-roadmap/issues/1574

  • 定期的/予測可能なピークに対して、自動でスケールさせるリクエスト
  • スケジュールスケーリングとは異なり、「いつスケールさせるか」を分析・設定する必要がない点が強み
  • EC2ではサポート済

https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-predictive-scaling.html

2. [Fargate] Strong placement strategy: タスクをAZ間で均等配置

https://github.com/aws/containers-roadmap/issues/2108

  • Fargateで、タスクをAZ間で厳密に均等配置できるようにするリクエスト

  • 現状、FargateのAZ分散の均等度合いはベストエフォートらしい

    Fargate will try its best to spread tasks across accessible Availability Zones.

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement.html#fargate-launch-type

  • EC2では2024/11/08にサポートされたもよう

https://aws.amazon.com/jp/about-aws/whats-new/2024/11/ec2-auto-scaling-strict-availability-zone-balance/

おわりに

  • 「EC2でサポートされる→ECSでもサポート」の流れがいくつかあるので、今後のアップデート予測に役立てたいと思います。

  • App Meshの終了がアナウンスされたこともあり、今後のECSの使い方・思想に影響しそうという点で、VPC Lattice統合は注目したいです。

  • Coming Soonは本当にSoonかもしれないので、こういう記事は完成次第即公開が良いという学びになりました。特にre:Invent前は。

  • 余談)Service Connectの過去アップデート+ロードマップ状況は下記スライドで整理しました。

https://speakerdeck.com/tkikuc/ecs-service-connectnokoremadenoatupudetotojin-hou-noroadmapwojian-temiru

サイバーエージェント Developer Productivity室

Discussion