AWSでElasticContainer Service(ECS)をセットアップする方法

Elastic Container Serviceは、AWSが提供するフルマネージドコンテナオーケストレーションサービスです。 AWSでコンテナを実行することを選択します。 Fargateをサポートして、コンテナーにサーバーレスコンピューティングを提供します。 Fargateを使用すると、サーバーをプロビジョニングおよび管理する必要がなくなります。 ECSは、インフラストラクチャではなく、アプリケーションの構築と管理に集中するのに役立ちます。 これは、クラスター上のコンテナーの実行、停止、および管理を容易にする、拡張性が高く高速なコンテナー管理サービスです。

ECSにはさまざまな価格設定モデルが付属しています。 価格については、AWSの公式ページをご覧ください ここに

ECSの基本的な用語。

  1. ECSクラスター:タスクまたはサービスの論理グループです。
  2. タスク定義:アプリケーションを形成する1つ以上のコンテナー(最大10個)を記述します。
  3. タスク:これは、タスク定義の実行可能なユニットです。
  4. サービス:タスク定義の指定された数のインスタンスを実行および維持するために使用されます。

この記事では、ECSクラスターを作成し、サンプルのNginxアプリケーションをそのクラスターにデプロイします。 クラスターのセットアップを理解するために、テストクラスターを作成します。 要件に応じてカスタマイズされた構成で本番クラスターをセットアップすることをお勧めします。

前提条件

  1. AWSアカウント(作成する お持ちでない場合)。
  2. IAMの役割の基本的な理解(IAMについては、ここをクリックしてください)。
  3. VPCの基本的な理解(VPCについてはここをクリック)

何をしたらいいでしょう?

  1. AWSにログインします(作成する お持ちでない場合)。
  2. クラスターを作成する
  3. タスク実行IAMロールを作成する
  4. タスク定義を作成する
  5. サービスを作成する
  6. 作成したタスクにアクセスします
  7. クラスターを削除する

AWSにログインします

クリック ここに AWSログインページに移動し、認証情報を入力します。

ログインページ

アカウントにログインすると、メインのAWS管理コンソールが次のように表示されます。

AWS管理コンソール

クラスターを作成する

ECSに移動するには、画面の左上にあるサービスをクリックし、[コンテナー]で[Elastic ContainerService]をクリックします。

ECSに移動します

ECSのメインダッシュボードは次のように表示されます。 左側のパネルの「クラスター」をクリックします。

ECSダッシュボード

クラスターを作成していないため、リストに何も表示されません。 最初のクラスターを作成する[クラスターの作成]ボタンをクリックします。

クラスターを作成する

ここで、「EC2 Linux + Networking」オプションを選択し、「Nextstep」ボタンをクリックします。

クラスターテンプレートを選択

クラスターに名前を付け、EC2インスタンスタイプを選択します。 クラスター内のEC2インスタンスは、選択したタイプで作成されます。 作成するEC2インスタンスのプロビジョニングモデルを選択します。 要件に応じて他の構成を指定します。

クラスターの構成

新しいPCを作成するか、既存のPCを選択することができます。 VPCとネットワーキングについて知らず、それについてもっと知りたい場合は、こちらの記事を読むことをお勧めします。

クラスターネットワークの構成

必要に応じてタグを指定することも、オプションの構成であるため空のままにすることもできます。 「作成」ボタンをクリックすると、クラスターが作成されます。

クラスターを作成する

これには数分かかります。クラスターが作成されると、同じページに「ECS Status -3 of3 ..」というステータスが表示されます。 「クラスターの表示」ボタンをクリックして、クラスターに移動します。

クラスターの作成に成功

タスク実行IAMロールを作成する

さらに構成を進める前に、タスクの実行に使用されるロールが必要になります。 したがって、IAMに移動し、次のポリシーを使用して新しいロールを作成します。 IAMを知らず、詳細を知りたい場合は、ここをクリックしてください。

次のポリシーを使用してロールを作成します:ecsTaskExecutionRole。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken",
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "*"
        }
    ]
}

ロールを作成すると、IAMコンソールに次のように表示されます。

IAMの役割

タスク定義を作成する

IAMロールの準備ができたら、タスク定義の作成に進むことができます。

この時点までは、コンテナ化されたアプリケーションが実行されていない空のクラスターがあります。

次のステップは、タスク定義を作成することです。 最初のタスク定義を作成するには、左側のパネルの[クラスター]の下にある[タスク定義]をクリックします。

クラスターの概要

ここで「新しいタスク定義の作成」ボタンをクリックします。

タスク定義を作成する

このページで、起動タイプを「EC2」として選択し、「次へ」ステップボタンをクリックします。

起動タイプを選択します

前のステップでIAMロールを作成したことを覚えていますか? 次に、タスクロールの下に作成したロールを指定する必要があります。 タスク定義に名前を付けます。

タスク定義を構成する

少し下にスクロールすると、[コンテナの追加]ボタンが表示されます。それをクリックすると、次のような新しい画面がポップアップ表示されます。

コンテナに名前を付けたこの画面で、コンテナに使用する画像を指定します。 メモリ制限、ポートマッピング、ヘルスチェックを指定することもできます。 設定が完了したら、[追加]ボタンをクリックします。

コンテナを追加する

タスクで使用する「タスクメモリ」と「タスクCPU」を指定します。

リソースを指定する

これで、タスクの基本構成と必須構成の準備が整いました。[作成]ボタンをクリックして、タスク定義を作成します。

タスクを作成する

「タスク定義が正常に作成されました」というメッセージが表示されます。

タスク作成の成功

サービスを作成する

この時点まで、クラスターとタスクの定義があります。 次のステップは、サービスを作成することです。 作成したクラスターに戻り、[サービス]タブで[作成]ボタンをクリックしてサービスを作成します。

クラスターの概要

起動タイプをEC2として選択し、作成したタスク定義を選択します。ドロップダウンオプションからクラスター名を選択できます。作成するサービスの名前でも、タスクの数を2に指定すると、2つのコピーが作成されます。応用。

サービスを構成する

残りの構成は、展開およびタスクの配置中のままにします。 タグはオプションであるため、タグの指定は必須ではありません。[次のステップ]ボタンをクリックして、先に進みます。

サービスを構成する

ロードバランサーがある場合は、それを選択して、外部トラフィックをそれを介してアプリケーションにルーティングできます。 「次のステップ」ボタンをクリックします。

サービスを構成する

サービスをスケーリングしたくない場合は、「サービスの必要な数を調整しない」というデフォルトの構成に進みます。

必要に応じてASGを設定する

作成するサービス用に作成した構成を確認し、[サービスの作成]ボタンをクリックします。

サービスを確認して作成する

サービスが正常に作成された場合、ステータスは「ECSサービスステータス-1の1が完了しました」と表示されます。

成功したサービスの作成

作成したタスクにアクセスします

クラスターに戻り、[タスク]タブで、2つのタスクが実行されていることを確認できます。 これらのタスクには、アプリケーションが含まれています。

それについてもっと知るためにタスクの1つをクリックしてください。

タスクを確認する

ロードバランサーを指定していないため、特定のリンクで外部からアプリケーションにアクセスすることはできません。 このため、個々の外部リンクでタスクにアクセスする必要があります。

ネットワークバインディングの下に、タスクの外部リンクがあります。 この特定のタスクには、ここにあるリンクからのみアクセスできます。 リンクをコピーして、タスク定義で指定したアプリケーションNginxが稼働しているかどうかをテストします。

タスクから外部リンクを取得する

ブラウザに移動し、前の手順でコピーしたリンクをクリックします。 Nginxのデフォルトページを見ることができます。 これは、アプリケーションNginxが正常にデプロイされたことを意味します。

タスクにアクセスする

クラスターを削除する

クラスターが不要になった場合は、シングルクリックでクラスターを削除できます。 クラスタに戻り、[クラスタの削除]ボタンをクリックします。

テキストフィールドに「deleteme」と入力して削除アクションを確認し、「Delete」ボタンをクリックします。 これにより、クラスターが完全に削除され、一度削除すると回復できなくなります。 したがって、リアルタイムアプリケーションで作業している場合は、クラスターを削除する際に注意してください。

タスクを削除する

結論

この記事では、クラスター、タスク定義、およびサービスを作成する手順について説明しました。 確認した手順を使用して、テストクラスターを作成できます。 リアルタイムアプリケーションを使用してクラスターを作成する場合は、確認した構成についてより具体的にする必要があります。

Hope this helps!

Source link