Amazon VPC学習メモ
Amazon VPCとは?
AWS上でネットワークを構成するサービス。
VPCの基本的な組み方
1. 全体的なネットワーク空間を定義する
VPCを作成し、AWSのリソースが稼働するためのネットワーク空間を定義
- VPCの作成
将来的なリソース拡張を考慮して、IPアドレス範囲は大きめに作成する。
RFC 1918に指定されているプライベート IPv4 アドレス範囲推奨
最初のアドレスブロック作成後は変更できないので注意。(2個以降は追加・削除できる)
CIRD推奨は/16 (16bit ~ 28bit)
2. サブネットを定義する
ネットワーク空間をより細かく分解する
サブネットの中でEC2等が稼働する環境にする。
サブネットを使用できる範囲も16bit ~ 28bit
- アベイラビリティゾーン
各リージョンに複数のAZが存在する。
AZは物理的なデータセンター。
このデータセンターを1つ選ぶ。
冗長を考える場合は複数のデータセンター(AZ)を利用した方がいい。
- サブネットに対してAZとアドレスを選択
各AZごとに最低ひとつのサブネットを用意する。
サブネットは/24推奨。
サブネットで利用できないIPアドレスがある。
3. インターネットへの接続経路設定
-
ルートテーブル
ルートテーブルはパケットがどこに向かえばいいのかを示すもの。
VPC作成時にデフォルトで1つルートテーブル作成される。
デフォルトではVPC内通信のみ許可されている。
カスタムルートテーブルを作成し、インターネットへのルートを設定する。 -
インターネットゲートウェイ作成
インターネットゲートウェイを作成して、VPCにアタッチする。
VPCとインターネット間の通信が可能になる。
4. VPCへのトラフィック管理
VPCの仮想ファイアウォールとして機能ものが大きく2つある。
- セキュリティグループ
ステートフルなファイアーウォール
EC2やRDS等のインスタンス対して設定する。
デフォルトでは同じセキュリティグループ内の通信のみ許可。
初期設定に必要なポートを許可する(SSHやHTTP,HTTPSなど)
- ネットワークACL
ステートレスなファイアーウォール
サブネット単位で適用される
デフォルトでVPCに設定されるACLはすべてのIn・Outトラフィックを許可。
- VPCセキュリティコントロール
- セキュリティグループとネットワーク ACL の比較
ネットワークACL(サブネット)で外部通信を拒否していれば、
セキュリティグループで許可していても通信できない。
NATゲートウェイの設置
プライベートサブネット上に設置したサーバをインターネット接続可能にする
- Public-subnet-c に NAT Gateway を設置
- Private Route Table編集
- Private-subnet-c に internalサーバを設置
InternalサーバからNAT Gatewayを経由してインターネット接続ができるようにする
- Public-subnet-c に NAT Gateway を設置
サブネット選択(Private-subnet-c)
Elastic IP割り当て
- Private Route Table編集
設定確認
- Private-subnet-c に internalサーバを設置
VPCとサブネットを選択する
Webに公開しないので「自動割り当てパブリックIP」は設定しない
IAMロール
これでinternalサーバは外部への接続可能になる。
NATゲートウェイ動作確認
-
NATゲートウェイを介してSSMに接続可能であることを確認