Elastic Container Serviceは、AWSが提供するフルマネージドコンテナオーケストレーションサービスです。 AWSでコンテナを実行することを選択します。 Fargateをサポートして、コンテナーにサーバーレスコンピューティングを提供します。 Fargateを使用すると、サーバーをプロビジョニングおよび管理する必要がなくなります。 ECSは、インフラストラクチャではなく、アプリケーションの構築と管理に集中するのに役立ちます。 これは、クラスター上のコンテナーの実行、停止、および管理を容易にする、拡張性が高く高速なコンテナー管理サービスです。
ECSにはさまざまな価格設定モデルが付属しています。 価格については、AWSの公式ページをご覧ください ここに。
ECSの基本的な用語。
- ECSクラスター:タスクまたはサービスの論理グループです。
- タスク定義:アプリケーションを形成する1つ以上のコンテナー(最大10個)を記述します。
- タスク:これは、タスク定義の実行可能なユニットです。
- サービス:タスク定義の指定された数のインスタンスを実行および維持するために使用されます。
この記事では、ECSクラスターを作成し、サンプルのNginxアプリケーションをそのクラスターにデプロイします。 クラスターのセットアップを理解するために、テストクラスターを作成します。 要件に応じてカスタマイズされた構成で本番クラスターをセットアップすることをお勧めします。
前提条件
- AWSアカウント(作成する お持ちでない場合)。
- IAMの役割の基本的な理解(IAMについては、ここをクリックしてください)。
- VPCの基本的な理解(VPCについてはここをクリック)
何をしたらいいでしょう?
- AWSにログインします(作成する お持ちでない場合)。
- クラスターを作成する
- タスク実行IAMロールを作成する
- タスク定義を作成する
- サービスを作成する
- 作成したタスクにアクセスします
- クラスターを削除する
AWSにログインします
クリック ここに AWSログインページに移動し、認証情報を入力します。
アカウントにログインすると、メインのAWS管理コンソールが次のように表示されます。
クラスターを作成する
ECSに移動するには、画面の左上にあるサービスをクリックし、[コンテナー]で[Elastic ContainerService]をクリックします。
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ロールの準備ができたら、タスク定義の作成に進むことができます。
この時点までは、コンテナ化されたアプリケーションが実行されていない空のクラスターがあります。
次のステップは、タスク定義を作成することです。 最初のタスク定義を作成するには、左側のパネルの[クラスター]の下にある[タスク定義]をクリックします。
ここで「新しいタスク定義の作成」ボタンをクリックします。
このページで、起動タイプを「EC2」として選択し、「次へ」ステップボタンをクリックします。
前のステップでIAMロールを作成したことを覚えていますか? 次に、タスクロールの下に作成したロールを指定する必要があります。 タスク定義に名前を付けます。
少し下にスクロールすると、[コンテナの追加]ボタンが表示されます。それをクリックすると、次のような新しい画面がポップアップ表示されます。
コンテナに名前を付けたこの画面で、コンテナに使用する画像を指定します。 メモリ制限、ポートマッピング、ヘルスチェックを指定することもできます。 設定が完了したら、[追加]ボタンをクリックします。
タスクで使用する「タスクメモリ」と「タスクCPU」を指定します。
これで、タスクの基本構成と必須構成の準備が整いました。[作成]ボタンをクリックして、タスク定義を作成します。
「タスク定義が正常に作成されました」というメッセージが表示されます。
サービスを作成する
この時点まで、クラスターとタスクの定義があります。 次のステップは、サービスを作成することです。 作成したクラスターに戻り、[サービス]タブで[作成]ボタンをクリックしてサービスを作成します。
起動タイプをEC2として選択し、作成したタスク定義を選択します。ドロップダウンオプションからクラスター名を選択できます。作成するサービスの名前でも、タスクの数を2に指定すると、2つのコピーが作成されます。応用。
残りの構成は、展開およびタスクの配置中のままにします。 タグはオプションであるため、タグの指定は必須ではありません。[次のステップ]ボタンをクリックして、先に進みます。
ロードバランサーがある場合は、それを選択して、外部トラフィックをそれを介してアプリケーションにルーティングできます。 「次のステップ」ボタンをクリックします。
サービスをスケーリングしたくない場合は、「サービスの必要な数を調整しない」というデフォルトの構成に進みます。
作成するサービス用に作成した構成を確認し、[サービスの作成]ボタンをクリックします。
サービスが正常に作成された場合、ステータスは「ECSサービスステータス-1の1が完了しました」と表示されます。
作成したタスクにアクセスします
クラスターに戻り、[タスク]タブで、2つのタスクが実行されていることを確認できます。 これらのタスクには、アプリケーションが含まれています。
それについてもっと知るためにタスクの1つをクリックしてください。
ロードバランサーを指定していないため、特定のリンクで外部からアプリケーションにアクセスすることはできません。 このため、個々の外部リンクでタスクにアクセスする必要があります。
ネットワークバインディングの下に、タスクの外部リンクがあります。 この特定のタスクには、ここにあるリンクからのみアクセスできます。 リンクをコピーして、タスク定義で指定したアプリケーションNginxが稼働しているかどうかをテストします。
ブラウザに移動し、前の手順でコピーしたリンクをクリックします。 Nginxのデフォルトページを見ることができます。 これは、アプリケーションNginxが正常にデプロイされたことを意味します。
クラスターを削除する
クラスターが不要になった場合は、シングルクリックでクラスターを削除できます。 クラスタに戻り、[クラスタの削除]ボタンをクリックします。
テキストフィールドに「deleteme」と入力して削除アクションを確認し、「Delete」ボタンをクリックします。 これにより、クラスターが完全に削除され、一度削除すると回復できなくなります。 したがって、リアルタイムアプリケーションで作業している場合は、クラスターを削除する際に注意してください。
結論
この記事では、クラスター、タスク定義、およびサービスを作成する手順について説明しました。 確認した手順を使用して、テストクラスターを作成できます。 リアルタイムアプリケーションを使用してクラスターを作成する場合は、確認した構成についてより具体的にする必要があります。
Hope this helps!