Amazon Web Services ブログ

Amazon ECS Anywhere のご紹介

この記事は、Introducing Amazon ECS Anywhere を翻訳したものです。

2014 年、AWS は EC2 インスタンス上で稼働する様々な規模のコンテナの管理を簡潔にするために Amazon Elastic Container Service (Amazon ECS) を発表しました。Amazon ECS の採用が増えるにつれて、お客様は「Undifferentiated Heavy Lifting」(差別化につながらない重労働) である、コンテナを実行するための EC2 インスタンスの管理を取り除くという新しい問題に対応していました 。そして 2018 年、AWS はコンテナを実行するためのインフラストラクチャの管理が不要なサーバーレスプラットフォームである AWS Fargate を発表しました。

この 2 年間、お客様は Amazon ECS を利用したコンテナのデプロイが、より多くの場所で行える柔軟性を求めていました。AWS リージョンの外部で、他の連携するサービスの近くでアプリケーションを実行するようなユースケースが増えていました。2019 年と 2020 年に、AWS は Amazon ECS のタスクを AWS リージョンの外部で実行可能にするオプションに関する一連の発表を行いました。AWS Outposts は、AWS が所有・管理するハードウェアを利用して、AWS のインフラストラクチャ、サービス、API、そしてツールをお客様のオンプレミス環境に拡張します。AWS WavelengthAWS Local Zones は、特定のレイテンシやネットワーク接続性の要件に対応します。これらは、Amazon ECS に完全にサポートされています。

一方で、例えばデータセンターに多額の設備投資を行なっているお客様からは、より多くのデプロイのオプションを要望する声もありました。これらのお客様は、より多くの管理作業が必要であることを理解した上で、データセンターのキャパシティを有効活用したいと考えています。また、特定のコンプライアンスや規制要件を持つ業界のお客様は、インフラストラクチャを自身で所有・管理する必要がある場合もあります。これらのお客様もクラウドに全てを移行できるかもしれない一方、財政資源や特定のワークローなど移行を阻害する現実的な制約を考慮する必要があります。

お客様は、Amazon ECS がシンプルであること、そして「ちゃんと動作する」ことを気に入っています。ただし、AWS の所有するインフラストラクチャではデプロイ要件にマッチしない可能性もあります。その場合、それぞれのデプロイターゲットのために異なるコンテナ管理のテクノロジーを採用することは難しいかもしれません。技術投資を健全にするために、必要となるデプロイの柔軟性を実現する単一の体験にフォーカスする必要があります。

本日、Amazon ECS の拡張である Amazon ECS Anywhere (ECS Anywhere) を発表しました。2021 年の提供開始を予定しており、Amazon ECS タスクをどこにでもデプロイすることが可能となります。これには、従来の AWS が管理するインフラストラクチャと、お客様が管理するインフラストラクチャが含まれています。コントロールプレーンは、常に最新の状態を維持して AWS 上で稼働しており、AWS マネージドであるというメリットを損なうことなく簡単に利用することができます。

次の図は、Amazon ECS のデータプレーンの柔軟性を表したものです。この図には、来年提供予定の ECS Anywhere も新しいデプロイモデルとして含まれています。

Amazon ECS data plane flexibility

  • ECS Anywhere では、AWS リージョン上で稼働する使い慣れたコントロールプレーンを利用します。これは、ECS クラスターが作成されている AWS リージョンです。
  • AWS Systems Manager agent をお客様が管理するオペレーティングシステムにインストールし、それらのオペレーティングシステムを AWS Systems Manager のマネージドインスタンスとして扱えるようにします。
  • 例えば SSM Distributor を活用して、既存のオープンソースの Amazon ECS エージェントの新しいコンバージドバージョンをマネージドインスタンスにインストールします。これらのインスタンスは、作成済みの ECS クラスターに登録されます。
  • 新しい起動タイプが導入されます。既存の “EC2” および “FARGATE” 起動タイプに加えて、現在 “EXTERNAL” と呼ばれている起動タイプが追加されます。この新しい起動タイプにより、Amazon ECS コントロールプレーンは AWS が管理するインフラストラクチャの外部で ECS タスクを実行することができます。また、Amazon ECS capacity providers による ECS Anywhere のサポートも計画しています。Capacity providers は、アプリケーションファーストな Amazon ECS の世界における、キャパシティを管理する戦略的な方法であり続けます。

ECS Anywhere で実行される ECS タスクは、通常の ECS タスクと同様に “タスク用の IAM ロール” や “タスク実行ロール” が割り当てられます。これは、ECS タスクを AWS リージョン内にデプロイした場合と同様に、必要に応じて AWS サービスを利用できることを意味しています。それに加えて、お客様が管理するオペレーティングシステムのローカルリソースや、ローカルネットワークの接続性を効果的に利用することもできます。これにより、“EXTERNAL” にデプロイされた Amazon ECS アプリケーションが、同じデータセンター内で実行されているサービスに接続する際に低遅延で広い帯域での接続が可能となります。

最後に、AWS では ECS Anywhere において、次のような tenets を掲げています。

  • Amazon ECS のコントロールプレーンは、引き続き AWS リージョン内で稼働する。これにより、アプリケーションをデプロイするために必要なインフラストラクチャを妥協することなく、使い慣れたシンプルな Amazon ECS が利用できる。
  • タスクの管理に必要な情報のみ AWS リージョン内の Amazon ECS コントロールプレーンに送信する。これには、コンテナホストのヘルスステータス、コンテナの稼働状況 (起動、停止など)、設定済みの場合はコンテナのヘルスステータスを含む。
  • Amazon ECS Anywhere は、インフラストラクチャに依存しない。ECS Anywhere エージェントは、インフラストラクチャの詳細には固執しておらず、VM、ベアメタル、Raspberry Pi、およびサポートされているオペレーティングシステムを実行しているその他のインフラストラクチャで稼働することができる。ただし、ECS Anywhere が一般提供される際には、その他の制約により制限を設ける可能性がある。
  • ECS Anywhere エージェントの接続が途切れた場合は、ECS Anywhere タスクはお客様が管理するインフラストラクチャ上で実行し続ける。タスクの更新やスケーリング、その他の AWS サービスを利用する場合にコントロールプレーンへの接続が必要となる。

これらの機能は、現在開発中であることをご注意ください。機能の詳細について、一般提供の前に変更される可能性があります。

ECS Anywhere は、Amazon ECS にとってエキサイティングな進化であり、来年の一般提供でみなさんにお届けできることを楽しみにしています。それまでの間、ECS Anywhere が役に立つシナリオを確認するためには、こちらのデモを参考にしてください。ECS Anywhere のアップデートについては、メーリングリストに登録することでご確認いただけます。

– プリンシパルデベロッパーアドボケイト Massimo Re Ferre

翻訳はソリューションアーキテクト落水 (おちみず) が担当しました。