全般

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 クラスターのプロビジョニング、負荷分散、Auto Scaling、モニタリング、クラスター全体のコンテナの配置といった詳細はすべて Elastic Beanstalk によって自動的に処理されます。コンテナの利点を活かしながら、開発環境から本稼働環境まで、コンテナイメージをアップロードするだけでアプリケーションを容易にデプロイできるようにしたいという場合、Elastic Beanstalk は理想的なサービスです。カスタムのアプリケーションアーキテクチャをより細かいレベルで制御する必要がある場合は、Amazon ECS を直接使用できます。

Q: Amazon ECS と AWS Lambda はどのように異なるのですか?

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

Amazon ECS の使用

Q: Amazon ECS の使用を開始するにはどのようにすればよいですか?

ECS の使用開始に関する詳細は、開始方法ページをご覧ください。

Q: Amazon ECS は他のコンテナタイプをサポートしていますか?

いいえ。現時点で、Amazon ECS によってサポートされているコンテナプラットフォームは、Docker だけです。

Q: コンテナを開始したのですが、なぜタスクを開始しなければならないのですか?

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

Q: Amazon ECS はアプリケーションとサービスをサポートしますか?

はい。Amazon ECS サービススケジューラーでは、実行時間の長いアプリケーションやサービスを管理できます。サービススケジューラーを使用すると、アプリケーションの可用性を維持し、アプリケーションの容量要件を満たすようにコンテナをスケールアップまたはスケールダウンできます。サービススケジューラーでは、Elastic Load Balancing を使用して、各コンテナのトラフィックを分散させることができます。Amazon ECS は、関連付けられたロードバランサーに対して、自動的にコンテナの登録と登録解除を行います。

また、サービススケジューラーは、健全ではなくなった(ELB 健全性チェックに失敗する)コンテナや、実行を停止するコンテナを自動的に復旧することで、アプリケーションをサポートする、健全なコンテナの数が目的のレベルに維持されるようにします。

サービスで実行するコンテナの数を変更することで、アプリケーションをスケールアップまたはスケールダウンできます。アプリケーションを更新するには、その定義を変更するか、新規のイメージを使用します。スケジューラーは、新しい定義を使用して新しいコンテナを自動的に起動し、以前のバージョンを実行しているコンテナ(ELB を使用している場合は、ELB 接続が使い尽くされるのを待機しているコンテナ)を停止します。

Q: Amazon ECS では、ダイナミックポートのマッピングがサポートされていますか?

はい。Amazon ECS を Elastic Load Balancing (ELB) サービスの Application Load Balancer (ALB) に関連付けることが可能です。ALB では、インスタンスポートのセットが含まれるターゲットグループがサポートされています。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: AWS Fargate は Amazon ECS とどのように連携していますか?

Fargate によって、サーバープロビジョニング、クラスター管理、そしてオーケストレーションといった概念が完全に不要になります。Amazon ECS は Fargate によってプロビジョニングされたコンテナを使用して、スケーリング、負荷分散、コンテナ利用のためのスケジューリング管理を自動的に行い、コンテナ化されたアプリケーションの構築や運用を簡略化します。

Q: Amazon ECS で AWS Fargate を使用するか、ECS のみを使用するかはどのように選択すればよいですか?

Amazon ECS は Fargate のテクノロジーをサポートしているため、AWS Fargate をお選びいただくと、EC2 インスタンスのプロビジョニングや管理をせずにコンテナを起動できます。AWS Fargate は、AWS でコンテナを起動して実行する最も簡単な方法です。コンプライアンスやガバナンスの要件をサポートするために EC2 インスタンスの制御性の向上が必要、またはより幅広いカスタマイズオプションが必要なお客様は、Fargate を使用せずに ECS を使用して EC2 インスタンスを起動してください。

セキュリティ

Q: Amazon ECS は、異なる顧客が所有するコンテナをどのようにして分離するのですか?

Amazon ECS は、顧客によって管理されている Amazon EC2 インスタンスで、または AWS Fargate を使用して、コンテナを実行するスケジューリングを行い、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 ECRのような VPC 外でアクセスできるレジストリにアクセスするよう設定できます。

Q: ECS タスクに対して IAM ロールをどのように設定すればよいですか?

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

サービスレベルアグリーメント (SLA)

Q: Amazon ECS の SLA は何を保証していますか?

Compute SLA は、Amazon ECS に最低 99.99% の月間稼働率を保証しています。

Q: SLA サービスクレジットの資格を有しているかどうかは、どうすれば分かりますか?

同じリージョン内でタスクを実行している複数のアベイラビリティーゾーンで、毎月の課金期間中の稼働率が 99.99% 未満なら、Compute SLA 対象の Amazon ECS に対する SLA クレジットの資格があります。

SLA の利用規約すべての完全な詳細、ならびに請求の送信方法の詳細については、Compute SLA の詳細ページをご覧ください。

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