Amazon EC2 を使用した Amazon ECS コンソールの開始方法 - Amazon Elastic Container Service

Amazon EC2 を使用した Amazon ECS コンソールの開始方法

Amazon Elastic Container Service (Amazon ECS) は、コンテナを簡単に起動および管理できる高速かつ非常にスケーラブルなコンテナ管理サービスです。Amazon ECS の概要については、「Amazon Elastic Container Service とは」を参照してください。

タスク定義を登録し、クラスターを作成して、Amazon ECS コンソールでサービスを作成することで、EC2 起動タイプを使用して Amazon ECS を開始します。

重要

AWS Fargate を使用した Amazon ECS の開始方法については、AWS Fargate を使用した Amazon ECS コンソールの開始方法 を参照してください。

EC2 起動タイプを使用して Amazon ECS を開始するには、以下の手順を実行します。

前提条件

開始する前に、「Amazon ECS でのセットアップ」のステップを完了したこと、AdministratorAccess または Amazon ECS 初回実行ウィザードの許可 の IAM ポリシー例で指定されているいずれかのアクセス許可が AWS ユーザーにあることを確認します。

ステップ 1: タスク定義を登録する

タスク定義はアプリケーションの設計図のようなものです。Amazon ECS でタスクを起動するたびに、タスク定義を指定します。サービスは、コンテナに使用する Docker イメージ、タスクで使用するコンテナの数、各コンテナのリソース割り当てを認識します。タスク定義の作成方法については、「Amazon ECS タスク定義」を参照してください。

以下では、シンプルなウェブアプリケーションをデプロイするタスク定義の作成手順について説明します。

タスク定義を登録するには

  1. Amazon ECS コンソール (https://console.aws.amazon.com/ecs) を開きます。

  2. ナビゲーションバーから、使用するリージョンを選択します。

  3. ナビゲーションペインで [Task Definitions (タスク定義)]、[Create new Task Definition (新しいタスク定義の作成)] の順に選択します。

  4. [Select launch type compatibility (起動タイプの互換性の選択)] ページで、[EC2]、[Next step (次のステップ)] の順に選択します。

  5. [Configure task and container definitions (タスクとコンテナ定義の設定)] ページで、下にスクロールして [Configure via JSON (JSON による設定)] を選択します。

  6. 以下のタスク定義の例をコピーしてボックスに貼り付け、[Save (保存)] を選択します。

    { "containerDefinitions": [ { "entryPoint": [ "sh", "-c" ], "portMappings": [ { "hostPort": 80, "protocol": "tcp", "containerPort": 80 } ], "command": [ "/bin/sh -c \"echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>' > /usr/local/apache2/htdocs/index.html && httpd-foreground\"" ], "cpu": 10, "memory": 300, "image": "httpd:2.4", "name": "simple-app" } ], "family": "console-sample-app-static" }
  7. [作成] を選択します。

ステップ 2: クラスターを作成する

Amazon ECS クラスターはタスク、サービス、およびコンテナインスタンスの論理グループです。コンソールを使用してクラスターを作成すると、Amazon EC2 インスタンスの作成、ネットワーキング、および IAM の設定を処理する AWS CloudFormation スタックが Amazon ECS によって作成されます。クラスターの詳細については、「Amazon ECS クラスター」を参照してください。

以下では、1 つの Amazon EC2 インスタンスが登録されたクラスターを作成し、そこでタスクを実行できるようにする手順について説明します。特定のフィールドが示されていない場合は、コンソールによって使用されるデフォルト値のままにします。

クラスターを作成するには

  1. Amazon ECS コンソール (https://console.aws.amazon.com/ecs) を開きます。

  2. ナビゲーションバーから、前のステップで使用したのと同じリージョンを選択します。

  3. ナビゲーションペインで [Clusters] を選択します。

  4. [Clusters] ページで、[Create Cluster] を選択します。

  5. [Select cluster template (クラスターテンプレートの選択)] ページで、[EC2 Linux + Networking (EC2 Linux + ネットワーク)] を選択します。

  6. [Cluster name (クラスター名)] でクラスターの名前を選択します。

  7. [Instance configuration (インスタンスの設定)] セクションで、以下の操作を行います。

    1. [EC2 instance type (EC2 インスタンスタイプ)] で、コンテナインスタンスに使用するインスタンスタイプとして [t2.micro] または [t3.micro] を選択します。より多くの CPU とメモリリソースを搭載したインスタンスタイプは、より多くのタスクを処理できますが、この入門ガイドでは不要です。これらの異なるインスタンスタイプの詳細については、「Amazon EC2 インスタンス」を参照してください。

    2. [Number of instances (インスタンス数)] に「1」と入力します。Amazon EC2 インスタンスが AWS リソースに存在する間は、それらのインスタンスに対してコストが発生します。詳細については、「Amazon EC2 料金表」を参照してください。

    3. [EC2 Ami Id] で、デフォルト値である Amazon Linux 2 Amazon ECS-optimized AMI を使用します。Amazon ECS-optimized AMI の詳細については、「Amazon ECS-optimized AMI」を参照してください。

  8. [Networking (ネットワーク)] セクションの [VPC] で、[Create a new VPC (新しい VPC の作成)] を選択して、Amazon ECS でクラスターに使用する新しい VPC を作成するか、または使用する既存の VPC を選択します。独自の VPC の作成の詳細については、「チュートリアル: クラスターのパブリックサブネットとプライベートサブネットを持つ VPC を作成する」を参照してください。

  9. [Container instance IAM role (コンテナインスタンス IAM ロール)] セクションで、[Create new role (新しいロールの作成)] を選択して Amazon ECS でコンテナインスタンスの新しい IAM ロールを作成するか、作成済みの既存の Amazon ECS コンテナインスタンスロール (ecsInstanceRole) を選択します。詳細については、「Amazon ECS コンテナインスタンスの IAM ロール」を参照してください。

  10. [作成] を選択します。

ステップ 3: サービスを作成する

Amazon ECS サービスを使用すると、Amazon ECS クラスター内で、タスク定義の指定した数のインスタンスを同時に実行して維持できます。タスクが何らかの理由で失敗または停止した場合、Amazon ECS サービススケジューラは、タスク定義の別のインスタンスを起動してそれに置き換え、サービスで必要数のタスクを維持します。サービスの詳細については、「Amazon ECS サービス」を参照してください。

サービスを作成するには

  1. Amazon ECS コンソール (https://console.aws.amazon.com/ecs) を開きます。

  2. ナビゲーションバーから、前のステップで使用したのと同じリージョンを選択します。

  3. ナビゲーションペインで [クラスター] を選択します。

  4. 前のステップで作成したクラスターを選択します。

  5. [Services (サービス)] タブで、[Create (作成]) を選択します。

  6. [Configure service (サービスの設定)] セクションで、以下の操作を行います。

    1. [起動タイプ] で [EC2] をクリックします。

    2. [Task definition (タスク定義)] で、ステップ 1 で作成した [console-sample-app-static] タスク定義を選択します。

    3. [Cluster (クラスター)] で、ステップ 2 で作成したクラスターを選択します。

    4. [Service name (サービス名)] でサービスの名前を選択します。

    5. [Number of tasks (タスクの数)] に「1」と入力します。

  7. 残りのフィールドにはデフォルト値を使用し、[Next step (次のステップ)] を選択します。

  8. [Configure network (ネットワークの設定)] セクションで、デフォルト値のままにし、[Next step (次のステップ)] を選択します。

  9. [Set Auto Scaling (Auto Scaling の設定)] セクションで、デフォルト値のままにし、[Next step (次のステップ)] を選択します。

  10. オプションを確認し、[Create service (サービスの作成)] を選択します。

  11. [View service (サービスの表示)] を選択して、サービスを確認します。

ステップ 4: サービスを表示する

このサービスはウェブベースのアプリケーションであるため、ウェブブラウザでコンテナを表示できます。

サービスの詳細を表示するには

  1. Amazon ECS コンソール (https://console.aws.amazon.com/ecs) を開きます。

  2. ナビゲーションバーから、前のステップで使用したのと同じリージョンを選択します。

  3. ナビゲーションペインで [クラスター] を選択します。

  4. ステップ 2 で作成したクラスターを選択します。

  5. [Services (サービス)] タブで、ステップ 3 で作成したサービスを選択します。

  6. [Service: service-name] ページで、[Tasks] タブを選択します。

  7. タスクが [RUNNING (実行中)] 状態であることを確認します。その状態である場合は、タスクを選択してタスクの詳細を表示します。タスクが [RUNNING (実行中)] 状態でない場合は、サービスの詳細画面を最新の状態に更新します。

  8. [Containers (コンテナ)] セクションで、コンテナの詳細を展開します。[Network bindings (ネットワークバインディング)] セクションの [External Link (外部リンク)] に、ウェブアプリケーションへのアクセスに使用する [IPv4 Public IP (IPv4 パブリック IP)] アドレスが表示されます。

  9. ウェブブラウザに [IPv4 パブリック IP] アドレスを入力すると、[Amazon ECS サンプル] アプリケーションを表示するウェブページが表示されます。

ステップ 5: クリーンアップ

Amazon ECS クラスターの使用が終了したら、使用していないリソースに対する料金が発生しないように、そのクラスターに関連付けられたリソースをクリーンアップできます。

この入門ガイドで作成した Amazon ECS リソース (クラスターやサービスなど) は、Amazon ECS コンソールを使用してクリーンアップできます。

リソースをクリーンアップするには

  1. Amazon ECS コンソール (https://console.aws.amazon.com/ecs) を開きます。

  2. ナビゲーションペインで [クラスター] を選択します。

  3. ステップ 2 で作成したクラスターを選択します。

  4. [Services (サービス)] タブで、ステップ 3 で作成したサービスを選択し、[Delete (削除)] を選択します。確認プロンプトで、[delete me (削除)] と入力し、 [Delete (削除)]を選択します。

  5. クラスターの詳細ページで、[Delete cluster (クラスターの削除)] を選択します。確認プロンプトで、[delete me (削除)] と入力し、 [Delete (削除)]を選択します。クラスターを削除すると、VPC や Amazon EC2 インスタンスなど、クラスターで作成された関連リソースがクリーンアップされます。