

# Fargate 用の Amazon ECS Linux タスクを作成する方法について説明します。
<a name="getting-started-fargate"></a>

Amazon Elastic Container Service (Amazon ECS) は、非常にスケーラブルで高速なコンテナ管理サービスで、クラスターでコンテナの実行、停止、管理を簡単に行うことができます。AWS Fargate でサービスやタスクを起動して、Amazon ECS 管理のサーバーレスインフラストラクチャにあるコンテナをホストすることができます。Fargate の詳細については、[Amazon ECS の AWS Fargate 用のアーキテクト](AWS_Fargate.md) を参照してください。

Amazon ECS が AWS Fargate をサポートするリージョンで、タスクに Fargate を使用して、Amazon ECS on AWS Fargate の利用を開始します。

AWS Fargateで Amazon ECSの使用を開始するには、以下のステップを完了します。

## 前提条件
<a name="first-run-linux-prereqs"></a>

開始する前に、[Amazon ECS を使用するようにセットアップする](get-set-up-for-amazon-ecs.md) のステップを完了し、IAM ユーザーに `AdministratorAccess` IAM ポリシー例で指定されているアクセス許可があることを確認します。

コンソールは、Fargate タスクに必要なタスク実行 IAM ロールを自動で作成しようとします。コンソールがこの IAM ロールを作成できるようにするには、次のいずれかがtrueである必要があります。
+ ユーザーが管理者権限を持っていることが必要です。詳細については、「[Amazon ECS を使用するようにセットアップする](get-set-up-for-amazon-ecs.md)」を参照してください。
+ ユーザーがサービスロールを作成するための IAM 権限を持っていることが必要です。詳細については、「[AWS サービスにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)」を参照してください。
+ 管理者権限を持つユーザーは、タスク実行ロールを手動で作成することにより、使用するアカウントで有効にできます。詳細については、「[Amazon ECS タスク実行IAM ロール](task_execution_IAM_role.md)」を参照してください。

**重要**  
タスク定義を使用してサービスを作成するときに選択するセキュリティグループには、インバウンドトラフィック用にポート 80 が開いている必要があります。セキュリティグループに次のインバウンドルールを追加します。セキュリティグループの作成方法については、「*Amazon EC2 ユーザーガイド*」の「[Amazon EC2 インスタンス用のセキュリティグループの作成](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-security-group.html)」を参照してください。  
Type: HTTP
[Protocol]: TCP
ポート範囲: 80
ソース: 任意の場所 (`0.0.0.0/0`)

## ステップ 1: クラスターを作成する
<a name="get-started-fargate-cluster"></a>

デフォルトの VPC を使用するクラスターを作成します。

開始する前に、適切な IAM アクセス許可を割り当ててください。詳細については、「[Amazon ECS クラスターの例](security_iam_id-based-policy-examples.md#IAM_cluster_policies)」を参照してください。

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

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

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

1. **[Clusters]** (クラスター) ページで、**[Create Cluster]** (クラスターの作成) を選択します。

1. **[Cluster configuration]** (クラスター設定) で、**[Cluster name]** (クラスター名) に一意の名前を入力します。

   名前には、最大 255 文字 (大文字と小文字)、数字、およびハイフンを含めることができます。

1. (オプション) Container Insights を有効にするには、**[Monitoring]** (モニタリング) を展開し、**[Use Container Insights]** (Container Insights を使用する) をオンにします。

1. (オプション) クラスターを識別しやすくするには、**[Tags]** (タグ) を展開し、タグを設定します。

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

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

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

## ステップ 2: タスク定義を作成する
<a name="get-started-fargate-task-def"></a>

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

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

1. **[Create new Task Definition]** (新しいタスク定義の作成)、**[Create new revision with JSON]** (JSON で新しいリビジョンを作成) の順に選択します。

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

   ```
   {
       "family": "sample-fargate", 
       "networkMode": "awsvpc", 
       "containerDefinitions": [
           {
               "name": "fargate-app", 
               "image": "public.ecr.aws/docker/library/httpd:latest", 
               "portMappings": [
                   {
                       "containerPort": 80, 
                       "hostPort": 80, 
                       "protocol": "tcp"
                   }
               ], 
               "essential": true, 
               "entryPoint": [
                   "sh",
   		"-c"
               ], 
               "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\""
               ]
           }
       ], 
       "requiresCompatibilities": [
           "FARGATE"
       ], 
       "cpu": "256", 
       "memory": "512"
   }
   ```

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

## ステップ 3: サービスを作成する
<a name="create-linux-service"></a>

タスク定義を使用してサービスを作成します。

1. ナビゲーションペインで、**[Clusters]** (クラスター) を選択してから、[ステップ 1: クラスターを作成する](#get-started-fargate-cluster) で作成したクラスターを選択します。

1. **[Services]** (サービス) タブから、**[Create]** (作成) を選択します。

1. **[サービスの詳細]** で、アプリケーションのデプロイ方法を指定します。

   1. **[タスク定義ファミリー]** で、[ステップ 2: タスク定義を作成する](#get-started-fargate-task-def) で作成したタスク定義を選択します。

   1. **[Service name]** (サービス名) でサービスの名前を入力します。

1. **[環境]** で **[起動タイプ]** を選択し、`FARGATE` を選択します。

1. **[デプロイ設定]** で、**[必要なタスク]**に **1** と入力します。

1.  **[ネットワーク]** で、タスク用に新しいセキュリティグループを作成するか、既存のセキュリティグループを選択できます。使用するセキュリティグループに、[前提条件](#first-run-linux-prereqs) に一覧表示されているインバウンドルールがあることを確認してください。

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

## ステップ 4: サービスを表示する
<a name="view-fargate-windows"></a>

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

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

1. サービスを実行したクラスターを選択します。

1. **[サービス]** タブの **[サービス名]** で、[ステップ 3: サービスを作成する](#create-linux-service) に作成したサービスを選択します。

1. **[タスク]** タブ > サービス内のタスクの順に選択します。

1. [タスク] ページの **[設定]** セクションの **[パブリック IP]** で、**[オープンアドレス]** を選択します。

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

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

タスク、サービス、クラスター、コンテナインスタンスなど、一部の Amazon ECS リソースは、Amazon ECS コンソールを使用してクリーンアップします。Amazon EC2 インスタンス、Elastic Load Balancing ロードバランサー、Auto Scaling グループなど他のリソースは、Amazon EC2 コンソールで手動でクリーンアップするか、それを作成した CloudFormation スタックを削除することでクリーンアップする必要があります。

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

1. **[クラスター]** ページで、このチュートリアル用に作成したクラスターを選択します。

1. **[サービス]** タブを選択します。

1. サービス > **[削除]** の順に選択します。

1. 確認プロンプトで、**delete** (削除) と入力し、**[Delete]** (削除) を選択します。または、サービスを削除する前に、ユーザーに代わって Amazon ECS がサービスをスケールダウンする `Force delete` オプションを使用することもできます。

   サービスが削除されるまでお待ちください。

1. [**Delete Cluster**] を選択します。確認プロンプトで、**delete *cluster-name***と入力し、**[Delete]** (削除) を選択します。クラスターを削除すると、Auto Scaling グループ、VPC、ロードバランサーなどを含むクラスターで作成された関連リソースがクリーンアップされます。