AWS ECS(Fargate)でチュートリアルを実施する。(Hands-on)

# はじめに
ECS(Fargate)でWebサーバのApacheをデプロイするチュートリアルとなります。かなり荒い説明になっておりますので、話8割程度で聞いてください。

## Fargateとは？？
Fargateとはコンテナ向けサーバレスコンピューティングです。簡単に言うと、Dockerイメージからコンテナを作成し、必要に応じてスケールしたりしてくれる便利なサービスです。最近の開発だと主流になっているので、一度触っておくと良いですよ。それではハンズオンを初めていきましょう。

![スクリーンショット 2022-06-12 19.28.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/1d88f5df-771b-fc29-94e1-4701a0a1275a.png)

# 全体の説明
ECSでは「タスクの定義」や「タスク」、「クラスター」、「サービス」と普段目にしない用語がたくさん出てきます。ただやっている事としては大きく2つに分けられます。
1. どんなコンテナを作るのか 2.どのようにコンテナを組み合わせるのか。この2つです。

## 1. どんなコンテナを作るのか？？(タスク定義)
コンテナとは、「OSやミドルウェア、アプリケーションをひとまとめにしたもの」です。(下記写真参考)コンテナを作るための設計図がDockerイメージです。Dockerイメージはシステム構成が定義されており、OSは「CentOS」、ミドルウェアは「Tomcat」、アプリケーションは「Java」といった内容が記載されています。このイメージを元に実際に作られるものがコンテナです。
　　前述の説明が少し長くなりましたが、タスク定義とは「コンテナの設計図となるイメージを定義する」事だと考えてください。今回はDockerHubに用意されている既存のイメージを作成するので、ふーんくらいの理解でOKです！！

![スクリーンショット 2022-06-12 19.57.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/74b805a0-d71c-0b0a-c421-12e38b8e1be1.png)

## 2. どのようにコンテナを組み合わせるのか（クラスターの中身作成）
1でコンテナの設計図を定義しました。次はコンテナの設計図を元にどんなシステム構成を作っていくかを決めて行きます。
やってる事はざっくり、箱を作る→コンテナを管理するマネージャーを作る→コンテナを作る。こんな感じですね。ややこしい言葉が出てくるのですが、この前提で話を聞いてください。
### 2-1. 箱を作る（クラスター)
クラスターを定義します。これはただの箱です。クラスターの中に色々な物を詰め込むのねって理解でOKです！！

### 2-2. コンテナを管理するマネージャーを作る(サービス)
コンテナ技術の一つの目玉機能として、オートスケールというのがあります。オートスケールとは、アクセスが多い時はコンテナの数を増やして処理時間を短縮し、逆にアクセスが少ない時は縮小してリソースを削減するものです。オートスケールを実現するために、コンテナの面倒を見るマネージャーを作る必要があります。ECSではこのマネージャーを「サービス」と定義しています。

### 2-3. コンテナを作る。
1でも触れた通り、コンテナを作ります。コンテナの設計書(タスク定義)から量産されるものと認識しておいてください。

まとめると、下記のようなことをやっているだけです。では、Hands-onをスタートして行きましょう！！
![スクリーンショット 2022-06-12 20.25.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/006c87e1-797c-b4cd-a923-73dd300ae8a5.png)

## Hands-onスタート
### 1.クラスターの定義
![スクリーンショット 2022-06-12 21.12.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/928e2d8c-c7b6-8152-37c3-290f985a06fd.png)

![スクリーンショット 2022-06-12 20.46.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/48b4079a-6df7-7f30-3165-21a5345500b6.png)

![スクリーンショット 2022-06-12 20.47.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/1d4e4820-bf03-f38f-bf6a-a5b2eed07c3a.png)
※VPCの作成はチェックを入れてください。

![スクリーンショット 2022-06-12 20.50.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/9e5d6c15-f2bd-faa3-d50d-5d3bf39acefd.png)

### 2.タスクの定義
![スクリーンショット 2022-06-12 20.51.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/35f67d5e-9d79-9114-4b7c-665e1fd4b21f.png)
![スクリーンショット 2022-06-12 20.51.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/985b54d0-c812-8199-ef18-45399b2df7eb.png)
![スクリーンショット 2022-06-12 20.52.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/ea9a12f7-f8ea-bab3-9741-f22fba16042b.png)
![スクリーンショット 2022-06-12 20.53.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/8b33a199-87f2-5fee-4006-70d1db51fb1f.png)
※ここ重要です。イメージはDockerHubから取得するので、打ち間違い内容してください。

![スクリーンショット 2022-06-12 20.54.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/f94c632e-05c7-b5ca-a5c7-18487f160b04.png)

### 3.サービス定義
![スクリーンショット 2022-06-12 20.56.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/d273313d-d806-e927-a2b9-49e5d4f91de5.png)
![スクリーンショット 2022-06-12 20.56.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/142a79b7-2567-5054-3c75-a739b4fc3710.png)


![スクリーンショット 2022-06-12 20.57.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/87475f36-6456-76a9-080a-77d617d78ad3.png)
![スクリーンショット 2022-06-12 20.58.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/fe00cb35-fcba-d3f3-1412-96922b75b9fa.png)
![スクリーンショット 2022-06-12 20.58.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/0ddf1d68-7cc7-8cf0-b068-2f1ce04b845d.png)
![スクリーンショット 2022-06-12 20.58.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/39f4310b-cdcc-7ffa-72a3-1c4f3c26b0de.png)

## 動作確認
では動作確認を実施して行きましょう。成功していれば、URLを叩くとApacheが起動しているはずです。
![スクリーンショット 2022-06-12 21.04.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/ae05477d-24e6-c832-0fc2-29c1ab62678c.png)
※URLはタスクから確認できます。タスクのパブリックIPアドレスに８０番ポートをつけたのがURLとなります。
下記画面ができていれば、成功です！！お疲れ様でした！！

![スクリーンショット 2022-06-12 21.05.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/63b90ad5-396f-f128-39ea-229e1d40a146.png)



https://aws.amazon.com/jp/fargate/