全般

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 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 を使用してロールを指定できます。

Q: Amazon ECS はどのコンプライアンスプログラムに従っていますか?

Amazon ECS は、PCI DSS Level 1、ISO 9001、ISO 27001、ISO 27017、ISO 27018、SOC 1、SOC 2、SOC 3、HIPAA 適合の基準を満たしています。

詳細については、コンプライアンスのページを参照してください。

Q: Amazon ECS は、保護医療情報 (PHI) やその他の HIPAA 規制対象ワークロードに使用できますか?

はい。Amazon ECS は HIPAA 対応サービスです。AWS と Business Associate Addendum (BAA) を締結している場合は、Amazon ECS を使用して、AWS Fargate 起動タイプあるいはAmazon EC2 コンピューティングインスタンス上にデプロイされている Docker コンテナを使って、暗号化されている Protected Health Information (PHI) を処理することができます。

詳細については、HIPAA コンプライアンスのページを参照してください。PHI の処理、保存、転送を予定しているものの、まだ AWS との BAA を締結していない場合、詳細についてお問い合わせください。

Q: Amazon ECS を使用して、米国政府の規制対象ワークロードを扱うことや、機密扱いの管理された非格付け情報 (CUI) を処理することはできますか?

はい。AWS GovCloud (米国) リージョンを使用すれば、Amazon ECS で管理されているコンテナとクラスタは、自身のコンテナを使って、機密扱いのデータおよび規制対象ワークロードの要件を満たすことができます。

詳細については、AWS GovCloud のページを参照してください。

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

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

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

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

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

SLA の利用規約に関するすべての詳細、およびクレジット請求方法の詳細については、Compute SLA の詳細ページを参照してください。

ARN と ID の新しいフォーマットへの移行

Q: 何が変更されますか?

2018 年 11 月 15 日より、Amazon ECS リソースでは、Amazon リソースネーム (ARN) と識別子 (ID) を新しいフォーマットに移行します。Amazon リソースネームのフォーマットの変更は、ECS タスク、ECS コンテナインスタンス、ECS サービスに影響します。識別子のフォーマットの変更は、ECS タスクと ECS コンテナインスタンスに影響します。この変更により、最近リリースされたタグ付け機能とコスト配分機能を使用できるようになります。

本日より、新しいタグ付け機能の使用をオプトインし、ECS リソースに ARN と ID の新しいフォーマットを利用できます。オプトインした後は、新しく作成されたリソースに ARN と ID の新しいフォーマットが適用されます。既存のリソースは影響を受けず、既存の ARN と ID のままです。手順については、こちらのドキュメントを参照してください。

Q: どのような影響がありますか?

ほとんどの場合、新しいフォーマットに対応するためにシステムに変更を行う必要はありません。AWS リソースの管理にコンソールのみを使用しているのであれば影響はありませんが、ARN と ID の新しいフォーマットを使用するように設定を更新する必要があります。API、SDK、AWS CLI を使って AWS リソースを操作しているのであれば、リソースの ARN または ID を検証もしくは持続させる場合に、ご利用のソフトウェアによって ARN または ID のフォーマットが推定されるかどうかに応じて、影響が発生する可能性があります。この場合、新しいフォーマットに対応するためにシステムを更新する必要が生じる可能性があります。

以下のいくつかの障害モードが考えられます。

システムで正規表現を使用して ARN または ID のフォーマットを検証するか、フォーマットを解析して情報を抽出している場合、新しいフォーマットを使用した場合にエラーが発生する可能性があります。

データベースのスキーマで既定の ARN または ID の長さがある場合、ARN または ID を保存できない可能性があります。特に新しい ARN は、以前よりも多くの情報が含まれているため、長くなります。新しい ID は以前よりも短くなります。

Q: これにより既存のリソースは影響を受けますか?

いいえ。新しいフォーマットをオプトインした後に作成したリソースにのみ、新しいフォーマットが適用されます。リソースに (以前のまたは新しい) ARN または ID が割り当てられると、割り当て後に行うオプトインまたはオプトアウトのアクションに関係なく、そのリソースのライフサイクル中は ARN または ID が維持されます。

Q: どの ECS リソースの ARN が変更されますか?

ARN の変更は、ECS サービス、ECS タスク、ECS コンテナインスタンスの 3 つのリソースに影響します。

Q: 新しい ARN はどのようになりますか?

ECS コンテナインスタンス、サービス、タスクの新しい ARN にはクラスター名が追加され、以下の表に示す ARN になります。

image1

Q: どの ECS リソースの ID が変更されますか?

ID の変更は、ECS タスク、ECS コンテナインスタンスの 2 つのリソースに影響します。

Q: 新しい ID はどのようになりますか?

新しい ID は長さが短くなり (32 文字)、ハイフンがなくなります。以前の ID と新しい ID の例については、以下の表をご覧ください。

image2

Q: 今オプトインしたのですが、リソースにタグ付けできるようにリソースを新しい形式に移行するにはどうすればよいですか?

一貫性を維持するために、既存のすべての ECS リソースの ARN と ID は、ライフサイクルが終わるまで維持されます。つまり、新しい形式は、新しく作成した、または新しく起動したリソースにのみ割り当てられます。ECS サービスとそのタスクを新しい形式に移行するには、ECS サービスを削除して再作成します。ECS コンテナインスタンスを移行するには、コンテナインスタンスをドレインし、新しいコンテナインスタンスを登録する必要があります。

注: サービスが 2018 年 11 月 16 日以降に作成され、そのサービスを作成したユーザーまたはロールがタスクの起動時間にタスクの新しい形式にオプトインした場合、新しい ARN およびリソース ID 形式は、Amazon ECS サービスによって起動されるタスクにのみ送信されます。

Q: 新しいフォーマットはいつまでに導入する必要がありますか?

2019 年 12 月末まで、API と ECS コンソールで新しい ARN または ID の使用をオプトインできます。すべてのアカウントで、必要に応じてオプトインとオプトアウトを行い、テストできます。2020 年 1 月 1 日以降、フォーマットを切り替えるオプションは利用できなくなり、新しく作成された ECS リソースには、ARN と ID の新しいフォーマットが適用されます。

Q: 新しいアカウントでは自動的にオプトインされますか?

2019 年 3 月 31 日まで、新しく作成された AWS アカウントでは、デフォルトで現在のフォーマットが適用されます。2019 年 4 月 1 日以降、新しく作成されたすべてのアカウントで自動的にオプトインが行われますが、2019 年 12 月 31 日まではオプトアウトできます。

Q: 新しい ARN または ID の受け取りをオプトイン、オプトアウトするにはどうすればよいですか?

移行期間 (2019 年 12 月末まで) 中は、ECS API または EC2 コンソールを使用してオプトインすることで新しいフォーマットを受け取ることができます。手順については、こちらのドキュメントを参照してください。

Q: アカウント内の特定の IAM ユーザーまたは IAM ロールでのみオプトインすることはできますか?

はい。特定の IAM ロールまたは IAM ユーザーでオプトインできます。IAM ロールまたは IAM ユーザーによって作成されたリソースは、リソースを作成したユーザーまたはロールのオプトインのステータス、作成日時に基づいて ARN または ID のフォーマットが適用されます。また、ルートユーザーでオプトインまたはオプトアウトすると、その変更は AWS アカウント全体に適用されます。ただし、IAM ユーザーまたはロールでルートユーザーのオプトインステータスに優先するように明示的に設定している場合を除きます。

Q: 何もアクションを実行しない場合はどうなりますか?

移行期間中に新しいフォーマットをオプトインしない場合、2020 年 1 月 1 日以降は自動的に新しいフォーマットを受け取るようになります。この方法はお勧めしません。移行期間中に事前に新しいフォーマットをテストして、問題がないかどうかを確認し、問題があれば解決することをお勧めします。

Q: 2019 年 12 月 31 日より後に作成したリソースについても以前の ARN または ID を使用したい場合はどうなりますか?

申し訳ありませんが、2020 年 1 月 1 日より、新しく作成されたすべてのリソースには ARN と ID の新しいフォーマットが適用されます。この変更により、タグ付け、コスト配分などの ECS の現在の機能や今後提供される機能を利用できるようになります。

Q: 移行期間中に ARN と ID の新しいフォーマットをオプトインして、その後オプトアウトした場合、新しいフォーマットで作成されたリソースはどうなりますか?

一度リソースに ARN または ID が割り当てられると、その ARN または ID は変更されません。新しい ARN または ID で作成されたリソースは、その後のアクションに関係なく、新しい ARN または ID のままです。新しい ARN または ID を削除するには、個別にリソースを削除または終了する必要があります。このため、利用しているツールとオートメーションのテストが完了するまでは常に注意を払い、重要なリソースは作成しないようにします。

Q: 移行期間終了前にシステムが正常に機能していない場合はどうすればよいですか?

移行期間中にシステムが正常に機能していない場合、新しいフォーマットを一時的にオプトアウトして、システムを修復できます。2020 年 1 月 1 日以降、アカウント設定に関係なく、すべての新しいリソースに ARN と ID の新しいフォーマットが適用されます。そのため、移行期間終了前に新しいフォーマットの ARN と ID を使用してシステムをテストしておくことが重要です。早めにテストしてオプトインしておくことで、ツールやワークフローに変更を施すための貴重な時間を確保して、システムに影響が発生するリスクを最小にできます。

Q: 移行期間中に複数のリージョンでリソースを作成するとどうなりますか?

オプトインは、リージョン別に行うことができます。つまり、リージョンごとに異なるオプトインステータスを設定できます。移行期間中に Amazon ECS で新しいリージョンを開始した場合、そのリージョンは既存のリージョンと同様に動作します。つまり、2019 年 12 月 31 日まで、ARN の新しいフォーマットと以前のフォーマットのどちらを使用するかを選択できます。

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