VPC(Virtual Private Cloud)とは
VPCはAWSクラウド内に論理的に分離されたセクションを作り、ユーザーが定義した仮想ネットワークを構築するサービス
- リージョン内に5つまでVPCを設定可能(上限緩和申請可能)
- 任意のIPアドレス範囲(CIDR)を選択して仮想ネットワークを構築(最小:/28、最大:/16)
- VPCはプライベートIPアドレスによってネットワークレンジを設定
- セブネットの作成、ルートテーブルやネットワークゲートウェイの設定などにより、仮想ネットワーキング環境を完全に制御でき
- 必要に応じてクラウド内外のネットワーク同士を接続したり、外部のネットワークと接続することが可能
- VPCがネットワークの範囲を規定し、さらにサブネットに範囲を分割して利用する
- 一つのVPCと一つのサブネットが最小構成。単一サブネットがAZの範囲に設置される
- サブネットを追加することで複数AZ範囲にVPCを広げることができる。しかし、VPCはリージョンを超えることはできない。
デフォルトVPC
AWSアカウントを作成すると、自動的に各リージョンに一つずつデフォルトVPCとデフォルトサブネットが生成される
- サイズ/16のIPv4CIDRブロック(172.31.0.0/16)のVPCを作成する。これは、最大65,536個のプライベートIPv4アドレスを提供する
- 格アベイラビリティーゾーンに、サイズ/20のデフォルトサブネットを作成する。この場合は、サブネットあたり最大4,096個のアドレスが作成され、その中のいくつかはAmazonが使用するように予約されている
- インターネットゲートウェイを作成して、デフォルトVPCに接続する
- デフォルトのセキュリティーグループを作成し、デフォルトVPCに関連付ける
- デフォルトのネットワークアクセスコントロールリスト(ACL)を作成し、デフォルトVPCに関連付ける
- デフォルトVPCを備えたAWSアカウントにはデフォルトDHCPオプションセットを関連付ける
- パブリックとプライベートのDNSホスト名が付与される
カスタムVPC
VPCウィザードを利用しない場合は、下記の順番で作成する
VPCにおけるDNS使用
VPC内で起動したインスタンスがパブリックIPアドレスに対応するDNSホスト名を取得するために設定が必要
- enableDnsHostname
└パブリックIPアドレスを持つインスタンスが対応するパブリックDNSホスト名を取得するかどうか示す。
└この属性がtrueでenableDnsSupport属性もtrueの場合、VPC内のインスタンスはDNSホスト名を取得する。 - enableDnsSupport
└DNS解決がサポートされているかどうかを示す
└この属性がfalseの場合、パブリックDNSホスト名をIPアドレスに解決するAmazon Route 53 Resolverサーバーが機能しない
└この属性がtrueの場合、Amazonが提供するDNSサーバー(IPアドレス169.254.169.235)へのクエリ、またはリザーブドIPアドレス(VPCIPv4ネットワークの範囲に2をプラスしたアドレス)へのクエリを成功する
※Route53でプライベートホストゾーンにカスタムDNSドメイン名を利用したい場合に設定が必要
サブネット
CIDRで分割したVPCのネットワークセグメント
- サブネットは、一つのAZに配置され、バブリッグサブネットとプライベートサブネットがある
- サブネットには、CIDR(IPアドレス範囲)が付与され、ネットワークレンジが決まる
- インタネットゲートウェイへのルートが設定されるパブリックサブネットとされないプライベートサブネットがある
- インタネットゲートウェイのルーティングの有無でサブネットのタイプが決まる
- セキュリテイーを高めたいサービスはプライベートサブネットに設置する
- プライベートサブネット内のインスタンスにインターネットから接続するには踏み台サーバーが必要なのと、プライベートサブネット内のインスタンスがインターネットに返信を返すにはNATゲートウェイが必要
CIDR
設定可能なサブネット数とIPアドレス数の組合せ(AWS管理IPの5つを引いたもの)
※既にAWS側で利用されており、設定できないアドレスもある
ゲートウェイの種類
- インタネットゲートウェイ:インターネットへの出入り口となるゲートウェイ
- NATゲートウェイ:プライベートサブネットのリソースからインターネットへのトラフィックを可能にするためのゲートウェイ
- Egress-Only Internet Gateway:IPv6経由でのVPCからインターネットへの送信を可能にし、インターネットからのインタンスへの接続に防ぐ
- カスタマーゲートウェイ:オンプレミス環境と接続する際に利用するゲートウェイ
- 仮想プライベートゲートウェイ:VPN接続時に利用する
NATゲートウェイ利用イメージ
Elastic IP
Elastic IPは静的に利用できる追加のIPアドレス。
インスタンスがインターネットへとアクセスするためには、パブリックIPかElastic IPを利用する
- パブリックIP
└動的なパブリックIPv4アドレス
└インスタンスが停止した場合はIPアドレスが変更される
└VPCでパブリックIPアドレスの割当が有効化されていれば自動的にVPC内リリースに割り当てられる - Elastic IP
└静的なパブリックIPv4アドレス
└インスタンスが停止してもIPアドレスは変更されない
└VPCコンソールにおいてElastic IPを作成してから、必要なサービスにアタッチする
└利用時は無料。開放せずに利用しないと有料になる
└NATインスタンスに比較して冗長性も高く、管理が楽
VPCエンドポイント
インターネットを介さずにVPC内からVPC外のリソースへアクセスをする機能
- ゲートウェイ型
└サポートされるAWSサービスを宛先とするトラフィックのルートテーブルの宛先として指定できるゲートウェイ
└DynamoDBとS3のみに適用可能
└無料
- インターフィース型エンドーポイント
└サブネットのIPアドレス範囲のプライベートIPアドレスを持つ外部接続用のElastic Network Interface
└サポートされるサービスを宛先とするトラフィックのエントリポイントとして機能する
└プライベートIPアドレスを使用してサービスにプライベートにアクセスするためPrivateLink型とも呼ばれる
└RDS、EC2等ほとんどのAWSサービスに適用可能
└有料
AWS PrivateLink
インターフィースエンドポイントを利用したプライベート接続を実施するサービス
- インターネットを経由せずVPCとAWSでホストされているサービス、またはオンプレミス間でプライベート接続を確立する
(そのため、インターフェースエンドエンドポイントはプライベートリング型とも呼ばれる) - VPCの外部にあるサービス用に、インターフェイスVPCエンドポイントを作成する
- 他のAWSユーザーによるサービスへのアクセスを可能にする
- AWS Direct Connectを使用したプライベート接続にも対応して、オンプレミスのアプリケーションからAWSリソースにプライベートネットワークを経由して接続できる
VPC Peering
2つのVPC間でのトラフィックルーティングが可能にできるサービス
- 異なるAWSアカウント間のVPC間をピア接続可能
- 一部のリージョン間の異なるVPC間のVPC間のピア接続も可能
- 単一障害点や帯域幅のボトルネックは存在しない
トランジットゲートウェイ
ハブ型の接続を可能にできるサービス
VPCとのオンプレミス接続種類
- AWS Direct Connect:オンプレミス環境からAWSプライベートネットワークへの専用ネットワーク接続を作成する
- AWS VPN
└AWSサイト間VPN:オンプレミス環境からAWSプライベートネットワークへのVPN接続を作成する
└AWS Client VPN:クライアントからのVPN接続を実施するリモート接続用のサービス
Direct Connect
お客様のデータセンターやオフィスを専用線などを介してAWSへプライベートに接続するサービス
Direct Connectロケーションに物理的に自社オンプレ環境を接続することでAWS環境との専用線接続を実現する
- 安価なアウトバウンドトラフィック料金
- ネットワーク信頼性の向上
- ネットワーク帯域幅の向上
ダイレクトコネクトゲートウェイ
複数リージョンにネットワークを専用線接続したい場合は、ダイレクトコネクトゲートウェイを利用する
AWSサイト間VPN
インターネット回線を利用したVPN接続を実現することも可能
VPN vs DirectConnect
サイト間VPN | Direct Connect | |
コスト | 安価なベストエフォート回線が利用可能 | キャリア専用線サービス契約が必要となりVPNより割高 |
リードタイム | クラウド上での接続設定で可能なため即時 | 物理対応が必要なため1ヶ月ほどの準備時間が必要 |
帯域幅 | 暗号化のオーバーヘッドにより制限がある | ポートあたり1Gbps、10Gbpsまたは100Gbpまでの広帯域を実現 |
品質セキュリティ | ①インターネット経由のためネットワーク状態の影響を受ける ②Ipsecによる通信暗号化 |
①キャリアにより高い品質 ②専用線によるセキュリティが高く、+VPNにより通信を暗号化可能 |
障害切り分け | インターネットベースのため、自社で保持している範囲以外の確認は難しい | 物理的に経路が確保されているため比較的容易 |
VPCフローログ
VPCフローログはネットワークトラフィックを取得しCloudWatchでモニタリングできるようにする機能
- ネットワークインタフェースを送信元/送信先とするトラフィックが対象となる
└VPCのフローログ
└サブネットのフローログ
└ENIのフローログ
(ENIが設定されたEC2/ ELB/RDS/ElastiCache/Redshift/WorkSpaces/NATゲートウェイ/トランジットゲートウェイのトラフィックを取得) - セキュリティーグループとネットワークACLのルールでaccepted/rejectされたトラフィックトラフィックログを取得する
- キャプチャウィンドウと言われる時間枠(約10分間)で収集・プロセッシング・保存する
- 追加料金はなし