【AWS】EC2 AMI/ALB/Auto Scalingの備忘録


## AMI (Amazon Machine Image) 作成方法
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html

1. Amazon EC2 コンソールを開き、AMIを作成したいインスタンスを選択する
1. 右上の[アクション]、[イメージとテンプレート]、[イメージの作成]の順に選択する
1. イメージ名を入力して、イメージを作成を押す
![AMI_1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483556/9ef077b3-21bb-479f-24f9-ea6a19b7bfe1.png)
![AMI_2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483556/e6747042-8461-fdd9-6afb-47ac8ad048d5.png)

:::note warn
特定のインスタンスに使用できるAMIは、リージョン、OS、CPUアーキテクチャにより異なるため、互換性のあるAMIしかインスタンス起動時に割り当てられない点に注意。
:::

## ALB (Application Load Balancer) 作成方法

https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/create-application-load-balancer.html

### 1. ターゲットグループの設定
1. EC2 起動テンプレートのコンソール画面を開く
1. 「ロードバランシング」->「ターゲットグループ」を押す
1. 「ターゲットグループの作成」を押す
1. グループの詳細の指定する
     - ターゲットタイプの選択 : インスタンス
     - ターゲットグループ名 : MyTagrgetGroup
     - ポートとプロトコル : HTTPS 443
     - VPC : 含めるターゲットがある Virtual Private Cloud (VPC) 
1. ターゲットの登録する
1. ターゲットグループの作成を押す

### 2. ロードバランサーとリスナーの設定
1. 「ロードバランシング」->「ロードバランサー」を押す
1. ロードバランサーの作成を押す
1. Application Load Balancer を作成を押す
1. 諸々設定を入力する
     - ロードバランサー名 : MyLoadBalancer
     - スキーム : インターネット向け
     - IP アドレスタイプ : IPv4
     - VPC
     - マッピング
     - セキュリティグループ
     - リスナーとルーティング
     - セキュリティポリシー
     - デフォルトの SSL/TLS 証明書
1. ロードバランサーの作成を押す
 
### 3. ロードバランサーのテスト
1. 「ロードバランシング」->「ロードバランサー」を押す
1. DNS名をコピーして、ウェブブラウザのアドレスフィールドに貼り付け、アクセスする

## Auto Scaling 作成方法

主な流れは、以下のよう
1. EC2の起動テンプレート(AMI,ハードウェア,ネットワーク,セキュリティ)を設定
1. Auto Scaling グループ(ロードバランス,グループサイズスケーリングポリシー)を設定
作成された段階でスケーリングルールが実行される

### 1. 起動テンプレートを作成する
1. EC2 起動テンプレートのコンソール画面を開く
    https://ap-northeast-1.console.aws.amazon.com/ec2/home?region=ap-northeast-1#LaunchTemplates
1. [起動テンプレートを作成]を押す
1. [起動テンプレート名]を入力する
1. [Auto Scaling ガイダンス]で、チェック ボックスをオンにする
    ![autoscaling_1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483556/696039ee-bd1e-04fe-0369-e046db70ee47.png)
1. [アプリケーションおよび OS イメージ (Amazon マシンイメージ) ]でAMIを選ぶ
1. [インスタンス タイプ]で、指定した AMI と互換性のあるハードウェア構成を選ぶ
1. SSH で Amazon EC2 インスタンスに接続するために、 [キー ペア (ログイン)]で、キーペアを選ぶ
1. [ネットワーク設定]、[セキュリティ グループ]で、Auto Scaling グループの VPC と同じ VPC 内のセキュリティ グループを選ぶ
1. [高度な詳細]で、EC2に適用したいIAMロールやその他の設定を選択する
1. 起動テンプレートを作成を押す

### 2. Auto Scaling グループを作成する
1. Auto Scaling グループコンソール画面を開く
    https://ap-northeast-1.console.aws.amazon.com/ec2/home?region=ap-northeast-1#AutoScalingGroups
1. [Auto Scaling グループを作成する]を押す
1. [Auto Scaling グループ名]を入力する
    ![autoscaling_4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483556/ca9b2fed-963d-1764-3b64-fe6660f95f5b.png)
1. [起動テンプレート]と[バージョン]を選ぶ
1. [次へ]を押す
1. [ネットワーク]でVPCとアベイラビリティーゾーンとサブネットを選ぶ
1. [次へ]を押す
1. [ロードバランシング]で既存のロードバランサーにアタッチするを選ぶ
    もしくは、
    [ロードバランシング]で新しいロードバランサーにアタッチするを選ぶ
    ・ロードバランサーのタイプ : Application Load Balancer
    ・ロードバランサーのスキーム : Internet-facing
    ・アベイラビリティーゾーンとサブネット : 必要数選択
    ・リスナーとルーティング : デフォルトルーティングを選択
    ![autoscaling_5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483556/039622d9-84bf-3c9a-1457-edc95d147424.png)
1. [次へ]を押す
1. [グループサイズ]を決める
    ![autoscaling_6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483556/b534f607-ab4a-486f-e92a-6266bf93d61f.png)
1. [スケーリングポリシー]でターゲット追跡スケーリングポリシーを選ぶ
    メトリクスタイプ : 平均CPU使用率
    ターゲット値 : 80
    インスタンスのウォームアップ : 300
    ![autoscaling_3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483556/4f14fd5d-4816-497f-ba2e-120c81141499.png)
1. [次へ]を押す
1. [次へ]を押す
1. [Auto Scaling グループの作成]を押す

### 3. Auto Scaling グループを確認する
1. Auto Scaling グループのコンソール画面を開く
1. Auto Scaling グループの名前を押す
1. [アクティビティ]で履歴を確認し、正常に動作したか確認する
    ![autoscaling_7.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483556/c360b03f-d974-eda1-c0f4-53f404278148.png)
1. [オートスケーリング]で動的スケーリングポリシーの詳細を確認する
    ![autoscaling_9.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483556/3c1805e7-50d4-4805-8714-c4b369a83c6c.png)
1. [インスタンス]でインスタンスのステータスを確認する
    ![autoscaling_8.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483556/893b6cfb-241b-67c5-c578-8c400965626e.png)

### 4. 作成されたEC2の中身を確認する
1. 下記コマンドでサーバーに入り、確認する
    ```
    ssh -i "mykeypair.pem" ec2-user@ec2-12-345-67-890.ap-northeast-1.compute.amazonaws.com
    ```

### 5. Auto Scalingを削除する
1. Auto Scalingコンソール画面で、対象のグループを選択し、アクション -> 削除を選択する

## 参考文献

https://aws.amazon.com/jp/ec2/autoscaling/