【初心者】AWS AutoScalingについて（ハンズオン①：起動テンプレートの作成）

#はじめに

**AWS AutoScaling**・・EC2を処理負荷に合わせて、増やしたり減らしたりすることができる便利なサービス
[公式サイト](https://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html)

このサービスを利用することで、**耐障害性・可用性・コスト効率**の向上を実現できます。

サービスを使用するときにはあらかじめ、**起動テンプレート**（何を）**オートスケーリンググループ**（どこで）**スケーリングポリシー**（どんな状態の時に）を設定します。


#具体例

スーパーでのレジ待ちを想像してみましょう。

![レジ画像(1人).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1079008/9d8b07fa-7e36-1eca-a4d3-e5da15db9273.png)


今は店員さん1人に対して、お客さん1人なので問題なく対応することができます。
しかししばらくすると...

![レジ画像(3人).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1079008/66fe45c4-77e4-3937-2e1c-40f4b9f93fdb.png)

お客さんの人数が3人になってしまい、1人では対応できなくなってしまいました。
そこで、店員さんは急いで他の仕事をしている店員さんをアラームで1番レジと2番レジに呼び出します。（これをルール①とします。）


<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1079008/3647957a-828a-6c80-9930-fb5e18da91bb.png" width="300" height=456px >　<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1079008/3647957a-828a-6c80-9930-fb5e18da91bb.png" width="300" height=456px >

これで店員さん1人に対して、お客さん1人なので問題なく対応することができます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1079008/9d8b07fa-7e36-1eca-a4d3-e5da15db9273.png" width="200" height=456px >　<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1079008/9d8b07fa-7e36-1eca-a4d3-e5da15db9273.png" width="200" height=456px >　<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1079008/9d8b07fa-7e36-1eca-a4d3-e5da15db9273.png" width="200" height=456px >　

そしてお客さんがいなくなってしまったら、追加で来てもらった店員さんには別の仕事に戻ってもらいます。（これをルール②とします。）



この状況をAutoScalingと紐づけると、

**起動テンプレート（何を）＝店員さん**
**オートスケーリンググループ（どこで）＝1番レジと2番レジ**
**オートスケーリングポリシー（どのような状態時に）=お客さんが2人以上並んだ時、お客さんがいなくなった時（ルール①、②）**

となります。


#ハンズオン①起動テンプレートの作成

今回は既に作成されている停止済のEC2から起動テンプレートを作成したいと思います。
※起動テンプレートと同じような意味で使用される**起動設定**というものがあります。起動設定はバージョン管理ができないため、管理ができる起動テンプレートの作成をお勧めします。

![1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1079008/2d2a78b6-4944-d140-9879-890e671da78e.png)
EC2サービスの「**インスタンス**」より、「**アクション**」「**イメージとテンプレート**」「**インスタンスからテンプレートを作成**」を選択します。

![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1079008/bc78867c-9bb9-78de-e1c7-265f2dbf6c25.png)
ソースインスタンスに選択したEC2のインスタンスIDが表示されていることを確認し、項目の設定をしていきます。
※今回インスタンスから作成したため、☆印がついてるものは既に項目が選択されています。誤りがないか確認しながら、設定をしていきます。


　**・起動テンプレート名**：任意のテンプレート名
　**・テンプレートバージョンの説明**：バージョンを管理する時に更新していく値。基本数字でバージョン管理をします。
　**・EC2AutoScalingで使用できるテンプレートをセットアップする際に役立つガイダンスを提供**：チェックを入れる

![3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1079008/cae9ab9a-e2e0-bde8-2088-bc1162c0f2ad.png)
　**・Amazon マシンイメージ (AMI)**：起動するAMIを選択（☆）
　**・インスタンスタイプ**：起動するインスタンスタイプを選択（☆）
　**・キーペア (ログイン)**：起動した際に使用するキーペアを選択（☆）


![4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1079008/d1b72e27-f981-ccea-4dca-4a2e24af316a.png)
　**・ネットワーキングプラットフォーム**：VPCを選択（☆）
　**・サブネット**：起動するサブネットを選択（☆）
　　**※注意※**インスタンスから作成した場合は、選択済になっているが、2つのAZにまたがって起動したい場合は、「**起動テンプレートに含めないでください**」を選択
　**・ファイアウォール (セキュリティグループ)**：起動した際に設定するセキュリティグループを選択（☆）
　**・ストレージ (ボリューム)**：起動した際に使用するボリュームを選択（☆）

![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1079008/4198ab73-286d-6a39-91c8-16522e60affc.png)
　**・リソースタグ**：新しく起動したインスタンスへのタグを選択（☆）
　　　　　　　　　新しく起動したインスタンスと分かるような名前をつけておくと、良い。
　**・セキュリティグループ**：起動した際に設定するセキュリティグループを選択（☆）
　**・パブリック IP の自動割り当て**：デフォルトでは無効化になっているが、ssh接続をする場合には有効化を選択（☆）

![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1079008/e4ce08a4-cbed-10c7-9fa8-25188945d79e.png)
　**・シャットダウン動作**：停止済インスタンスから作成した場合には、「停止済」となっているため、
　　　　　　　　　　　　「**起動テンプレートに含めないでください**」を選択する。
　**・停止 - 休止動作**：上記同様

![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1079008/fe5d7761-583b-1d68-9392-2b41da444f6a.png)
　最後に「起動テンプレートを作成」を選択します。

![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1079008/964a6b32-97e7-bf7b-cca3-4face16b043b.png)
「テンプレートの起動」より新しいテンプレートが作成されたことを確認できます。
　またこのテンプレートを更新したい場合は、「**アクション**」より「**テンプレートを変更（新しいバージョンを作成）**」より更新を行うことができます。


#最後に

次回の記事では、[ハンズオン②：オートスケーリンググループ](https://qiita.com/AWS11077/items/fff5c7ba16ce6d82d282)の作成を行いたいと思います。

この記事はAWS初学者を導く体系的な動画学習サービス「AWS CloudTech」の課題カリキュラムで作成しました。
https://aws-cloud-tech.com