2020年1月13日現在の内容です。
用語説明
リージョン
AWSの各サービスが提供されている地域のこと
例:東京,オハイオ,ロンドン
- AWSのサービスを利用する際にまずリージョンを決める必要がある
- リージョンごとに使えるサービスが異なる
- 基本的に新しいサービスはアメリカのリージョンから利用可能になり、その後他のリージョンに展開される
- 日本でAWSを利用する際は東京リージョンを選択したほうが良い(応答時間が早いから)
アベイラビリティゾーン
世界各地にあるデータセンターをまとめたもの
- それぞれのリージョンにアベイラビリティゾーンは2つ以上存在する(あるアベイラビリティゾーンが災害で使用不可になっても、他のアベイラビリティゾーンを利用することでサービスを常に稼働させることができる)
VPC(Virtual Private Cloud)
AWS上に仮想ネットワークを作成できるサービス
- リージョンを選択してVPCを作成する(リージョンをまたいでVPCは作成できない)
サブネット
VPCを細かく区切ったネットワーク
- アベイラビリティゾーンの中にサブネットを作成する
- VPCのIPアドレスの中にサブネットのIPアドレスが含まれる
- パブリックサブネットはインターネットから接続できる
- プライベートサブネットはインターネットから接続できない
IPアドレスとは
IPアドレス
ネットワーク上の機器を識別するためのインターネットの住所
- ネットワーク上で重複しない番号
- 32ビットの整数値で構成される
- 一般的に32ビットのIPアドレスを8ビットずつ4組に分けピリオドを入れて10進数で表現する
(0.0.0.0 〜 255.255.255.255)
パブリックIPアドレス
- インターネットに接続する際に使用するIPアドレス
- 重複すると正しく通信できなくなるので、ICANN(Internet Corporation for Assigned Names and Numbers)が管理している
- プロパイダやサーバー事業者から貸し出される(AWS上でも貸し出される)
プライベートIPアドレス
- インターネットで使用されない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
- 社内LANの構築やネットワークの実験時はプライベートIPアドレスを使用する
IPアドレスの範囲
ネットワークを構築する際は、そのネットワークで使用するIPアドレスの範囲を決める必要がある。
IPアドレスはネットワーク部とホスト部に区分けして範囲を表記する
例:192.168.128.0 〜 192.168.128.255を使用する場合、共通部分(192.168.128)がネットワーク部、異なる部分(0〜255)がホスト部
範囲の表記
-
CIDR表記
IPアドレスの後ろに「/」を書き、その後ろにネットワーク部が先頭から何ビット目までなのかを記載する
例:ネットワーク部が24ビット → 192.168.128.0/24 -
サブネットマスク表記
IPアドレスの後ろに「/」を書き、ネットワーク部を表すビットと同じ部分を1に、ホスト部を表すビットと同じ部分を0にする
例:ネットワーク部が24ビット → 192.168.128.0/255.255.255.0
VPCの作成
デフォルトでVPCが作成されているがこれは使用しない
「VPCの作成」をクリック
以下の画像を参考に設定し、「作成」をクリック
- 名前タグ:VPCを識別する名前
- IPv4 CIDR ブロック:作成するVPCにおけるIPアドレスの範囲
- テナンシー:物理ハードウェアを専用にする(設定するとEC2の料金が割増になる)
サブネットの作成
パブリックサブネットの作成
デフォルトでサブネットが作成されているがこれは使用しない
「サブネットの作成」をクリック
以下の画像を参考に設定し、「作成」をクリック
- 名前タグ:サブネットを識別する名前
- VPC:サブネットを作成するVPC
- アベイラビリティゾーン:サブネットを作成するアベイラビリティゾーン
- IPv4 CIDR ブロック:作成するサブネットにおけるIPアドレスの範囲
プライベートサブネットの作成
ルーティングの設定
パブリックサブネットからインターネットに接続できるようにしたい
↓
ルーティングを設定する
ルーティング:IPアドレスからIPアドレスに紐づくルーター(AWSではターゲットと呼ぶ)へつなぐこと
ルートテーブル:IPアドレスとそのルーター情報を一覧化したもの(経路制御表)
デフォルトルート(0.0.0.0/0):ルートテーブルに登録されているアドレスに一致しないときの経路
IPアドレス | ルーター(ターゲット) |
---|---|
10.0.1.0/24 | local(自身のネットワーク) |
10.0.2.0/24 | ルーターB |
0.0.0.0/0 | ルーターC |
インターネットゲートウェイ:インターネットとVPCをつなぐ仮想ルーター
インターネットゲートウェイを新規作成してVPCに設置する → local以外をインターネットゲートウェイにつなげるようにする
*ルートテーブルはVPCと各サブネットに設定できる
*AWSはサブネットとルートテーブルを定義すると暗黙的にルーターが動作する
インターネットゲートウェイを作成し、VPCにアタッチする
作成したインターネットゲートウェイを選択し、「アクション」 → 「VPCにアタッチ」をクリック
ルートテーブルを作成し、パブリックサブネットに紐付ける
ルートテーブルの作成
ルートテーブルとパブリックサブネットを紐付ける
作成したルートテーブルはVPCのみ割り当てられているので、パブリックサブネットにも割り当てる
作成したルートテーブルを選択し、「サブネットの関連付け」 → 「サブネットの関連付けの編集」をクリック
デフォルトルートをインターネットゲートウェイに設定する
作成したルートテーブルを選択し、「ルート」 → 「ルートの編集」をクリック
以下を参考に設定し、「ルートの保存」をクリック
- 送信先:0.0.0.0/0
- ターゲット:Internet Gateway → 作成したインターネットゲートウェイ
ネットワーク設計で考慮すべきポイント
VPCの設計ポイント
- プライベートIPアドレス範囲から指定する
- VPCでは仮想のプライベートネットワーク空間を作成するので、プライベートIPアドレスの使用が推奨
- IPアドレスのホスト部は大きめに設定する
- ホスト部の範囲は/28 〜 /16と決まっている
- /16が推奨
- オンプレミスや他のVPCレンジと重複しないようにする
- オンプレミスとクラウドを併用している場合、レンジが重複するとどちらに接続すればよいかわからなくなるため
VPCとアカウントの分け方
- 異なるシステムを運用する場合、アカウントは分ける
- 異なるシステムを同一アカウント内に用意すると管理が煩雑になる
- 同一システムで複数環境が存在する場合、同一アカウントでVPCとリージョンを分ける
- VPCを分けるとIAMの設定が一度でよいが、各環境のリソースが見えて事故の元になる
- アカウントを分けると他の環境のリソースが見えず作業しやすいが、環境ごとにIAMの設定が必要
サブネットの設計ポイント
- 将来的に必要なIPアドレス数を見積もって設定する
- /24が標準的
- サブネットの分割はルーティングとアベイラビリティゾーンを基準に行う
- サブネットに割り当てられるルートテーブルは1つ
- インターネットアクセスの有無、拠点アクセスの有無などのルーティングポリシーに応じて分割する
- 高可用性のために2つ以上のアベイラビリティゾーンを使用する
*可能な限り全てのサブネットには明示的に何かしらのルートテーブルを紐づけた方が良い
→ルートテーブルを設定していない場合、デフォルトで存在するルートテーブルが暗黙的に使われるので、
デフォルトルートテーブルが変更された際に意図しない影響が出るリスクが発生するから