Amazon Elastic Container Service とは - Amazon Elastic Container Service

Amazon Elastic Container Service とは

Amazon Elastic Container Service (Amazon ECS)は、非常にスケーラブルで高速なコンテナ管理サービスです。これを使用して、クラスター上のコンテナを実行、停止、管理できます。Amazon ECS で、コンテナは、個々のタスクやサービス内のタスクを実行するために使用するタスクで定義されます。このコンテキストでは、サービスは、クラスター内で指定された数のタスクを同時に実行および維持する設定です。タスクとサービスは、AWS Fargate で管理されるサーバーレスインフラストラクチャで実行できます。または、インフラストラクチャをより詳細に制御するために、管理する Amazon EC2 インスタンスのクラスターでタスクとサービスを実行できます。

Amazon ECS には次の機能があります:

  • AWS Fargate によるサーバーレスオプション。AWS Fargate を使用すると、サーバーを管理したり、容量計画に対処したり、セキュリティのためにコンテナワークロードを分離したりする必要がなくなります。Fargate が、ユーザーに代わってワークロードのインフラストラクチャ管理の側面を担当します。リソースの需要、分離ポリシー、可用性要件に基づいて、クラスター間でコンテナの配置をスケジュールできます。

  • AWS Identity and Access Management (IAM) との統合。各コンテナに対してきめ細かい権限を割り当てることができます。これにより、アプリケーションの構築時に高レベルの分離が可能になります。つまり、AWS に期待するセキュリティとコンプライアンスのレベルでコンテナを起動できます。

  • AWS マネージドコンテナオーケストレーション。フルマネージドサービスである Amazon ECS には、AWS の構成と運用に関するベストプラクティスが組み込まれています。また、コントロールプレーン、ノード、アドオンを管理する必要もありません。これは、Alexa Web Information Service と、Amazon Elastic Container Registry や Docker などのサードパーティーツールの両方に統合されています。この統合により、チームは環境ではなくアプリケーションの構築に集中しやすくなります。

  • 継続的な統合と継続的なデプロイ(CI/CD、Continuous Integration and Continuous Deployment)。これは、Docker コンテナに基づくマイクロサービスアーキテクチャの一般的なプロセスです。継続的な統合と継続的なデプロイのパイプラインを作成して次のアクションを取ることができます:

    • ソースコードリポジトリの変更をモニタリングする

    • そのソースから新しい Docker イメージを構築する

    • Amazon ECR や Docker Hub などのイメージリポジトリにイメージをプッシュする

    • Amazon ECS サービスを更新して、アプリケーションで新しいイメージを使用する

  • サービスの検出のサポート。これは、多くの分散したシステムとサービス指向アーキテクチャ の、キーコンポーネントです。与えられたインフラストラクチャ上でマイクロサービスのコンポーネントが作成されたり、終了されると、サービス検出によって自動的に検出されます。

  • コンテナインスタンスのログ情報を CloudWatch Logs に送信するためのサポート。この情報を Amazon CloudWatch に送信すると、コンテナインスタンスのログを 1 か所で便利に表示できます。これにより、コンテナログがコンテナインスタンスのディスク容量を占めることも防止できます。

AWS コンテナサービスチームは、GitHub でパブリックロードマップを維持しています。ロードマップには、チームが取り組んでいる内容に関する情報が含まれており、AWS のお客様が直接フィードバックを提供することができます。詳細については、GitHub ウェブサイトで「AWS コンテナロードマップ」を参照してください。

起動タイプ

コンテナを実行するために使用できる 次の2 つのモデルがあります:

  • Fargate 起動タイプ - これはサーバーレスの従量制料金オプションです。インフラストラクチャを管理することなく、コンテナを実行できます。

  • EC2 起動タイプ - クラスターに EC2 インスタンスを設定してデプロイし、コンテナを実行します。

Fargate 起動タイプは、次のワークロードに適しています:

  • 低いオーバーヘッドのために最適化する必要がある大規模なワークロード

  • 時折バーストが発生する小さなワークロード

  • 小さなワークロード

  • バッチワークロード

EC2起動タイプは、次のワークロードに適しています:

  • 一貫して高 CPU コアとメモリ使用量を必要とするワークロード

  • 料金のために最適化する必要がある大規模なワークロード

  • アプリケーションは永続的ストレージにアクセスする必要があります

  • インフラストラクチャを直接管理する必要があります

Amazon ECS へのアクセス

次のインターフェイスのいずれかを使用して、 Amazon ECSリソースの作成、アクセス、管理を行うことができます:

  • AWS Management Console — Amazon ECSリソースへのアクセスに使用するウェブインターフェイスを提供します。

  • AWS Command Line Interface (AWS CLI) — Amazon ECSを含む一連のさまざまな AWS サービス用のコマンドを提供します。Windows、Mac、Linux でサポートされています。詳細については、「AWS Command Line Interface」を参照してください。

  • AWS SDK — 言語固有の API を提供し、接続の詳細の多くを処理します。これらには、署名の計算、リクエストの再試行処理、エラー処理などを含みます。詳細については、AWSSDK をご参照ください。

  • AWS Copilot — Amazon ECS で本番稼働可能なコンテナ化されたアプリケーションを構築、リリース、運用するためのオープンソースツールをデベロッパーに提供します。この詳細については、GitHub ウェブサイトの AWSCopilot を参照してください。

  • Amazon ECS CLI — Docker Compose ファイル形式を使用して、Amazon ECS および AWS Fargate でアプリケーションを実行するためのコマンドラインインターフェイスを提供します。Amazon Elastic Container Registry (Amazon ECR)を使用して、リソースのプロビジョン、イメージのプッシュとプルを迅速に行い、Amazon ECS または Fargate で実行中のアプリケーションをモニタリングすることができます。また、ローカルで実行されているコンテナと、クラウド内のコンテナを CLI 内でテストすることもできます。詳細については、GitHub のウエブサイトの「Amazon ECS CLI」を参照してください。

  • AWS CDK - 使い慣れたプログラミング言語を使用して、クラウドアプリケーションリソースをモデル化およびプロビジョニングするために使用できるオープンソースのソフトウェア開発フレームワークを提供します。AWS CDK は、AWS CloudFormation を通じて安全かつ繰り返し可能な方法でリソースをプロビジョニングします。詳細については、「AWS CDKを使用してAmazon ECS の開始方法」を参照してください。

料金

Amazon ECS の料金は、コンテナ化されたワークロードをホストするために AWS Fargate または Amazon EC2 インフラストラクチャを使用するかどうかによって異なります。AWS Outposts で Amazon ECS を使用する場合、料金は Amazon EC2 を直接使用する場合に使われる同じモデルに従います。詳細については、Amazon ECS 料金表を参照してください。

Amazon ECS と Fargate はまた、AWS 使用量に応じて大幅なコスト削減をもたらす Savings Plans も提供します。詳細については、 Savings Plans ユーザーガイドを参照してください

請求を表示するには、[AWS Billing and Cost Management console] ( コンソール) の [Billing and Cost Management Dashboard] (請求およびコスト管理ダッシュボード) に移動します。請求書には、料金の明細が記載された使用状況レポートへのリンクが記載されています。AWS アカウント請求の詳細については、AWS Account Billingを参照してください。

AWS 請求、アカウント、イベントについてご質問がある場合は、AWSサポートにお問い合わせください

Trusted Advisor は、AWS 環境のコスト、セキュリティ、およびパフォーマンスの最適化に役立つサービスです。Trusted Advisor の詳細については、「AWS Trusted Advisor」を参照してください。