VPC、仮想ネットワークの学習まとめ①
VPC(Virtual Private Cloud)
AWS上で作成するユーザごとの仮想的なネットワーク空間のこと。
サブネット
VPCで確保したネットワーク空間をさらに分割してセキュリティを高めようとする考え方。
- パブリックサブネット
- インターネット接続可
- Webサーバやロードバランサーなどの外部からアクセスが必要なリソースを配置
- プライベートサブネット
- インターネット接続不可
- NATゲートウェイを経由することでVPC外部との接続が可能
- DBサーバやAPサーバなどの内部リソースを配置し、セキュリティを確保する
ルートテーブル
VPC内部から生じる通信に対して、接続先のルーティング設定を行う機能。
VPC作成時にデフォルトで1つ作成され、適用したいサブネットに対してルートテーブルを明示的に関連付けする必要がある。
インターネットゲートウェイ
VPC内部のリソースを外部のネットワークへ接続するためのサービス。
NATゲートウェイ
プライベートネットワーク内のリソースがインターネットへのアウトバウンド通信を行う際に、プライベートIPアドレスをパブリックIPアドレスに変換するためのサービス。
EIP(Elastic IP Address)
静的なパブリックIPアドレスを、EC2インスタンスや他のAWSリソースに設定するサービス。
通常パブリックIPアドレスはインスタンスを再起動で別アドレスに変化するが、EIPはインスタンスに常に固定のパブリックIPアドレスを割り当てることができる。
料金について、EIPを紐付けたインスタンスが稼働中であれば無料、停止中の場合には課金される仕様でしたが、2024年2月1日よりアタッチの有無に関わらず課金されるとのこと。
パブリックIPアドレス、プライベートIPアドレスとの違い
-
パブリックIPアドレス
- インターネット上からアクセス可能なIPアドレス
- インスタンス作成時にランダムで割り当てられ、IPアドレスの指定ができない
- インスタンスを再起動すると別のIPアドレスに書き換わる
-
プライベートIPアドレス
- インターネットからアクセス不可なIPアドレス
- インスタンス作成時に割り当てられ、IPアドレスを指定することができる
- 再起動しても同じIPアドレスが割り当てられる
ENI(Elastic Network Interface)
VPC上での仮想ネットワークインターフェースで、物理的なNIC(Network Interface Card)のようなもの。インスタンス作成時にデフォルトで設定されており、複数アタッチすることで同一サーバに複数のIPアドレスを割り当てることが可能。
セキュリティ
VPC内でのネットワークトラフィックを管理し、セキュリティを確保する方式として主要な2タイプがある。
ネットワークACL
- サブネット単位で適用される
- サブネットごとに1つのACLが適用可能
- デフォルト設定値 インバウンド:すべて許可/アウトバウンド:すべて許可
- 許可、拒否ルールを設定する
- 各ルールに番号を割り当て、番号の低い順に適用される
- ステートレス(戻りの通信許可設定が必要)
セキュリティグループ
- インスタンス単位で適用される
- 複数のSGが適用可能
- デフォルト設定値 インバウンド:すべて拒否/アウトバウンド:すべて許可
- 許可ルールのみを記載する
- 設定したルールは全て適用される
- ステートフル(許可されたルールの場合、戻りの通信も自動的に許可される)な制御が可能
外部ネットワーク接続
VPCピアリング
異なるVPC間のプライベートネットワーク接続を確立するサービスで、セキュアな通信が可能。
これにより、異なるVPC内のリソースがインターネットを経由せずにデータ連携が可能となる。
VPCエンドポイント
インターネットを経由せずに、AWSのパブリックサービスとセキュアな通信を行う。
主要なタイプとしてインタフェース型とゲートウェイ型が存在する。
ゲートウェイ型
- ルートテーブルに対象のエントリを追加することでサービスにアクセスする
- AWSサービスはAmazonS3、DynamoDBのみ利用可能
- 料金は無料
インタフェース型
- ENIをPrivateLinkという仕組みを用いてサービスのエンドポイントにアクセスする
- 様々なサービスに対応
- データ転送量に応じて料金が発生
インタフェース型で利用できるサービスについては以下参照
トラフィック監視
VPC FlowLog
ネットワークトラフィックのログ情報を収集するためのサービス。
収集したログは、CloudWatch Logs、Amazon S3に発行することができる。
Discussion