VPCでネットワークを構築する方法をまとめます。
AWSのネットワークの概念
リージョン(region)
AWSの各サービスが提供されている地域のこと。
リージョンによって利用できるサービスが異なり、アメリカのリージョンから順次展開されていく。
日本でサービス展開する場合は応答時間が短い東京や大阪リージョンがおすすめ。
アベイラビリティーゾーン
独立したデータセンターのこと。どのリージョンにも2つ以上存在しており、物理的に離れた場所に存在している。
このアベイラビリティーゾーンにネットワークやサーバーを構築する。
VPC(Virtual Private Cloud)
AWS上に仮想ネットワークを作成できるサービスで、他と分離された独自のネットワークを構築することが出来る。
VPCはリージョンを指定して作成する。リージョンを跨いで作成することは出来ない。
VPCの中にサブネットを作成することができ、Webサーバーは外部からアクセス出来るパブリックサブネット、DBサーバーはプライベートサブネットというようにネットワークを分割することが出来る。
サブネットはアベイラビリティーゾーンを指定して作成する。複数のアベイラビティーゾーンに配置して冗長性を高めるのがベストプラクティスとされている。
IPアドレスについて
IPアドレスとは
ネットワーク上の機器を識別するための一意のアドレス。
32ビットの整数値で構成され8ビット区切りの10進数で表現される。
10101100 00010100 00000001 00000001
172.20.1.1
パブリックIPアドレスとプライベートIPアドレス
パブリックIPアドレスは、インターネットに接続する際に使用するIPアドレスで、ICANNという団体が管理している。
プロバイダーやサーバー事業者から貸し出される。
プライベートIPアドレスは、インターネットで使用されないIPアドレスで、下記範囲内のアドレスを自由に使用することが出来る。 社内LANの構築などで利用される。
10.0.0.0〜10.255.255.255
172.16.0.0〜172.31.255.255
192.168.0.0〜192.168.255.255
IPアドレスの範囲と表記方法
IPアドレスはネットワーク部とホスト部によって範囲を指定できる。
例えば、192.168.128.0〜192.168.128.255
の場合は、192.168.128
(先頭24ビット)がネットワーク部で残りがホスト部となる。
CIDR表記
「IPアドレス/ネットワーク部のビット数」と表記する。上記の例では192.168.128.0/24
となる
サブネットマスク表記
「IPアドレス/サブネットマスク」と表記する。サブネットマスクはネットワーク部を表すビットは1、ホスト部を表すビットは0となり、上記の例では192.168.128.0/255.255.255.0
となる
IPアドレスの例
以下のようにVPCのIPアドレスの範囲の中に各サブネットのIPアドレスが含まれているのがポイント
VPC:10.0.0.0/16
パブリックサブネット:10.0.10.0/24
プライベートサブネット:10.0.20.0/24
VPCを作成する
- マネージメントコンソールでVPC作成を選択する。
- 名前とIPv4 CIDRブロックを入力して作成する。
IPv6CIDRブロックはAmazonが提供しているIPv6アドレスと紐付けることが出来る。なしでOK。
テナンシーは専用の物理ハードウェアを使用するかどうかで、専用にすると割高になる。
サブネットを作成する
サブネットを作成する理由は2つ。
・複数のアベイラビリティーゾーンに作成することで災害時の耐障害性が上がる。
・セキュリティ対策のためにサーバー単位でインターネットからアクセスできないようにするなど。
パブリックとプライベートの2つのサブネットを作成する。
ルーティングを設定する
インターネットでは、ルーターがIPアドレスの行き先を管理しており、ネットワークとネットワークがIPアドレスを通じて接続することが出来る。
ルートテーブル
宛先のIPアドレスと次のルーター(AWSではターゲット)という書式で設定する。VPCとサブネット単位でルートテーブルを設定することができる。
AWSではルーターは明示的に設定しないが、ルートテーブルを設定すると暗黙的にルーターが動作するようになっている。
宛先IPアドレス | 次のルーター |
---|---|
10.0.1.0/24 | local(自身のネットワーク) |
10.0.2.0/24 | ルーターB |
0.0.0.0/0 | ルーターC |
0.0.0.0/0
はデフォルトルートで、ルートテーブルに登録されているどのアドレスにも一致しない場合の経路。
インターネットゲートウェイを作成する
ルートテーブルを作成する
- マネージメントコンソールでルートテーブル作成を選択する
- 名前とVPCを入れて作成する
- サブネットの関連付けの編集を開く
- パブリックサブネットを選択して保存する
- ルートの編集を開く
- デフォルトルートにインターネットゲートウェイを指定して保存する
パブリックサブネットのデフォルトルートにインターネットゲートウェイのルートテーブルを設定したので、パブリックサブネットとインターネットが接続できるようになる。
VPC設計のポイント
- プライベートIPアドレスの範囲から指定する
10.0.0.0〜10.255.255.255
172.16.0.0〜172.31.255.255
192.168.0.0〜192.168.255.255
-
IPアドレスの範囲は大きめに設定する。16ビットが推奨されている
-
オンプレミスや他のVPCのレンジと重複しないようにする。
VPC、アカウントについて
- 異なるシステムの場合はアカウントを分ける
- 本番やステージングなど環境が異なる場合は、アカウントは同じでVPCとリージョンを分けるのがおすすめ。IAMの設定が一度で良く、リージョンを分けると管理コンソール上もごちゃごちゃしていなくて見やすいため
サブネットの設計のポイント
- サブネットは将来に必要なIPアドレス数を見積もって設定する。
/24
が一般的 - サブネットの分割はルーティングとアベイラビリティーゾーンを基準に行う
サブネットに割り当てられるルートテーブルは一つなので、インターネットアクセスの有無、拠点アクセスの有無などのルーティングポリシーに応じて分割する
また、高可用性のために2つ以上のアベイラビリティーゾーンを使用する場合はそれぞれサブネットを分割することになる。