VPC
「VPC」とはAWS上の仮想ネットワークのこと。 出入り口が複数ある。
- インターネットゲートウェイ :文字通りインターネットに出るためのゲートウェイ。Elastic IPを持っていようがコイツを経由しないと外に出られない(と思われる)
- 仮想プライベートゲートウェイ :AWSとオンプレミスをつなぐためのVPNのゲートウェイ。
- VPCエンドポイント :AWS内で、VPCでは接続できないサービスに接続するためのエンドポイント。IGWと使い分けるらしい。
VPCはデフォルトでリージョン単位で構成される。つまり複数のAZを跨ぐことになる(らしい)。 また、VPCを構成するときに設定可能なサブネットマスクの長さは16から28の間らしい。
とりあえずVPC作ってみた。
久しぶりにAWSコンソールにログインしたので勝手がわからなかったが、左上の検索ボックスに「VPC」と入れたらなんだか簡単にこのページ(VPC Dashboard)にたどり着いた。 左側にはメニュー一覧と、真ん中にはそのメニュー一覧に対応づいた大きなクリックしやすいリンクが並んでいる。
とりあえず1枚目の画像のCreate VPCをクリックすると、ウィザード画面が出てきた。 赤枠内を適当に埋めた。
そういえばTenancyってなんだろう。。。? Infoをクリックしてみたら、説明があった。 Tenancy自体はEC2インスタンスごとにTenancy属性を指定しして使うもの?らしく、どの物理リソースでEC2が起動するかを指定する者らしい。 Defaultは、別に物理リソースの指定はないけれど、Dedicatedにすると特定ホストでしか起動しなくなる?ようだ。 なんか某仮想化ベンダーのアフィニティに似ているな。 で、なんでこれをVPCごとに設定するんじゃいというと、VPCごとにDedicatedとすることで、EC2の設定を無視って強制的にTenancyを全部Dedicatedで起動してくるようになるらしい。普通にAWSを使うだけなら、そんなにメリットが感じられないけれど、Outposts のように物理ホストが着弾して、自社のオンプレミスでEC2を稼働させる場合に効果を発揮するらしい。せっかくオンプレミスで仮想マシンを稼働できるようにしたにもかかわらず、全然別のロケーションで仮想マシンが稼働してしまっては意味がない。こういうときにはTenancyを使って自社構内で仮想マシンを稼働させるように制限をかける。のだと思う。
あらかた設定したらもう一度Create VPCをクリックする
できた!今まで本でしか見たことなかったNACLやルートテーブル、サブネットが表示されている。
サブネット
VPCを作った後、そのVPCの中でサブネットというより細かなネットワークを切り出すことができる。 こちらは物理危機のサブネットとほぼ同じ意味でつかわれているように思う。以下のような特徴がある。
VPCと同じ特徴
- サブネットマスク長(16-28)
VPCと違う特徴
- VPCはリージョン内の全AZ内で利用可能だが、サブネットは単一のAZ内にのみ作成。既存サブネットを丸っとほかのAZに移動することはできない
- サブネットには「ルートテーブル」と「NACL」が存在して、ほかのサブネットなどとの通信を制御している。こちらのふたつは既存サブネットに対して付け替えができる
- デフォルトで先頭四つのアドレスと最後の一つのアドレスが使えない(予約されている)
・パブリックサブネットやプライベートサブネットと呼ばれるサブネットを構成することも可能。基本的にはNACLやルートテーブルなどによって差別化をしているため、根本的なサブネット自体の機能が違うわけではない
ルートテーブル
- サブネットに対して1つずつ設定することができる。
- デフォルトゲートウェイなどを持っているため、1つのサブネットに対して複数のルートテーブルは適用できない。
- その他の通りルーティングの情報を記載する。ネクストアップ情報等が分かる。
- サブネットごとに指定しない場合は、VPシーのデフォルトのルートテーブルが使われる
セキュリティーグループ
- Azureで言う所のネットワークセキュリティーグループ
- EC2インスタンス単位での接続制御を提供する
- デフォルトではアクセス拒否許可された項目のみアクセス許可
- ステートフルなファイヤーウォール
- 応答トラフィックについてはデフォルトで許可
NACL
- サブネットごとの通信制御に利用するためのファイオールルールのようなもの
- ルール作成に関して、セキュリティーグループを使うことができない
- ステートレスのファイヤーウォール
- 応答トラフィックを指定しない限り拒否
- 攻撃の遮断に使うことができる
インターネットゲートウェイ
- VPC単位でひとつ作られる、インターネットに通じるためのゲートウェイ。イラスティックIPを持っていうがいまいが、インスタンスは、これを経由して、インターネットに出ていく。
- インターネットゲートウェイにルーティングが向いているサブネットのことをパブリックサブネット、そうでないサブネットのことをプライベートサブネットと言う。
- インターネットゲートから出て行く通信は、インスタンスの持つイラスティックIPアドレスで出ていく。
- インスタンスにNATさせて、インターネットに通信をさせたい時は、インターネットゲートウェイではなくNATゲートウェイを使う。これを使った場合は、ラスティックIPアドレスではなくてNATゲートウェイのIPアドレスで外に出て行く。なお、NATゲートウェイについては、アベイラビリティーゾーン単位で、つまりデータ選択単位で作成されるため、アベイラビリティーゾーンを複数またぐ場合は、複数のゲートウェイが必要となる。
- 疑問:ナットゲートウェイを経由して、外に出て行く時って、インターネットゲートウェイも経由するのかな?
仮想プライベートゲートウェイ
- VPCごとに一つつけることができる。こちらは、インターネットとの通信ではなく、オンプレミスのネットワークとの通信の出入り口である。具体的にはサイト間VPNやダイレクトコネクトに接続をするためのゲートウェイである。
疑問:プライベートサブネットとパブリックサブネットを実環境で見分けるにはどこを見たらいいんだろう?
VPCエンドポイント
- ゲートウェイエンドポイント:S3などのサービスに限定した通信
- AWSプライベートリンク:上記以外のサービスを通信させる
- どちらもVPCの外にあるサービスに対して、VPC内のインスタンス等からインターネットを経由させずに、通信を行わせるためのゲートウェイ。裏側では、ルーティングを使っているらしい?
VPCピアリング
フローログ
- EMI単位で記録されるフローのログ