

# AWS マネジメントコンソール を使用した Amazon ECS クラスターの自動スケーリング用のリソースの作成
<a name="tutorial-cluster-auto-scaling-console"></a>

AWS マネジメントコンソール を使用してクラスターの自動スケーリング用のリソースを作成する方法について説明します。リソースに名前が必要な場合は、プレフィックス `ConsoleTutorial` を使用して、すべてのリソースに一意の名前があることを確認し、見つけやすくします。

**Topics**
+ [

## 前提条件
](#console-tutorial-prereqs)
+ [

## ステップ 1: Amazon ECS クラスターを作成する
](#console-tutorial-cluster)
+ [

## ステップ 2: タスク定義を登録する
](#console-tutorial-register-task-definition)
+ [

## ステップ 3: タスクを実行する
](#console-tutorial-run-task)
+ [

## ステップ 4: 確認する
](#console-tutorial-verify)
+ [

## ステップ 5：クリーンアップ
](#console-tutorial-cleanup)

## 前提条件
<a name="console-tutorial-prereqs"></a>

このチュートリアルでは、以下の前提条件が完了済みであることを前提としています。
+ 「[Amazon ECS を使用するようにセットアップする](get-set-up-for-amazon-ecs.md)」のステップを完了していること。
+ IAM ユーザーに [AmazonECS\$1FullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonECS_FullAccess) IAM ポリシー例で指定されている必要なアクセス権限があること。
+ Amazon ECS コンテナインスタンス IAM ロールが作成されます。詳細については、「[Amazon ECS コンテナインスタンスの IAM ロール](instance_IAM_role.md)」を参照してください。
+ Amazon ECS サービスにリンクされた IAM ロールが作成されます。詳細については、「[Amazon ECS のサービスリンクロールの使用](using-service-linked-roles.md)」を参照してください。
+ 自動スケーリングのサービスにリンクされたIAMロールを作成する 詳細については、*Amazon EC2 Auto Scaling ユーザーガイド*の「[Amazon EC2 Auto Scaling のサービスにリンクされたロール](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html)」を参照してください。
+ VPC およびセキュリティグループが使用できるように作成されていること。詳細については、「[仮想プライベートクラウドを作成する](get-set-up-for-amazon-ecs.md#create-a-vpc)」を参照してください。

## ステップ 1: Amazon ECS クラスターを作成する
<a name="console-tutorial-cluster"></a>

次の手順に従って Amazon ECS クラスターを作成します。

Amazon ECS は、CloudFormation スタックの一部としてユーザーに代わり Amazon EC2 Auto Scaling 起動テンプレートと Auto Scaling グループを作成します。

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

1. ナビゲーションペインで、[**クラスター**] を選択し、[**クラスターの作成**] を選択します。

1. **[クラスター設定]** の **[クラスター名]** に、「`ConsoleTutorial-cluster`」と入力します。

1. [**インフラストラクチャ**] で、[AWS Fargate (サーバーレス)] を選択解除し、**[Amazon EC2 インスタンス]** を選択します。次に、キャパシティプロバイダーとして動作する、Auto Scaling グループを設定します。

   1. **[自動スケーリンググループ (ASG)]** の下です。**[新しい ASG を作成]** を選択し、次に、そのグループに関する詳細を以下のように入力します。
     + **[オペレーティングシステム/アーキテクチャ]** で、**[Amazon Linux 2]** を選択します。
     + **[EC2 インスタンスタイプ]** で [**t3.nano**] を選択します。
     + **[Capacity]** (キャパシティー) には、Auto Scaling グループで起動するインスタンスの最小数と最大数を入力します。

1. (オプション) クラスタータグを管理するには、**[Tags]** (タグ) を展開し、次のいずれかのオペレーションを実行します。

   [タグの追加] [**タグの追加**] を選択して、以下を実行します。
   + [**キー**] にはキー名を入力します。
   + [**値**] にキー値を入力します。

   [タグを削除] タグのキーと値の右側にある [**削除**] を選択します。

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

## ステップ 2: タスク定義を登録する
<a name="console-tutorial-register-task-definition"></a>

クラスターでタスクを実行する前に、タスク定義を登録する必要があります。タスク定義とは、1 つにグループ化されたコンテナのリストです。次の例は、Docker Hub から取得した `amazonlinux` イメージを使用し、スリープ状態になるシンプルなタスク定義です。使用できるタスク定義パラメータの詳細については、「[Amazon ECS のタスク定義](task_definitions.md)」を参照してください。

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

1. ナビゲーションペインで、**タスクの定義** を選択します。

1. **[Create new task definition]** (新しいタスク定義の作成)、**[Create new task definition with JSON]** (JSON で新しいタスク定義を作成) の順に選択します。

1. **[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"
       ]
   }
   ```

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

## ステップ 3: タスクを実行する
<a name="console-tutorial-run-task"></a>

アカウントのタスク定義を登録したら、クラスターでタスクを実行できます。このチュートリアルでは、`ConsoleTutorial-cluster` クラスターで `ConsoleTutorial-taskdef` タスク定義のインスタンスを 5 つ実行します。

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

1. **[クラスター]** ページで、**[コンソールチュートリアル – クラスター]** を選択します。

1. **[タスク]** で、**[新しいタスクの実行]** を選択します

1. **[環境]** セクションの **[コンピューティングオプション]** で、**[キャパシティープロバイダー戦略]** を選択します。

1. **[デプロイメント構成]** の **[アプリケーション タイプ]** で、**[タスク]** を選択します。

1.  **[ファミリー]** ドロップダウン リストから **[ConsoleTutorial-taskdef]** を選択します。

1. **[希望するタスク]** で、「5」と入力します。

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

## ステップ 4: 確認する
<a name="console-tutorial-verify"></a>

チュートリアルのこの時点で、5 つのタスクが実行されているクラスターと、キャパシティープロバイダーを備えた Auto Scaling グループができているはずです。キャパシティープロバイダーが Amazon ECS マネージドスケーリングを有効にしています。

CloudWatch メトリクス、Auto Scaling グループ設定、最後に Amazon ECS クラスタータスク数を表示することで、すべてが正常に機能していることを確認できます。

**クラスターの CloudWatch メトリクスを表示するには**

1. CloudWatch コンソールの [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) を開いてください。

1. 画面上部のナビゲーションバーで、 リージョンを選択します。

1. ナビゲーションペインで、**[メトリクス]** から **[すべてのメトリクス]** を選択します。

1. **[すべてのメトリクス]** ページの **[参照]** タブで、`AWS/ECS/ManagedScaling` を選択します。

1. [**CapacityProviderName, ClusterName**] を選択します。

1. `ConsoleTutorial-cluster` **[クラスター名]** に対応するチェックボックスを選択します。

1. **[グラフ化メトリクス]** タブで、**[期間]** を **[30 秒]**、**[統計]** を **[最大]** に変更します。

   グラフに表示される値は、キャパシティープロバイダーのターゲットキャパシティー値を示します。これは、設定したターゲットキャパシティーパーセントである `100` から開始する必要があります。`200` までスケールアップすると、ターゲット追跡スケーリングポリシーのアラームがトリガーされます。その後、アラームが発生し Auto Scaling グループがスケールアウトします。

次のステップに従って、Auto Scaling グループの詳細を表示し、スケールアウトアクションが発生したことを確認します。

**Auto Scaling グループがスケールアウトされたことを確認するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. 画面上部のナビゲーションバーで、 リージョンを選択します。

1. ナビゲーションペインの **自動スケーリング** で、**[Auto Scaling Groups]** (Auto Scaling グループ) を選択します。

1. このチュートリアルで作成した `ConsoleTutorial-cluster` Auto Scaling グループを選択します。**[必要なキャパシティー]** の値を表示し、**[インスタンス管理]** タブでインスタンスを表示して、グループが 2 つのインスタンスにスケールアウトされていることを確認します。

次のステップを使用して Amazon ECS クラスターを表示し、Amazon EC2 インスタンスがクラスターに登録され、タスクが `RUNNING` ステータスに移行したことを確認します。

**Auto Scaling グループに含まれるインスタンスを確認する方法**

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

1. ナビゲーションペインで **[Clusters]** (クラスター) を選択してください。

1. **[クラスター]** ページで、`ConsoleTutorial-cluster` クラスターを選択します。

1. [**タスク**] タブで、5 つのタスクが `RUNNING` ステータスになっていることを確認します。

## ステップ 5：クリーンアップ
<a name="console-tutorial-cleanup"></a>

このチュートリアルが終了したら、使用していないリソースに対する料金が発生しないように、チュートリアルに関連付けられたリソースをクリーンアップします。キャパシティープロバイダーとタスク定義の削除はサポートされていませんが、これらのリソースに関連するコストは発生しません。

**チュートリアルリソースをクリーンアップするには**

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

1. ナビゲーションペインで **[Clusters]** (クラスター) を選択してください。

1. **[クラスター]** ページで、**[コンソールチュートリアル – クラスター]** を選択します。

1. **[ConsoleTutorial-cluster]** ページで、**[タスク]** タブを選択し、**[停止]**、**[すべて停止]** の順に選択します。

1. ナビゲーションペインで **[Clusters]** (クラスター) を選択してください。

1. **[クラスター]** ページで、**[コンソールチュートリアル – クラスター]** を選択します。

1. ページの右上で、**[クラスターを削除]** を選択します。

1. 確認ボックスに **[**ConsoleTutorial-cluster** を削除]** と入力し、**[削除]** を選択します。

1. 以下のステップに従って Auto Scaling グループを削除します。

   1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

   1. 画面上部のナビゲーションバーで、 リージョンを選択します。

   1. ナビゲーションペインの **自動スケーリング** で、**[Auto Scaling Groups]** (Auto Scaling グループ) を選択します。

   1. `ConsoleTutorial-cluster` Auto Scaling グループ > **[アクション]** の順に選択します。

   1.  [**アクション**] メニューから、[**削除**] を選択します。確認ボックスに **[削除]** と入力し、**[削除]** を選択します。