AWSでAuto Scaling Groupの作成

# オートスケーリンググループ

このチュートリアルでは、以下の要件を持つアプリケーションのケースをシミュレートします。アーキテクチャを導入するために、お客様やプロジェクトマネージャーに同様の質問をすることができます。


**質問１：強いトラフィックがある場合、アプリケーションが正常に動作するために必要なインスタンス数はいくつですか？つまり、最小限で何台必要ですか？**

このチュートリアルでは、アプリケーションは常に最低でも2つの実行中のインスタンスを持っている必要があります。

**質問２：AWSのインスタンスにはコストがかかり、無料ではありません。したがって、そのアプリケーションにデプロイできる最大のインスタンス数はいくつですか？**

このチュートリアルでは、アプリケーションは最大で5つの実行中のインスタンスを持っている必要があります。

**質問３：トラフィックが通常の場合、アプリケーションが良好な状態で動作するための理想的なインスタンス数は何ですか？**

このチュートリアルでは、すべてが順調な場合、アプリケーションはできれば3つの実行中のインスタンスを持っている必要があります。

**質問４：追加のインスタンスをデプロイするか、逆に不要なインスタンスを削除するための基準は何ですか？**

このチュートリアルでは、CPU使用率が40%を超えると、追加のインスタンスがデプロイされる条件です。

# チュートリアルの目的

次のアーキテクチャをどのように構築するかを見ていきます。

![00e.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/0fd7ecfc-a434-a675-d74d-32d1e189e1be.png)


:::note warn
このチュートリアルでは、**Application Load Balancer**は使用しないことにします。なぜなら、**Auto Scaling Group**の作成に焦点を当てるからです。次回のチュートリアルでは、**Auto Scaling Group**と**Load Balancer**を一緒に設定する方法について説明します。
:::

## セキュリティグループの作成

「**EC2 ダッシュボード**」にアクセスしてください。「**セキュリティグループ**」をクリックしてください。

![Screenshot 2024-01-06 at 3.46.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/c0ee123d-b015-58a5-5c5c-50328bfdcc27.png)

「**セキュリティグループを作成**」をクリックしてください。

![Screenshot 2024-01-06 at 3.54.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/63e5be7e-626d-ecaa-a046-0bf2f652e09a.png)

「**MyInstanceSecurityGroup**」というセキュリティグループに名前を付けてください。

![Screenshot 2024-01-06 at 3.58.29 copy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/850965cb-e634-2f17-e765-b3c029ecebd3.png)

「**インバウンドルール**」セクションに移動してください。

![Screenshot 2024-01-06 at 3.58.29 copy 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/fedebb5d-27a5-4dea-878d-27511f55d3e0.png)

「**ルールを追加**」ボタンをクリックしてください。

![Screenshot 2024-01-06 at 3.58.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/6e03ec44-008a-8d04-5ffd-8a68b8451013.png)

選択肢として、「**SSH**」を選び、ソースとして「**Anywhere-IPv4**」を選択してください。
「**Anywhere-IPv4**」は「**0.0.0.0/0**」と同じです。

![Screenshot 2024-01-06 at 4.06.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/2afb1a44-b785-0e0d-d770-ca01a0d4558f.png)

「**セキュリティグループを作成**」をクリックしてください。

![Screenshot 2024-01-06 at 4.13.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/b912cb24-29c7-aa63-f048-8bbd56910765.png)


## 起動テンプレートの作成

「**EC2 ダッシュボード**」にアクセスしてください。「**起動テンプレート**」をクリックしてください。

![Screenshot 2024-01-06 at 0.22.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/d6c34b76-1cc0-ed52-4aa9-17f6cc7bc35e.png)

「**起動テンプレートを作成**」をクリックしてください。

![Screenshot 2024-01-06 at 0.25.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/fed1f637-0804-2676-0353-b05628a386a7.png)

「**MyEC2Templace**」という起動テンプレートに名前を付けてください。

![Screenshot 2024-01-06 at 0.31.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/e504ada3-7a8e-7896-99f0-66fefd746ed7.png)

「**Application and OS Images (Amazon Machine Image)**」セクションに移動してください。

![Screenshot 2024-01-06 at 0.34.28 copy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/5a27731d-922d-0872-69f4-96b4c02bf866.png)

「**Amazon Linux**」を選んでください。

![Screenshot 2024-01-06 at 0.34.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/c1c79da7-c47d-97c6-8452-07c7b9be9401.png)

**Amazon Linux**を使用していることを確認ください。

![Screenshot 2024-01-06 at 0.35.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/99f45ec8-83b0-6375-7875-89c8e40d2492.png)

また、**t2.micro**を使用していることを確認してください。

![Screenshot 2024-01-06 at 0.47.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/d49102f5-45b5-5506-95e5-486498de96c5.png)


このチュートリアルでは、キーペアが要らないので使用しません。

「**キーペアなしで続行 (推奨されません)**」を選択してください。

![Screenshot 2024-01-06 at 0.50.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/e34ab44f-d1b2-e990-18b3-e429b3d576fc.png)

「**ネットワーク設定**」セクションに移動してください。

![Screenshot 2024-01-06 at 4.18.27 copy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/b834f526-fd1c-628c-5521-998a0fa3b06c.png)

「**セキュリティグループを編集**」にクリックしてください。

![Screenshot 2024-01-06 at 4.18.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/83e07663-8d7c-ca98-7d74-8ee622207851.png)

「**MyInstanceSecurityGroup**」を選択してください。

![Screenshot 2024-01-06 at 4.22.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/173becf7-abe0-db8b-bcff-3a55794eb138.png)

セキュリティグループを確認ください。

![Screenshot 2024-01-06 at 4.23.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/0a700549-ed0a-dd82-f7a9-ab2eb0e31622.png)

「高度な詳細」セクションのユーザーデータに次のコマンドを実行してください。

```bash
#!/bin/bash
yum update -y
sudo yum install stress -y
```

「**起動テンプレートを作成**」をクリックしてください。

![Screenshot 2024-01-06 at 4.52.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/3af6cf73-ae15-af7d-e0d2-ecd96e8100f3.png)


## Auto Scaling グループの作成

「**EC2 ダッシュボード**」にアクセスしてください。「**Auto Scaling グループ**」をクリックしてください。

![Screenshot 2024-01-06 at 4.58.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/d5be0f5f-86ee-8a08-cf05-f775f59e87ed.png)

「**Auto Scaling グループを作成する**」をクリックしてください。

![Screenshot 2024-01-06 at 5.01.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/ac9f7ecf-c234-9659-c59b-40aa060da7a5.png)

「**MyAutoScaling**」というAuto Scaling グループに名前を付けてください。

![Screenshot 2024-01-06 at 5.30.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/d8e61076-1e39-d740-946d-40d0e241d384.png)

「**MyEC2Templace**」を選んでください。

![Screenshot 2024-01-06 at 5.34.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/11aa64a2-1483-9bab-7a37-7e558124c32c.png)

「**次へ**」ボタンをクリックしてください。

![Screenshot 2024-01-06 at 5.38.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/3a06ae1b-7f22-16db-02c6-bd9b3e85636e.png)

「**次へ**」ボタンをクリックしてください。

![Screenshot 2024-01-06 at 5.43.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/3245a5a1-6634-53d5-a7db-8682a5881623.png)

「**次へ**」ボタンをクリックしてください。

![Screenshot 2024-01-06 at 5.46.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/c0ab4b23-04fd-1d19-483a-61da413ac5d6.png)

希望を設定ください。

希望するキャパシティ：３
最小の希望する容量：２
最大の希望する容量：５

![Screenshot 2024-01-06 at 5.52.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/8c66081a-2a8c-6241-0cf0-37c9132112bc.png)

「**次へ**」ボタンをクリックしてください。

![Screenshot 2024-01-06 at 5.56.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/67c20a40-575b-f7b1-61f5-d2ecfd1ee1f6.png)

「**次へ**」ボタンをクリックしてください。

![Screenshot 2024-01-06 at 5.58.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/67b05f7b-518b-0283-f668-387059b0c9de.png)

「**次へ**」ボタンをクリックしてください。

![Screenshot 2024-01-06 at 6.02.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/d74d0cb3-7c4b-b609-61d5-97f80ee2b044.png)

「**Auto Scaling グループを作成する**」をクリックしてください。

![Screenshot 2024-01-06 at 6.08.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/733c9437-ce74-66f6-a042-f92fad8c7003.png)

この画面が表示されます。

![Screenshot 2024-01-06 at 6.08.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/44f5de2d-138d-d2e8-d1fb-f3a967b7a05e.png)

数分後にステータスが変わるはずです。遅かたら、時々ページを更新してください。

![Screenshot 2024-01-06 at 6.17.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/8a9b954f-8ce7-bafe-d12b-1b9101c8387c.png)

その間に新しいタブを開き、インスタンス一覧ページにアクセスしてください。そこでEC2の3つのインスタンスが表示されるはずです。

![Screenshot 2024-01-06 at 6.17.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/bcfd942d-d6d3-50ab-4e8f-eeaeba7976a1.png)

変更してください、それぞれのEC2インスタンスの名前を「**MyInstance 1**」、「**MyInstance 2**」、および「**MyInstance 3**」にします。

![Screenshot 2024-01-06 at 6.25.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/5ea61b5a-c1c6-0206-9df7-283a8b318715.png)

## Check

現在、Auto Scaling Groupが正しく機能しているか確認しましょう。

Auto Scaling Groupを最低でも2つの実行中のインスタンスがあるように設定しました。可能であれば3つです。

したがって、テストのために、AWSが新しいEC2インスタンスを自動的にデプロイするかどうかを確認するために、意図的に2つのインスタンスを削除します。

そのため、ランダムに2つのインスタンスを選択してください。

![Screenshot 2024-01-06 at 6.34.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/68274a0e-2339-147a-1917-49012f4930db.png)

「**インスタンスの状態**」ボタンをクリックしてください。

![Screenshot 2024-01-06 at 6.34.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/9c3b6b47-64e5-393c-fa1c-8f8d877f58c5.png)

「**インスタンスを終了**」をクリックしてください。

![Screenshot 2024-01-06 at 6.39.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/e5fa53d3-15bc-8436-6cc4-02cea5b3b729.png)

「**終了**」をクリックしてください。

![Screenshot 2024-01-06 at 6.39.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/1b47fd47-d946-f2a8-308a-babaafb757cb.png)

選択した2つのEC2インスタンスは、その後シャットダウンするはずです。

![Screenshot 2024-01-06 at 6.39.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/a73efc72-1137-007f-df22-41689fe71359.png)

もし少し待っていただければ、AWSは自動で新しい2つのEC2インスタンスをデプロイするのが見えるはずです。

Auto Scaling グループは正常に機能しています。おめでとうございます！

![Screenshot 2024-01-06 at 6.46.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/4dc8b6fb-2272-96d6-d847-b15dd3998fe1.png)

「**OLD**」として消灯しているインスタンスの名前を変更して、誤りがないようにします。

![Screenshot 2024-01-06 at 6.55.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/84e39ea4-bf1b-042f-f6de-5267b67997e8.png)

実行中の3つのインスタンスを、「**MyInstance 1**」、「**MyInstance 2**」、および「**MyInstance 3**」と命名してください。

![Screenshot 2024-01-06 at 6.58.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/14bcab00-0aca-eb06-a84e-f40ca5de98d1.png)


## 自動スケーリングの条件設定（動的スケーリングポリシー）

目的：EC2インスタンスのCPU使用率が40％以上の場合、AWSは自動的に新しいインスタンスをプロビジョニングするようにしたいと考えています。

「**Auto Scaling グループ**」をクリックしてください。

![Screenshot 2024-01-06 at 7.04.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/214afe31-00f8-6ffe-1995-7d5bdf82cef7.png)

「**MyAutoScaling**」をクリックしてください。

![Screenshot 2024-01-06 at 7.08.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/73e62bbf-1539-c76d-c570-b099bcc2c144.png)

「**オートスケーリング**」をクリックしてください。

![Screenshot 2024-01-06 at 7.10.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/2ff2a6e4-57d8-4e71-0094-ee0a9e31298c.png)

「**動的スケーリングポリシーを作成する**」をクリックしてください。

![Screenshot 2024-01-06 at 7.15.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/4d5b3355-6fcc-b6af-fe4d-2a96bfa5cb3c.png)

「**ターゲット値**」に40入れてください。

![Screenshot 2024-01-06 at 7.20.57 copy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/ecdb9791-5894-c415-d734-3bcb79b4eeb5.png)

「**作成**」をクリックしてください。

![Screenshot 2024-01-06 at 7.20.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/0699fec8-3d92-1f09-1bd5-267ccdbcd0ae.png)

新しいポリシーは作成されました。

**CloudWatch**の画面に移動すると、アラームが作成されていることに気付くでしょう。

![Screenshot 2024-01-06 at 7.28.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/4dba8a69-7543-2884-4bf3-17f360c75659.png)

![Screenshot 2024-01-06 at 7.28.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/52c7502a-334c-da5b-076f-f42ee4d03e98.png)

:::note info
AWSは1つのインスタンスをオフにして、2つだけを残しました。インスタンスはCPUの使用率が40％未満です。したがって、3つのインスタンスを持つ必要はありません。
:::

## ストレステスト

Auto Scaling Groupが、インスタンスのCPU使用率が40%を超える場合に正しく機能しているかどうかを確認しましょう。

2つのインスタンスに接続し、次のコマンドを実行してください。

```bash
stress -c 4
```

約5〜10分待つと、AWSが追加のEC2インスタンスをプロビジョニングしているのに気づくでしょう。

![Screenshot 2024-01-06 at 7.56.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/329802b7-181c-ec93-a938-6db460e3909b.png)