【備忘録】AWS Workshops 「AWS 101 Workshop」をやってみて

## 背景
　近々AWS認定をコンプリート(12冠)するのですが、あまりハンズオンを実施したことがなかったため、AWS Workshopsを使いつつ、危機感を持ってハンズオンを行ないます。

　この【備忘録】では、AWS Workshopsを通して私が何を学んできたか、何に困ったか、実際に触ってみて何に感動したかなどを、なるべく実務で使うのではないかってところに絞りつつ、記述していこうと思います。

　この【備忘録】シリーズが皆様に(特に未来の私に)役立つことを祈ります。

## AWS 101 Workshopとは
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669759/c291307b-a0ea-413c-957b-897fee8382db.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669759/a4327536-d564-468b-b652-286f999aedd4.png)

(引用元: https://catalog.workshops.aws/aws101/en-US)
　AWS Workshopsで紹介されている初心者向けコースです。
　VPCの作成、ルートテーブル等の設定、EC2やS3を用いてWEBサーバーの構築をシンプルな設計で学ぶことができます。

## VPCの設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669759/8fd1e93e-9575-4670-98a0-9e40328f6fcf.png)
　資格勉強での座学や、AWS SimuLearnなどの学習コンテンツではすでにVPCが用意されており、自分で作ったことがなかったVPC。複雑な設定が必要かと思っていたけれども、AZの設定や、パブリック/プライベートサブネットの個数設定などがとてもシンプルで分かりやすくカテゴリ分けされている。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669759/76a52436-e138-4be3-9fea-b57d44f67f60.png)
　また、Workshopsでも説明があったが、料金が発生する設定には($)がつけられている。（ありがたい）

## EC2/IAMロールの設定　
### 改めて知ったSystems Managerの重要性
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669759/046e3ad7-6feb-4010-a614-fe807c7ed53b.png)
　WEBサーバーに用いるEC2はプライベートサブネットに設置するため、アクセス時にはパブリックなインターネットからはアクセスできない。そのため、AWS SystemsManagerにEC2ロールを付与し、安全に管理できるようにする。

### タグや名前設定はわかりやすくしよう
![スクリーンショット 2025-02-16 110217.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669759/5a6ddfde-98bd-4c18-8af2-63ecacdf0fce.png)
　インターネットからのイン/アウトバウンドを設定するセキュリティグループ、ロードバランサーからのイン/アウトバウンドを設定するセキュリティグループには、それぞれに適した名前を付けましょう。
(当たり前ですが適当に名前を付けてしまうと、セキュリティやネットワークの設定で苦労します)

## AutoScalingの設定ができない...？
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669759/54922f3e-0a8d-4d81-89ba-6cf643e6c497.png)
　Workshopのチャレンジに、「Auto Scalingの設定」という課題が与えられていました。
 しかし、起動テンプレート、Auto Scalingグループを作成まではできたのですが、インスタンスにアタッチすることができませんでした。
　起動テンプレートやAuto Scalingグループの作成で何か設定を間違えたかなと思い、作り直してみましたが結果は変わらず、Workshopの手順書をじっくり見返しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669759/2fda06d6-f0e6-4b32-9061-3e16c367ed94.png)
(引用：https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-launch-template-permissions.html)
 最終的にたどり着いたのがAWSの文書で、ポリシーに関する説明がされているものでした。IAMのロール欄を見ると、AutoScalingのためのロールが存在せず、それが原因となってインスタンスへの関与ができなくなったと考え、サービスロールを作成しました。

・サービスロールを作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669759/e0c8570e-4730-4a8f-a802-2b875931c683.png)

・Auto Scalingグループ/インスタンスを見に行くと...
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669759/f07076f9-1219-413e-adad-ff380a911168.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669759/e8228d12-020d-4675-bdf8-247b43cf2494.png)
Auto Scalingグループにインスタンスが入っていました！

 個人的には「アタッチしました」という文言が出てくれれば、達成率があってとてもよかったのですが、グループ内でデタッチを繰り返しても、次から次へと新しいインスタンスが出現し、インスタンスからのアタッチができなかったので諦めました...。

　「アタッチに失敗したIDと同様のインスタンスをグループに入れなければならないのでは」と考えていたのですが、新たにグループに出現したインスタンスのリージョン、AZの場所や、インスタンスタイプに違いがなかったのでサーバー用インスタンスとしては問題ないと判断し、「AWS 101 Workshop」を完了と判断しました。

### 片づけを完了させるまでがハンズオン
 「よし！ハンズオンできたー！！」でパソコンを閉じてしまえば、NATゲートウェイや実行中のインスタンスにどんどん料金を搾り取られてしまいます。

 パソコンやコンソールを閉じるのは、VPCの削除やEC2の停止など、後片付けを終わらせてからにしましょう。


## まとめ
①セキュリティグループやサービスの名前は誰が見てもわかりやすく設定しよう！
②サービス間での連携ができなかった場合、IAM(ロール/ポリシー)を確認しよう！
③後片付け(サービスの削除/停止)は忘れずにしよう！