開発

Docker のサポート

Amazon ECS では Docker をサポートしているため、Docker コンテナの実行および管理が可能になっています。Docker Compose CLI に統合されているため、複数のコンテナから成るアプリケーションを定義し、実行することができます。コンテナとしてローカルでパッケージされたアプリケーションは、設定を変更することなく Amazon ECS でデプロイして実行できます。

Windows コンテナとの互換性

Amazon ECS は、Windows コンテナの管理をサポートしています。Amazon ECS 向けに最適化された Windows Amazon マシンイメージ (AMI) により、インスタンスおよびコンテナの作成時間のパフォーマンスを強化することや、CPU、メモリ使用量、予約メトリクスを確認することが可能になります。

AWS Copilot

AWS Copilot CLI は、デベロッパーが Amazon ECS および AWS Fargate で本番環境対応のコンテナ化アプリケーションを構築、リリース、および操作できるようにするツールです。Copilot は、インフラストラクチャから継続的デリバリーまでのベストプラクティスを取り入れており、お客様がコマンドラインで快適に利用できるようにします。また、サービスのステータスやログを表示してサービスの状態を監視したり、本番サービスをスケールアップまたはスケールダウンしたり、自動テスト用の新しい環境を起動したりすることもできます。AWS Copilot をダウンロードします。

リポジトリのサポート

Amazon ECS は、Docker Hub や Amazon Elastic Container Registry (ECR) といった、サードパーティーがホストする Docker イメージリポジトリやアクセス可能なプライベート Docker レジストリで使用できます。 お客様がタスク定義でリポジトリを指定するだけで、Amazon ECS でアプリケーションに最適なイメージが取得されます。

マネジメント

タスク定義

Amazon ECS を使用すると、タスク定義と呼ばれる宣言型の JavaScript Object Notation (JSON) テンプレートを使用してタスクを定義できます。タスク定義では、Docker のリポジトリとイメージ、メモリと CPU の要件、共有データボリューム、コンテナどうしのリンク方法といった、タスクに必要なコンテナを 1 つ以上指定できます。サービスに登録できる単一のタスク定義ファイルから必要な数だけタスクを起動できます。また、タスク定義ファイルを使用すると、アプリケーション仕様のバージョン管理を行うこともできます。

プログラムによる制御

Amazon ECS では、簡単な一連の API アクションでサービスを統合および拡張できます。この API アクションにより、クラスターの作成および削除、タスクの登録および登録解除、Docker コンテナの起動および終了、クラスターおよびクラスター内インスタンスの詳細なステータス情報の取得が可能です。Amazon ECS クラスターのプロビジョニング、タスク定義の登録、コンテナのスケジューリングに AWS CloudFormation を使用することもできます。

コンテナのデプロイメント

Amazon ECS を使用すると、コンテナを新しいバージョンに更新できます。アプリケーションのタスク定義を新しいバージョンに更新してアップロードすると、Amazon ECS スケジューラにより、更新されたイメージを使用して新しいコンテナが自動的に開始され、前のバージョンを実行しているコンテナは自動的に停止します。Amazon ECS では、コンテナは、関連する Application Load Balancer から自動的に登録および登録解除されます。

Blue/Green デプロイ

AWS CodeDeploy を使用した Blue/Green デプロイでは、アプリケーションの更新中のダウンタイムを最小限に抑えることができます。Amazon ECS サービスの新しいバージョンと古いバージョンを一緒に起動し、トラフィックを再ルーティングする前に新しいバージョンをテストすることができます。デプロイプロセスをモニタリングし、問題がある場合は迅速にロールバックすることもできます。

コンテナの自動復旧

Amazon ECS では異常のあるコンテナが自動的に復旧し、アプリケーションをサポートするのに必要な数のコンテナを確実に使用できます。

Capacity Providers

Capacity Providers は、コンテナ化されたワークロードをさまざまな種類のコンピューティング能力で実行する方法について柔軟なルールを定義し、容量のスケーリングを管理します。キャパシティープロバイダーは、Amazon Elastic Compute Cloud (Amazon EC2) と AWS Fargate のどちらでも動作します。タスクとサービスの実行時に、それらを複数の Capacity Providers に分割でき、Fargate と Fargate Spot 全体で事前に定義した分割割合でサービスを実行するなど、新たな機能を有効にすることができます。

ストレージ

Amazon Elastic File System (Amazon EFS) はシンプルでスケーラブルなフルマネージドの伸縮自在なファイルシステムで、最新アプリケーションの構築、Amazon ECS と AWS Fargate のデプロイのデータとステートを持続および共有などに使用できます。接続性を含め、コンテナを用いた Amazon EFS 使用のあらゆる側面に対応し、管理は不要です。アプリケーションのみに集中でき、インフラストラクチャに注意が削がれることはありません。永続ファイルストレージの詳細を確認してください

スケジューリングとタスク配置

Amazon ECS には、リソースニーズ (CPU、RAM など) と可用性要件に基づいてクラスター全体にコンテナを配置するスケジューリングストラテジーが複数用意されています。利用可能なスケジューリングストラテジーを使用して、バッチジョブ、実行時間の長いアプリケーションやサービス、デーモンプロセスをスケジューリングできます。

タスクスケジューリング

Amazon ECS のタスクスケジューリングでは、バッチ処理ジョブなど、作業の実行と停止を含むプロセスを実行できます。タスクスケジューリングを使用したタスクの開始方法には、ジョブのキューから自動で行う方法、設定した時間間隔に基づいて行う方法があります。

サービススケジューリング

Amazon ECS サービスのスケジューリングでは、ステートレスなサービスとアプリケーションを実行できます。このスケジューリングストラテジーでは、指定した数のタスクが常に実行され、失敗した場合は再度開始されます。お客様はタスクを Elastic Load Balancing ロードバランサーに登録することや、実行中のタスクに対してユーザーが定義したヘルスチェックを実行することができます。

デーモンスケジューリング

Amazon ECS のデーモンスケジューリングでは、ECS クラスター内の選択した各インスタンスで同じタスクが自動的に実行されます。これにより、ログ記録、モニタリング、バックアップなど、サービスに共通の管理機能を担うタスクを簡単に実行できます。

Task Placement

Amazon ECS では、ユーザーは、インスタンスタイプ、アベイラビリティーゾーン、ユーザーが定義するカスタム属性といった組み込みの属性に基づいて、Amazon EC2 インスタンスのクラスターへのタスクの配置方法をカスタマイズすることができます。environment=production のような属性を使用してリソースにラベルを付与したり、これらのリソースを検索するためにリスト API アクションを使用したりします。また、RunTask および CreateService API アクションを使用して、これらのリソースにタスクをスケジューリングします。

Amazon ECS では、ビンパックや分散などの配置戦略を使用して、タスクの配置場所を詳細に定義します。複数のポリシーを連鎖させることで、コードを記述することなく高度な配置機能を実現できます。

ネットワーク

サービス検出

Amazon ECS は AWS Cloud Map と統合されているため、コンテナ化されたサービスを互いに簡単に検出して接続することができます。 AWS Cloud Map は、アプリケーションリソースにカスタム名を定義付けるクラウドリソースの検出サービスです。ウェブサービスが、これらの動的に変化するリソースの最新ロケーションを常に検出するため、アプリケーションの可用性が向上します。

サービスメッシュ

サービスメッシュでは、アプリケーション内のマイクロサービスにおける通信方法を標準化することで、複雑なマイクロサービスアプリケーションを簡単に構築および実行できます。 AWS App Mesh は、エンドツーエンドの可視性と高可用性を得るためにアプリケーションの一部を簡単に構成できるサービスです。App Mesh を使用するには、Envoy プロキシイメージを ECS タスク定義に追加します。App Mesh は、サービスメッシュ機能を提供するように、Envoy の設定を管理します。App Mesh は、提供された Envoy ブートストラップ構成で指定されたエンドポイントに、メトリクス、ログ、およびトレースをエクスポートします。App Mesh では、メッシュ対応のマイクロサービス間で、トラフィックルーティング、回路遮断、再試行などの制御を設定するための API を使用できます。

タスクネットワーキング

Amazon ECS では、Docker ネットワーキングをサポートしており、Amazon VPC と統合してコンテナを分離できます。これにより、コンテナをその他のサービスや外部トラフィックと接続する方法をコントロールできます。Amazon ECS を使用すると、さまざまなユースケースを対象としたコンテナ用の 4 種類のネットワーキングモードから選択できます。

タスクネットワーキング/awsvpc
このモードでは、実行中の各 ECS タスクに専用の伸縮自在なネットワーキングインターフェイスが割り当てられるため、VPC 内のコンテナで EC2 インスタンスのようなフルネットワーキング機能を利用できます。

ブリッジ
このモードでは、ローカルの仮想ネットワーク内のホストで実行しているすべてのコンテナを接続する Linux ブリッジが作成されます。これには、ホストのデフォルトネットワーク接続でアクセスできます。

ホスト
このモードでは、ホストのネットワークスタックにコンテナが直接追加され、分離せずにホストのネットワークにコンテナが公開されます。

なし
このモードでは、コンテナの外部ネットワーキングが無効になります

ロードバランシング

Amazon ECS は Elastic Load Balancing と統合されているため、ユーザーは Application Load Balancer または Network Load Balancers を使用して、コンテナ全体でトラフィックを分散できます。タスク定義とロードバランサーを使用するよう指定すると、Amazon ECS では、ロードバランサーに対するコンテナの追加と削除が自動的に実行されます。タスク定義でダイナミックポートを指定し、これにより、EC2 インスタンスで予定されている場合に、コンテナに未使用のポートが提供されます。また、パスベースのルーティングを使用して、複数のサービスでロードバランサーを共有します。

モニタリングとロギング

モニタリング

Amazon ECS では、Amazon CloudWatch を使用して、コンテナおよびクラスターをモニタリングする機能を提供しています。タスク定義、サービスまたはクラスターごとのグループで、実行タスクの CPU とメモリ使用の平均値と合計量をモニタリングできます。コンテナやクラスターのスケールを拡張または縮小する際に、CloudWatch アラームを設定して警告します。

ロギング

Amazon ECS では、すべての Amazon ECS API コールを記録し、そのログファイルが AWS CloudTrail を通じて配信されるよう設定できます。記録される情報には、API 呼び出し元の ID、API コールの時間、API 呼び出し元のソース IP アドレス、リクエストのパラメータ、および Amazon ECS から返された応答の要素が含まれます。CloudTrail により、AWS マネジメントコンソール、AWS SDK、AWS CLI から行われた API コールの履歴が提供されます。これで、セキュリティ分析、リソース変更履歴、コンプライアンスの監査が可能になります。

AWS Config

AWS Config は Amazon ECS と統合され、AWS アカウントで AWS リソースの設定を可視化します。AWS Config により、ユーザーは、リソースがどのように設定されているのか、互いにどのように関連しているのか、継続的に設定や関係性はどのように変化するのかをモニタリングし、追跡することができます。AWS Config を使用することで、コンプライアンス、セキュリティ、運用上のトラブルシューティング、リソース管理を簡素化できます。

ハイブリッドデプロイ

AWS Outposts

AWS Outposts で Amazon ECS を使用すると、オンプレミスシステムへの特別に低いレイテンシーを必要とするコンテナ化したアプリケーションを実行できます。Outposts は、AWS のインフラストラクチャ、AWS のサービス、API、およびツールを、実質的にすべての接続サイトに拡張する完全マネージド型サービスです。Outposts で Amazon ECS を使用すれば、クラウドでコンテナを管理するように簡単にオンプレミスのコンテナを管理できます。

Amazon ECS 料金の詳細

料金ページを見る
始める準備はできましたか?
サインアップ
ご不明な点がおありですか?
お問い合わせ