【ネットワーク系】EC2インスタンス構築時のデフォルト設定の"理由"を考えてみる

いつも記事を読んでいただきありがとうございます！
モブエンジニア（[@mob-engineer](https://qiita.com/mob_engineer))です！

個人的に技術イベントレポート以外の記事を増やしていきたい＋ネットワーク系のアウトプットを増やしていきたいと思いましたので、今回はEC2インスタンス構築時のデフォルト設定の**理由**について深堀していきたいと思います。

## EC2インスタンス構築時のデフォルト設定とは

読者のなかで、**EC2インスタンスを立ち上げたことがない**という方は少ないかと思います。そのうえでEC2インスタンスを構築するときに**VPCがなんか勝手に新しく生えている**や**セキュリティグループが勝手に生えている**といった疑問が生まれるかもしれません。

そのうえで、デフォルトで生えてくるVPC設定やセキュリティグループが**なぜその設定値なのか**を少し深堀していきたいと思います。

## EC2構築時から見える疑問

demo-instanceとtest-demo2の2台を構築してみました。

- 設定値
    - demo-instance：t2.micro
    - test-demo2：t3.large

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/d19847c6-0cae-4635-815a-c9a1dbb0379b.png)

ステータスチェックの表記がdemo-instanceとtest-demo2で異なりますね。
個人的にこの違いは深堀ポイントだと思いました。

#### 深堀ポイント：ステータスチェックのチェック件数の違い

そのうえでインスタンス内のステータスチェックについてみてみたいと思います。

#### demo-instance

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/574e5263-e049-45d6-a754-bc282627da0f.png)

- チェック項目
    - システムステータスのチェック
    - インスタンスステータスのチェック

#### test-demo2

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/cd52c044-0c17-4448-ad6e-d6fd4f06fb49.png)

- チェック項目
    - システムステータスのチェック
    - インスタンスステータスのチェック
    - アタッチ済みの EBS ステータスチェック

違いとして**アタッチ済みの EBS ステータスチェック**の違いと理解できました。

ちなみに、各チェック項目の詳細についても気になったのでCloudWatchを見てみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/8af5a2f3-6baf-4a39-9b09-c26cb099b7e9.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/9ce71545-ef6a-4fda-800a-cab820c31bb1.png)

SystemStatus～から始まるメトリクスは**システムステータスのチェック**に関連し、**CPU~、Memory～などのOSに関するメトリクス**は**インスタンスステータスのチェック**に関連すると予想されます。

そのうえで、demo-instanceのメトリクスで**EBS~から始まるメトリクス**も存在するので、**なぜ、アタッチ済みの EBS ステータスチェックが存在しないのか**は気になりますね。

## VPCから見える疑問

demo-instanceの設定画面にあるVPCについても見てみたいと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/3c1847ac-46b2-49f8-a5a0-7547c6d5c1e0.png)

個人的に気になるのは、**IPv4アドレスが172.16.0.0/16**なのかが疑問に思いました。

#### 深堀ポイント：IPv4アドレスの範囲について

AWS公式ドキュメントには以下の通り示されていました。

https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html

>プライベート IPv4 アドレス (このトピックではプライベート IP アドレスとも呼ばれます) はインターネット経由ではアクセスできませんが、VPC 内のインスタンス間の通信に使用できます。インスタンスを VPC に起動すると、サブネットの IPv4 アドレス範囲からのプライマリプライベート IP アドレスが、インスタンスのプライマリネットワークインターフェイス (eth0 など) に割り当てられます。各インスタンスには、インスタンスのプライベート IP アドレスに解決されるプライベート (内部) DNS ホスト名も与えられます。ホスト名には、リソースベースと IP ベースの 2 種類があります。詳細については、「EC2インスタンスの命名」を参照してください。プライマリプライベート IP アドレスを指定しない場合は、サブネット範囲内で使用可能な IP アドレスが自動的に選択されます。ネットワークインターフェイスの詳細については、 「Amazon EC2 ユーザーガイド」の 「Elastic Network Interfaces」を参照してください。

理由については言及されていないですね。
しいて言えば、RFC1918（プライベート網のアドレス割当）をもとに決めていると説明されていますが、その場合、**192.168.0.0/16や10.0.0.0/8**も対象になるので、わざわざ**172.16.0.0/16**が選択された理由にはならないかと思います。

※他サービス予約済みアドレスも調査しつつ、検証は行っていく必要があると考えています

## セキュリティグループの疑問

最後にセキュリティグループについても見てみたいと思います。
インバウンドルール、アウトバウンドルールについてみてみたいと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/268ee73e-b8bb-4b71-8e1d-f3344e746510.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/38240427-e27b-48cc-94aa-b953990bbfff.png)

見てもらうとわかる通り、**EC2に対してSSH接続ができ、EC2からインターネット抜けできる状況**とわかるかと思います。

ただ、考えなくてはいけないのが**デフォルトでSSH接続用ポートが開いている理由**について疑問を持っています。

#### 深堀ポイント：SSH接続用ポートがデフォルトで空いている

一般的にSSH接続を行うことで**パスワードが平文で公開されない**(=暗号化されている)xため安全と言えるかもしれませんが、**今自分が利用しているPCがマルウェアに汚染されている場合、簡単にEC2インスタンスへ侵入することも可能です***

考えられるとしたら**EC2 Instance Connectを利用している**からといった理由も考えられるため、試してみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/5dccb8ae-ca9f-4799-a8d8-17e6c26f53a7.png)

結果として、**仮説通りだった**と言えました。

## まとめ

EC2ひとつとっても、**深堀すれば技術的に考えなくてはいけないこと**がたくさんあると理解できました。個人的には、**IPアドレスまわり、セキュリティグループ設定まわり**は1日以上話せるネタがたくさんあるかと思います。

最後にEC2インスタンス15周年ブログで締めたいと思います。

https://aws.amazon.com/jp/blogs/news/happy-15th-birthday-amazon-ec2-2/

## 参考サイト

https://aws.amazon.com/jp/blogs/news/diving-deep-into-ec2-spot-instance-cost-and-operational-practices/

https://pages.awscloud.com/rs/112-TZM-766/images/10-things-network.pdf

https://www.youtube.com/watch?v=JAzsGRS_o4c

https://www.youtube.com/watch?v=WCq_2-zkV44

https://www.youtube.com/watch?v=6_s_KuKkahY