Amazon Fargateでアプリケーションを動かす



# ECRに登録

![スクリーンショット 2022-08-06 15.11.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/801403c4-823c-008c-4ee1-4bbd481dfb71.png)

![スクリーンショット 2022-08-06 15.12.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/986eb07e-b35c-443a-0d23-27ebc9780e3d.png)

![スクリーンショット 2022-08-06 15.12.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/0a4d9770-493d-8994-efa6-ad73de5e5132.png)

プッシュコマンドの表示をして指示通りにPushします。

**M1 Macだとplatform指定が必要**

```shell
$ docker build --platform x86_64 -t ykdevs-sample/spring-sample .
```


![スクリーンショット 2022-08-06 15.12.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/b4a9bb6c-2c7d-cd93-2f65-089a33a9d4d8.png)

Dockerファイルのあるターミナルに移動して。

![スクリーンショット 2022-08-06 15.15.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/a0ef8855-f93e-fba2-5cab-9061318efe83.png)

![スクリーンショット 2022-08-06 15.22.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/08df2b74-a064-1422-59fd-7c34e10d180c.png)

イメージがPushされていることを確認します。

![スクリーンショット 2022-08-06 15.23.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/e265a990-f327-04f8-1bac-c1fc75cff5df.png)

# Amazon ECSの環境構築

Amazon ECSでクラスターの「今すぐ始める」をクリックします。

![スクリーンショット 2022-08-07 16.17.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/779e5b52-89d2-34a1-fd4a-0f6f3d0d153e.png)

## ステップ1：コンテナとタスク

コンテナはカスタムを選択してECRに登録したものを選択します。
ポートは8080を選択します。

![スクリーンショット 2022-08-07 17.28.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/ef9007be-ad5a-c1e4-10dd-36a9bbe57c01.png)


タスク定義は名称を変更するくらい。

![スクリーンショット 2022-08-07 17.28.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/a6f0fe24-a008-6167-2866-0b30288da4fc.png)


全体としては以下の感じ

![スクリーンショット 2022-08-07 17.28.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/1093ad18-1b75-a3de-14e3-f76c1271a3ae.png)


## ステップ2：サービス

Application Load Balancerを選択します。

![スクリーンショット 2022-08-07 17.29.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/47f998e5-3ec4-5192-f4cc-a279f263cc52.png)


## ステップ3：クラスター

![スクリーンショット 2022-08-07 17.29.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/26114992-6081-c286-c48b-60e73c1c8cfb.png)

## ステップ4：確認

![スクリーンショット 2022-08-07 17.29.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/62b24b96-dde5-879f-e900-1fc2ae2a07ff.png)

## 結果画面

![スクリーンショット 2022-08-07 17.33.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/6aa2773c-730a-98ad-0968-138e31197901.png)

## 接続確認

ロードバランサのVIPの8080ポートにアクセスすると画面が確認できた。

![スクリーンショット 2022-08-07 17.35.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/42057106-b90b-2606-e7ae-0af7ec901412.png)



# 作られたもの

## クラスタ

![スクリーンショット 2022-08-07 17.37.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/1c7f2f8f-0150-5a84-86b3-4e6eea8748a1.png)

サービス

![スクリーンショット 2022-08-07 17.37.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/4954431f-120a-32ec-336c-ac224c60c696.png)

タスク

![スクリーンショット 2022-08-07 17.37.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/ff00111b-c04e-ae8a-bf50-b9995f029183.png)

## タスク定義

![スクリーンショット 2022-08-07 17.38.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/19f1136c-9029-307b-ae23-6b2717c7c91f.png)

![スクリーンショット 2022-08-07 17.39.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/4fd85a2a-6b47-a865-5ea6-a8f7cc9c6bb6.png)

![1111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/0e5b9322-64cc-1a21-3f57-11830ef0c31d.png)


## サービス

![スクリーンショット 2022-08-07 17.40.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/797d524f-9b69-81a8-6cac-8b2a12866cf7.png)

![スクリーンショット 2022-08-07 17.41.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/209c4055-9b15-e3f8-1882-71ae4bea8235.png)

## 実行中のタスク

![スクリーンショット 2022-08-07 17.41.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/d3fa9f2d-edee-d963-151f-fce834d81cc6.png)


## VPC

ECS用に新しいVPCが１つ発行されている。
IPv4 CIDRが10.0.0.0/16となっている。

### vpc-0fafecdce74c06dbc
![スクリーンショット 2022-08-07 17.43.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/a5cc9d44-6143-2296-85ed-110d61114760.png)

## サブネット

サブネットは２つ（10.0.0.0/24, 10.0.1.0/24）作成されている。
![スクリーンショット 2022-08-07 17.44.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/c0f0415b-0a65-79d1-59a6-0bf842b651da.png)

### subnet-018e4a14da8b8fdeb（ECS sample - Public Subnet 1）
![スクリーンショット 2022-08-07 17.44.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/6ec377a1-65a1-f706-9afc-12a969295cfc.png)

### subnet-087ed4db079bd28c5（ECS sample - Public Subnet 2）
![スクリーンショット 2022-08-07 17.47.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/18e87f74-8cda-79c7-ea00-120751dc2eb1.png)


## セキュリティグループ

セキュリティグループは３つ作られている。

sg-039d6e0480b24f147（default）
sg-00f8a735ce0d7a266（ECS sample - ECS SecurityGroup）
sg-0ad3854a547c625a8（ECS sample - ALB SecurityGroup）


### sg-039d6e0480b24f147（default）
[VPCのデフォルトのセキュリティグループ](https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_SecurityGroups.html)


![スクリーンショット 2022-08-08 0.05.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/e2962db4-606c-6e1a-c641-6ee2b7ea4ef4.png)

![スクリーンショット 2022-08-08 0.06.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/db6df74a-6a89-d291-5622-45519cd4781f.png)

### sg-00f8a735ce0d7a266（ECS sample - ECS SecurityGroup）

ECS用のセキュリティグループ
すべての場所から8080へのアクセスが可能で、すべての場所にすべてのポートで応答可能。
同じセキュリティグループ内からはすべてのポートでアクセス可能。

![スクリーンショット 2022-08-08 0.25.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/6a27309b-3ee6-e5cc-1efb-8fa590aa5ab5.png)

![スクリーンショット 2022-08-08 0.25.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/27df890f-1b35-0f4d-fea7-189f2c77a254.png)


### sg-0ad3854a547c625a8（ECS sample - ALB SecurityGroup）

ALB用のセキュリティグループ。
すべての場所から8080へのアクセスが可能で、すべての場所にすべてのポートで応答可能。

![スクリーンショット 2022-08-08 0.23.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/673e9913-3db5-f031-6811-857332857719.png)

![スクリーンショット 2022-08-08 0.23.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/9b19943c-4780-7dd2-347c-48a04b2dbbd4.png)


## ターゲットグループ

![スクリーンショット 2022-08-08 0.26.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/2c73823c-cab8-8c32-65b5-c59af4356038.png)


## ロードバランサ

DSN名のところにPublicなDNS名があるので、その8080ポートにアクセスすると画面が表示できる。

![スクリーンショット 2022-08-08 0.30.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/b86220f2-de2a-ae97-2442-c9a7ac16d5bd.png)

![スクリーンショット 2022-08-08 0.30.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/ed91ff18-17e6-6343-ae91-f7823ddd8ee5.png)

リスナー

8080ポートをターゲットグループEC2Co-Defau-LDIKBIHZNNACに転送。

![スクリーンショット 2022-08-08 0.27.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/7df78799-aab4-6fbb-c07a-35ae60bdafd9.png)

![スクリーンショット 2022-08-08 0.37.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/c9bef994-d81e-6ed3-eb2e-3d3a6a592fd7.png)


# 80番でのポート開放を追加する

## セキュリティグループにルール追加

![スクリーンショット 2022-08-08 0.49.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/8f82fe7f-2f20-b7a8-c689-b2d18d33e572.png)

![スクリーンショット 2022-08-08 0.50.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/cb988294-7952-c290-1171-e287841823ac.png)

## リスナーを追加

リスナーを追加して80番で受付け、ターゲットグループEC2Co-Defau-LDIKBIHZNNACに転送する。
![スクリーンショット 2022-08-08 0.45.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/1ec7ccaa-8f0c-9a06-e6f0-89eebec73c59.png)

![スクリーンショット 2022-08-08 0.51.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/77c7023c-5750-f7bd-c9a7-e3481cc99679.png)

## ブラウザでアクセスする

80番でもアクセスできるようになった。

![スクリーンショット 2022-08-08 0.52.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/faa09129-4e27-ee38-2666-849eeedd6a0f.png)

# 443番でのポート開放に変更する

## 構成

![スクリーンショット 2022-08-08 20.06.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/f6fa4534-7725-a5a1-56a4-a5f02b315bbb.png)


## セキュリティグループにルール編集

![スクリーンショット 2022-08-08 1.48.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/ef034964-f373-5915-947e-827704445487.png)

## リスナーを追加

証明書をインポートしておいて、HTTPSを使えるようにしておいてからリスナを追加します。

![スクリーンショット 2022-08-08 1.46.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/5e6d41a9-9475-6ee0-6911-b08b83ea8f15.png)

80と8080は削除しておきます。
![スクリーンショット 2022-08-08 1.50.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/3e56c901-8bd5-74eb-bcc2-8a3b78724a87.png)

## ブラウザでアクセスすると

オレオレ証明書なので警告がでますが「thisisunsafe」と打って先に進むとHTTPSでページが表示されます。

![スクリーンショット 2022-08-08 1.47.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/baacc358-9801-d4e6-4115-9e81bfb5be7a.png)