基本構成
EC2で公開するアプリケーションは、本番用であればEIPでパブリックIPを固定する。
一方、開発環境では、パブリップIPにする必要は無く、EIPはお金がかかる。
なので、お金のかからないプライベートIPを使用し、AWS VPNでセキュリティを担保しつつ、ローカルからの通信をプライベートIPにルーティングする。
AWS VPNのルーティングについては、『AWS VPNの使いかた』を参照。
VPCとサブネット
VPCは「大きな区画」、サブネットはその中の「小さな区画」
VPC(大きな箱)
サブネット(小箱1)
サブネット(小箱2)
サブネット(小箱3)
サブネットにはNACL(ネットワークACL)という通信制限機能がある。
ただし、デフォルトで以下の設定となっており、基本的には使用しない。
ルール番号 範囲 許可/拒否
100 すべて ALLOW ←全許可
* すべて DENY ← デフォルト拒否
※ルール番号によって処理順が決められており、基本的には番号100ですべて許可で処理される。
SG(セキュリティグループ)
インバウンドルール
サーバー側の受け入れ設定、つまりはホワイトリストのようなもの。許可する通信の送信元IP範囲(CIDR)を指定する。
デフォルトではすべて拒否。アプリケーションをサーバーにデプロイした際には設定は必須。
アウトバウンドルール
サーバーから送信を許可する先。デフォルトでは「すべて許可(0.0.0.0/0、全ポート)」
インバウンドルールによって許可された通信に対するレスポンスはこのルールとは無関係(SGの通信はステートフルで状態を持たない)。
Appendix
プライベートIP
以下の範囲のIPを指す。
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
世界中のインターネットルーターには、「プライベートIPアドレス宛のパケットは、インターネットに流さない(破棄する)」というルールが組み込まれている。
また、プライベートIPは世界中で重複しているので、ルーティング自体が不可能です。
しかし、VPCへのルーティングが突破された場合に無防備になる点を覚えておく。

コメント