#VPCとは
・Virtual Private Cloudの略で、AWSアカウントを作成するとデフォルトで作成される。
・ネットワーク的に分離された領域。インターネットGWをアタッチしないと外と通信もできない。
・FWはセキュリティグループと呼ばれるもので制御する。
・VPCの中にサブネットを作成し、セグメント単位での管理が可能
・ルートテーブルでルーティング制御ができる
#シングル?マルチ?
一つのアカウントで2つ以上のVPCを作ったり、複数アカウントで複数のVPCを作るというケースもあります。
まず、シングルのVPCの場合、全ての環境が一つの空間に作られます。
マルチでVPCを作成する場合は、本番環境、ステージング環境でVPCを分けるパターンがあります。
VPCの設計はアカウント設計に関連します。
例えば、アカウントをシステムごとに分ける、であれば
Aシステムのアカウントに、本番/ステージング/開発でVPCを分けるケースが考えられます。
他にも、アカウントを環境ごとに変える、であれば
本番環境のアカウントには、AシステムのVPC、BシステムのVPCという分け方も考えられます。
#VPCを分けることのメリデメ
一番大きいのは、リスクを分断できるという点です。
後述しますが、一つのVPCに本番や検証環境が混在していると、誤操作のリスクもありますし
何かしらの攻撃で侵入を許した場合、同一VPCは影響を受けてしまいます。
なので、セキュリティの面からも環境毎にネットワークを分離することをオススメします。
逆にデメリットですが、VPCが増えすぎると管理がしづらいというのがあります。
VPCピアリングの設定が複雑になってきます。
ですが今はTransitGatewayというものがあるので、そちらを活用すればそのデメリットは軽減されます。
#VPCの設計注意点
##IPアドレスの範囲に気をつける
VPCを作成する際に使用するIPの範囲は一般的には以下を指定します。
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
気をつけないといけないのは、VPCピアリングなど別のVPCと繋ぐ場合にIPアドレスの範囲が重複していると対応できません。
よくある構成として、環境毎、あるいはシステム・環境毎にアカウント、VPCを分ける場合
以下が参考になりましたので、リンクを貼っておきます。
AWS導入前に知っておきたかった「VPC設計」
##VPCピアリングの特徴
異なるVCP同士を繋げるVPCピアリングという方法があります。
これは以下の注意点があります。
・IPアドレスの重複がないこと
・同じリージョンであること
・二つ先のVPCには直接通信ができない。
→VPCがA,B,Cとあった場合でVPCピアリングをAとB、BとCとしている場合、
AとCは直接通信ができない、という制約があります。
なので、社内でVPCが増えていくようなアカウント・VPC設計をしているのであれば
VPCピアリングを使用するよりも、TransitGatewayで集約した方がいいです。
##これだけは最低限考慮する
昔は1アカウント1VPCなんていう考えもあったのかもしれませんが、以下の観点では最低限分けた方がいいです。
・環境(本番、ステージング、開発)でVPCを分ける
→いったん攻撃を受けてしまったら、同一VPCは影響を受ける可能性が非常に高い
・レイヤー(WEB、DB、フロント(LB))はサブネットで分ける
→インターネットとの接続点は明確に最小限に分けておく
#最後に
AWS案件に携わってまだ1ヶ月のレベルなので、指摘や意見などあればどんどんコメントいただけるとありがたいです。