AWS Management Console を使用した Amazon ECS クラスターの自動スケーリング用のリソースの作成
AWS Management Console を使用してクラスターの自動スケーリング用のリソースを作成する方法について説明します。リソースに名前が必要な場合は、プレフィックス ConsoleTutorial
を使用して、すべてのリソースに一意の名前があることを確認し、見つけやすくします。
前提条件
このチュートリアルでは、以下の前提条件が完了済みであることを前提としています。
-
「Amazon ECS を使用するようにセットアップする」のステップを完了していること。
-
IAM ユーザーに AmazonECS_FullAccess IAM ポリシー例で指定されている必要なアクセス権限があること。
-
Amazon ECS コンテナインスタンス IAM ロールが作成されます。詳細については、「Amazon ECS コンテナインスタンスの IAM ロール」を参照してください。
-
Amazon ECS サービスにリンクされた IAM ロールが作成されます。詳細については、「Amazon ECS のサービスリンクロールの使用」を参照してください。
-
自動スケーリングのサービスにリンクされたIAMロールを作成する 詳細については、Amazon EC2 Auto Scaling ユーザーガイドの「Amazon EC2 Auto Scaling のサービスにリンクされたロール」を参照してください。
-
VPC およびセキュリティグループが使用できるように作成されていること。詳細については、「仮想プライベートクラウドを作成する」を参照してください。
ステップ 1: Amazon ECS クラスターを作成する
次の手順に従って Amazon ECS クラスターを作成します。
Amazon ECS は、AWS CloudFormation スタックの一部としてユーザーに代わり Amazon EC2 Auto Scaling 起動テンプレートと Auto Scaling グループを作成します。
コンソール (https://console.aws.amazon.com/ecs/v2
) を開きます。 -
ナビゲーションペインで、[クラスター] を選択し、[クラスターの作成] を選択します。
-
[クラスター設定] の [クラスター名] に、「
ConsoleTutorial-cluster
」と入力します。 -
[インフラストラクチャ] で、[AWS Fargate (サーバーレス)] を選択解除し、[Amazon EC2 インスタンス] を選択します。次に、キャパシティプロバイダーとして動作する、Auto Scaling グループを設定します。
-
[自動スケーリンググループ (ASG)] の下です。[新しい ASG を作成] を選択し、次に、そのグループに関する詳細を以下のように入力します。
-
[オペレーティングシステム/アーキテクチャ] で、[Amazon Linux 2] を選択します。
-
[EC2 インスタンスタイプ] で [t3.nano] を選択します。
-
[Capacity] (キャパシティー) には、Auto Scaling グループで起動するインスタンスの最小数と最大数を入力します。
-
-
-
(オプション) クラスタータグを管理するには、[Tags] (タグ) を展開し、次のいずれかのオペレーションを実行します。
[タグの追加] [タグの追加] を選択して、以下を実行します。
-
[キー] にはキー名を入力します。
-
[値] にキー値を入力します。
[タグを削除] タグのキーと値の右側にある [削除] を選択します。
-
-
[作成] を選択します。
ステップ 2: タスク定義を登録する
クラスターでタスクを実行する前に、タスク定義を登録する必要があります。タスク定義とは、1 つにグループ化されたコンテナのリストです。次の例は、Docker Hub から取得した amazonlinux
イメージを使用し、スリープ状態になるシンプルなタスク定義です。使用できるタスク定義パラメータの詳細については、「Amazon ECSの タスク定義」を参照してください。
コンソール (https://console.aws.amazon.com/ecs/v2
) を開きます。 -
ナビゲーションペインで、タスクの定義 を選択します。
-
[Create new task definition] (新しいタスク定義の作成)、[Create new task definition with JSON] (JSON で新しいタスク定義を作成) の順に選択します。
-
[JSON エディタ] ボックスには、以下の内容を貼り付けます。
{ "family": "ConsoleTutorial-taskdef", "containerDefinitions": [ { "name": "sleep", "image": "public.ecr.aws/amazonlinux/amazonlinux:latest", "memory": 20, "essential": true, "command": [ "sh", "-c", "sleep infinity" ] } ], "requiresCompatibilities": [ "EC2" ] }
-
[作成] を選択します。
ステップ 3: タスクを実行する
アカウントのタスク定義を登録したら、クラスターでタスクを実行できます。このチュートリアルでは、ConsoleTutorial-cluster
クラスターで ConsoleTutorial-taskdef
タスク定義のインスタンスを 5 つ実行します。
コンソール (https://console.aws.amazon.com/ecs/v2
) を開きます。 -
[クラスター] ページで、[コンソールチュートリアル – クラスター] を選択します。
-
[タスク] で、[新しいタスクの実行] を選択します
-
[環境] セクションの [コンピューティングオプション] で、[キャパシティープロバイダー戦略] を選択します。
-
[デプロイメント構成] の [アプリケーション タイプ] で、[タスク] を選択します。
-
[ファミリー] ドロップダウン リストから [ConsoleTutorial-taskdef] を選択します。
-
[希望するタスク] で、「5」と入力します。
-
[作成] を選択します。
ステップ 4: 確認する
チュートリアルのこの時点で、5 つのタスクが実行されているクラスターと、キャパシティープロバイダーを備えた Auto Scaling グループができているはずです。キャパシティープロバイダーが Amazon ECS マネージドスケーリングを有効にしています。
CloudWatch メトリクス、Auto Scaling グループ設定、最後に Amazon ECS クラスタータスク数を表示することで、すべてが正常に機能していることを確認できます。
クラスターの CloudWatch メトリクスを表示するには
CloudWatch コンソールの https://console.aws.amazon.com/cloudwatch/
を開いてください。 -
画面上部のナビゲーションバーで、 リージョンを選択します。
-
ナビゲーションペインで、[メトリクス] から [すべてのメトリクス] を選択します。
-
[すべてのメトリクス] ページの [参照] タブで、
AWS/ECS/ManagedScaling
を選択します。 -
[CapacityProviderName, ClusterName] を選択します。
-
ConsoleTutorial-cluster
[クラスター名] に対応するチェックボックスを選択します。 -
[グラフ化メトリクス] タブで、[期間] を [30 秒]、[統計] を [最大] に変更します。
グラフに表示される値は、キャパシティープロバイダーのターゲットキャパシティー値を示します。これは、設定したターゲットキャパシティーパーセントである
100
から開始する必要があります。200
までスケールアップすると、ターゲット追跡スケーリングポリシーのアラームがトリガーされます。その後、アラームが発生し Auto Scaling グループがスケールアウトします。
次のステップに従って、Auto Scaling グループの詳細を表示し、スケールアウトアクションが発生したことを確認します。
Auto Scaling グループがスケールアウトされたことを確認するには
Amazon EC2 コンソールの https://console.aws.amazon.com/ec2/
を開いてください。 -
画面上部のナビゲーションバーで、 リージョンを選択します。
-
ナビゲーションペインの 自動スケーリング で、[Auto Scaling Groups] (Auto Scaling グループ) を選択します。
-
このチュートリアルで作成した
ConsoleTutorial-cluster
Auto Scaling グループを選択します。[必要なキャパシティー] の値を表示し、[インスタンス管理] タブでインスタンスを表示して、グループが 2 つのインスタンスにスケールアウトされていることを確認します。
次のステップを使用して Amazon ECS クラスターを表示し、Amazon EC2 インスタンスがクラスターに登録され、タスクが RUNNING
ステータスに移行したことを確認します。
Auto Scaling グループに含まれるインスタンスを確認する方法
コンソール (https://console.aws.amazon.com/ecs/v2
) を開きます。 -
ナビゲーションペインで [Clusters] (クラスター) を選択してください。
-
[クラスター] ページで、
ConsoleTutorial-cluster
クラスターを選択します。 -
[タスク] タブで、5 つのタスクが
RUNNING
ステータスになっていることを確認します。
ステップ 5:クリーンアップ
このチュートリアルが終了したら、使用していないリソースに対する料金が発生しないように、チュートリアルに関連付けられたリソースをクリーンアップします。キャパシティープロバイダーとタスク定義の削除はサポートされていませんが、これらのリソースに関連するコストは発生しません。
チュートリアルリソースをクリーンアップするには
コンソール (https://console.aws.amazon.com/ecs/v2
) を開きます。 -
ナビゲーションペインで [Clusters] (クラスター) を選択してください。
-
[クラスター] ページで、[コンソールチュートリアル – クラスター] を選択します。
-
[ConsoleTutorial-cluster] ページで、[タスク] タブを選択し、[停止]、[すべて停止] の順に選択します。
-
ナビゲーションペインで [Clusters] (クラスター) を選択してください。
-
[クラスター] ページで、[コンソールチュートリアル – クラスター] を選択します。
-
ページの右上で、[クラスターを削除] を選択します。
-
確認ボックスに [ConsoleTutorial-cluster を削除] と入力し、[削除] を選択します。
-
以下のステップに従って Auto Scaling グループを削除します。
Amazon EC2 コンソールの https://console.aws.amazon.com/ec2/
を開いてください。 -
画面上部のナビゲーションバーで、 リージョンを選択します。
-
ナビゲーションペインの 自動スケーリング で、[Auto Scaling Groups] (Auto Scaling グループ) を選択します。
-
ConsoleTutorial-cluster
Auto Scaling グループ > [アクション] の順に選択します。 -
[アクション] メニューから、[削除] を選択します。確認ボックスに [削除] と入力し、[削除] を選択します。