AWS を無料でお試しください

まずは無料で始める »
またはコンソールにサインイン

12 か月間の AWS 無料利用枠と、24 時間年中無休のカスタマーサービスやサポートフォーラムなどの AWS の基本的なサポート機能を利用できます。

AWS アカウント作成の流れはこちら »

日本担当チームへお問い合わせ »

Q: Amazon Elastic Container Service とは何ですか?
Amazon Elastic Container Service (ECS) は、非常にスケーラブルで高性能なコンテナ管理サービスで、Docker コンテナに対応しており、Amazon EC2 インスタンスのマネージドクラスターでアプリケーションを簡単に実行できます。Amazon ECS を使用すると、自社でクラスター管理インフラストラクチャのインストール、運用、スケールを行う必要がなくなります。簡単な API 呼び出しを使用して、コンテナ対応アプリケーションの起動と終了、クラスターの完了状態のクエリ、多くの使い慣れた機能(セキュリティグループ、Elastic Load Balancing、EBS ボリューム、IAM ロールなど)へのアクセスを実行できます。Amazon ECS を使用することで、リソースニーズと可用性要件に基づいて、クラスター全体のコンテナの配置をスケジューリングできます。ビジネスまたはアプリケーション固有の要件を満たすために、独自のスケジューラーまたはサードパーティ製のスケジューラーを統合することもできます。

Q: Amazon ECS を使用する利点は何ですか?
Amazon ECS を使用すると、自社のクラスター管理インフラストラクチャのインストール、運用、スケールを行う必要がなくなるため、アプリケーションの構成要素として簡単にコンテナを利用できます。Amazon ECS では、実行時間の長いアプリケーション、サービス、およびバッチプロセスを Docker コンテナを使用してスケジューリングできます。Amazon ECS は、アプリケーションの可用性を維持し、アプリケーションの容量要件を満たすようにコンテナをスケールアップまたはスケールダウンできます。Amazon ECS には、Elastic Load Balancing、EBS ボリューム、VPC、および IAM などの使い慣れた機能が統合されています。簡単な API を使用して、独自のスケジューラーを組み込んで使用したり、既存のソフトウェア配信プロセスに Amazon ECS を接続したりできます。

Q: Amazon ECS の料金体系について教えてください。
Amazon ECS は追加料金なしで使用できます。アプリケーションを保存および実行するために作成した AWS リソース(EC2 インスタンス、EBS ボリュームなど)に対してのみ料金が発生します。お支払いはお客様が実際に使用した分だけです。最低料金や前払いの義務は発生しません。

Q: Amazon ECS と AWS Elastic Beanstalk はどのように異なるのですか?
AWS Elastic Beanstalk は、お客様がウェブアプリケーション、およびウェブサービスのデプロイとスケーリングを簡単に行えるようにするためのアプリケーション管理プラットフォームです。AWS Elastic Beanstalk を使用すると、ユーザーは、構成要素(たとえば、EC2、RDS、Elastic Load Balancing、Auto Scaling、CloudWatch など)のプロビジョニング、アプリケーションのデプロイ、健全性モニタリングを意識せずに済むため、コードの記述に集中できます。ユーザーは、デプロイするコンテナイメージ、CPU とメモリの要件、ポートマッピング、およびコンテナリンクを指定するだけです。Amazon ECS クラスターのプロビジョニング、負荷分散、自動スケーリング、モニタリング、クラスター全体のコンテナの配置といった詳細はすべて Elastic Beanstalk によって自動的に処理されます。

コンテナの利点を活かしながら、開発環境から本稼働環境まで、コンテナイメージをアップロードするだけでアプリケーションを容易にデプロイできるようにしたいという場合、Elastic Beanstalk は理想的なサービスです。カスタムのアプリケーションアーキテクチャをより細かいレベルで制御する必要がある場合は、Amazon ECS を直接使用できます。

Q: Amazon ECS と AWS Lambda の違いは何ですか?
Amazon Elastic Container Service は非常にスケーラブルな Docker コンテナ管理サービスで、Docker コンテナで実行する分散型アプリケーションの実行と管理が行えます。AWS Lambda はイベント駆動型のタスクのコンピューティングサービスで、データの変更、ウェブサイトのクリック、AWS のその他のサービスからのメッセージといった "イベント" に対応して、お客様のコードが実行されます。お客様がコンピューティングインフラストラクチャを管理する必要はありません。

 

 

 

Q: Amazon ECS の使用を開始するにはどのようにすればよいですか?
使用開始に関する詳細は、ご利用開始にあたってページをご覧ください。

Q: Elastic Container Service では他のコンテナタイプもサポートされていますか?
いいえ。現時点で Elastic Container Service によってサポートされているコンテナプラットフォームは、Docker のみです。

Q: コンテナを開始したのですが、なぜタスクを開始しなければならないのですか?
Docker ではアプリケーションを個々の構成要素にまで分割することが推奨されており、Elastic Container Service はこのパターンに最適化されています。タスクによって、同じ場所に (または同じ配置決定の一環として) 配置する一連のコンテナ、そのプロパティ、リンク方法を定義できます。タスクには Elastic Container Service で配置を決定するために必要なすべての情報が含まれています。単一のコンテナを起動するには、タスクの定義に 1 つのコンテナの定義のみを含める必要があります。

Q: Amazon ECS はアプリケーションとサービスをサポートしますか?
はい。Amazon ECS サービススケジューラーでは、実行時間の長いアプリケーションやサービスを管理できます。サービススケジューラーを使用すると、アプリケーションの可用性を維持し、アプリケーションの容量要件を満たすようにコンテナをスケールアップまたはスケールダウンできます。サービススケジューラーでは、Elastic Load Balancing を使用して、各コンテナのトラフィックを分散させることができます。Amazon ECS は、関連付けられたロードバランサーに対して、自動的にコンテナの登録と登録解除を行います。また、サービススケジューラーは、健全ではなくなった(ELB 健全性チェックに失敗する)コンテナや、実行を停止するコンテナを自動的に復旧することで、アプリケーションをサポートする、健全なコンテナの数が目的のレベルに維持されるようにします。サービスで実行するコンテナの数を変更することで、アプリケーションをスケールアップまたはスケールダウンできます。アプリケーションを更新するには、その定義を変更するか、新規のイメージを使用します。スケジューラーは、新しい定義を使用して新しいコンテナを自動的に起動し、以前のバージョンを実行しているコンテナ(ELB を使用している場合は、ELB 接続が使い尽くされるのを待機しているコンテナ)を停止します。

Q: Amazon ECS では、ダイナミックポートのマッピングがサポートされていますか?
はい。Amazon Elastic Container Service (ECS) のサービスを Elastic Load Balancing (ELB) サービスの Application Load Balancer に関連付けることが可能です。Application Load Balancer では、インスタンスポートのセットが含まれるターゲットグループがサポートされています。ECS タスク定義でダイナミックポートを指定できます。これにより、EC2 インスタンスで予定されている場合に、コンテナに未使用のポートが提供されます。ECS スケジューラにより、このポートを使用する Application Load Balancer のターゲットグループにタスクが自動的に追加されます。

Q: Amazon ECS はバッチジョブをサポートしていますか?
はい。Amazon ECS Run タスクを使用すれば、1 度に 1 つ以上のタスクを実行できます。Run タスクは、CPU、メモリ、ポートなどのタスクの要件を満たすインスタンス上でタスクを開始します。

Q: Amazon ECS で独自のスケジューラーを使用できますか?
ECS には Blox (コンテナの管理と調整のためのオープンソースプロジェクトのコレクション) が用意されています。Blox では、Amazon ECS からのイベントの使用、クラスター状態のローカルでの保存、API を使用したローカルデータストアのクエリを簡単に実行できます。Blox には、クラスター状態サーバーの使用方法のリファレンスとして使用できるデーモンスケジューラーも含まれています。詳細については、Blox GitHub ページを参照してください。

Q: 独自の AMI を使用することはできますか。
はい。Amazon ECS の AMI 規格を満たす、任意の AMI をご使用いただけます。最初は、Amazon ECS 対応の Amazon Linux AMI を使用することをお勧めします。Amazon ECS と互換性のあるパートナー AMI もご使用いただけます。ドキュメントの Amazon ECS AMI 規格をご確認ください。

Q: Amazon Elastic Container Registry からプルするようコンテナインスタンスを設定するには、どうしたらよいですか?
Amazon ECR は Amazon ECS と統合されているので、Amazon ECS で実行中のアプリケーションのコンテナイメージの保存、実行、および管理を簡単に行えます。必要な操作は、タスク定義で Amazon ECR リポジトリを指定して、インスタンスに AmazonEC2ContainerServiceforEC2Role をアタッチすることのみです。後は、Amazon ECS により、アプリケーションに適切なイメージが取得されます。

Q: Amazon ECS は、異なる顧客が所有するコンテナをどのようにして分離するのですか?
Amazon ECS は、顧客によって管理されている Amazon EC2 インスタンスを実行するためのコンテナをスケジューリングし、EC2 利用者向けに用意されているのと同じコントロールとコンプライアンスを基盤として構築されています。

  • コンピュートリソースはお客様が指定した IP アドレス範囲で Virtual Private Cloud(VPC)内に配置されます。インターネットに公開されるインスタンスと、プライベートな状態のままにするインスタンスを決定します。
  • EC2 インスタンスは、IAM ロールを使用して ECS サービスにアクセスします。
  • ECS タスクは、IAM ロールを使用してサービスおよびリソースにアクセスします。
  • セキュリティグループとネットワーク ACL により、インスタンスを出入りするインバウンドとアウトバウンドのネットワークアクセスを制御できます。
  • 業界標準の暗号化 IPsec VPN 接続を使用して、既存の IT インフラストラクチャと VPC のリソースを結びつけることができます。
  • EC2 リソースは専用インスタンスとしてプロビジョニングできます。専用インスタンスは、Amazon EC2 インスタンスとして、特定の顧客専用のハードウェア上で実行されるため、分離が強化されます。

Q: 自分のコンテナインスタンスにセキュリティ設定や分離フレームワークを追加適用できますか?
はい。Amazon EC2 利用者は、コンテナインスタンスのオペレーティングシステムに対するルートアクセス権を持ちます。したがって、オペレーティングシステムのセキュリティ設定の所有者になれるだけでなく、モニタリング、パッチ管理、ログ管理、ホスト侵入検知といったセキュリティ機能向けの追加のソフトウェアコンポーネントをロードおよび構成できます。

Q: 複数のコンテナインスタンスを異なるセキュリティ設定で使用できますか? また、個々のタスクを異なる環境に分離できますか?
はい。好みのツールを使用して、異なるコンテナインスタンスを設定できます。Amazon ECS では、クラスターの構造やターゲット指定起動によって、異なるコンテナインスタンスでのタスク配置を管理できます。

Q: Amazon ECS では、プライベートまたは内部ソースから Docker イメージを取得できますか?
はい。VPC 内のプライベート Docker イメージレジストリ、または Amazon Elastic Container Registry のような VPC 外でアクセスできるレジストリにアクセスするようコンテナインスタンスを設定できます。

Q: ECS タスクに対して IAM ロールをどのように設定すればよいですか?
まず、Amazon EC2 Container Service Task Role サービスロールを使用し、必要なアクセス権限を使用するポリシーをアタッチして、タスク用の IAM ロールを作成する必要があります。新規のタスク定義またはタスク定義のリビジョンを作成するときには、[Task Role] ドロップダウンから選択するか、JSON 形式で保存された taskRoleArn を使用してロールを指定できます。