以下メモ

Amazon Virtual Private Cloud (VPC)

Amazon VPCを使用すると、論理的に隔離された仮想ネットワークを定義し、その中にAWSリソースを起動できるようになる。 全てのリソースはVPC内で起動しなければならないが、設定などを行わない場合はAWSが自動的に設定してくれるため、ほとんどの場合は意識しなくても良い。

Amazon VPCは追加料金なしで利用できる。

特徴

  • AWS上にプライベートネットワーク空間を構築
    • 任意のIPアドレスレンジが利用可能
  • 論理的なネットワーク分離が可能
    • 必要に応じてネットワーク同士を接続することも可能
  • ネットワーク環境のコントロールが可能
    • ルートテーブルや各種ゲートウェイ、各種コンポーネント
  • 複数のコネクティビティオプションが選択可能
    • インターネット経由
    • VPN/専用線 (Direct Connect)

事前知識

CIDR

Classless Inter-Domain Routing (CIDR) は、アドレスクラスに囚われないサブネットを作ろうという考え方であり、ルーティングテーブルの肥大化速度を低減させるための仕組み。

通常、IPv4では32ビットをオクテット単位に分けて、プレフィックスに8ビット、16ビット、24ビットのいずれかを割り当ててクラス分けするのが一般的であったが、多くの企業では少なすぎたり、多すぎたりする問題があった。

そこでCIDRは、可変長サブネットマスク (VLSM)に基づき、プレフィックスを可変長割り当て可能することでこれを解決しようとした。

type IP/Prefix
class A A.B.C.D/8
class B A.B.C.D/16
class C A.B.C.D/32
CIDR (可変長) A.B.C.D/10
CIDR (可変長) A.B.C.D/27

CIDRブロック

CIDRは原則として、ビット単位のプレフィックスによってIPアドレスを解釈する機構である。そしてそれは、ルーティングテーブル上の1エントリにグループ化して割り当てられる。ここで割り当てられたものを、 CIDRブロック と呼ぶ。

1つのIPアドレスはCIDRブロックの一部であり、先頭のNビットがそのCIDRブロックのプレフィックスと一致する。

(巨大なCIDRブロックは、何回層かに分けることもある)


VPCを作成する

デフォルトVPC

デフォルトVPCは、AWSアカウントで初めてAmazon EC2リソースをプロビジョニングするとき自動的に作成される。サブネットIDを指定せずにインスタンスを起動すると、そのインスタンスはデフォルトVPCに起動する。

VPCを作成

VPCは、同じリージョンのアベイラビリティゾーンすべてにおよぶ。VPCを作成した後は、アベイラビリティゾーンごとに1つ以上のサブネットを追加する。サブネットを作成する際、VPC CIDRブロックのサブネットである、サブネットのCIDRブロックを指定しなければならない。そして、これらの各サブネットは完全に1つのアベイラビリティゾーン内に含まれている必要がある。

VPCの作成時、デフォルトで1つルートテーブルが作成される。このVPCの中では、作成時に指定したCIDRブロックのアドレスでルーティングされる。 例えば、VPCのIPが 10.0.0.0/16 だった場合、アベイラビリティゾーンのそれぞれのサブネットアドレスは以下のように分割される。 (VPCサイズは最大 /16)

Main route table
VPC 10.0.0.0/16
AZ Subnet
AZ A 10.0.0.0/24
AZ B 10.0.1.0/24
AZ C 10.0.2.0/24

リージョンに設置された Internet gateway は、インターネットを介した通信を有効にし、同様に設置されている Virtual private gateway は仮想プライベートネットワーク (VPN) 接続による、企業ネットワークとの通信を有効にしている。

外部と通信するのためのゲートウェイに至る前には、必ずリージョンで通信を集約している仮想ルーターを通らなければならない。仮想ルータは、自分に届いたパケットをどこに送信すればいいか、ルートテーブルを参照して確かめる役割を持つ。 例えば、上記表にあった AZ A が外部と通信しようと思うと、このようなルートを通る。

+------------------------------------------------------+
|                      Region                          |
| +-------------+                                      |
| |      AZ     |                                      |
| | +-----------+       +----------+       +-----------+       +-------------------+
| | |           | +---> |          | +---> |           | +---> |     Internet      |
| | |  Subnet   |       |  Router  |       |  Gateway  |       |        or         |
| | |           | <---+ |          | <---+ |           | <---+ | Corporate network |
| | +-----------+       +----------+       +-----------+       +-------------------+
| |             |                                      |
| +-------------+                                      |
+------------------------------------------------------+

サブネットのトラフィックがインターネットゲートウェイにルーティングされる場合、そのサブネットは パブリックサブネット と呼ばれる。上記例で言うと、 AZ A がインターネットと通信できる場合、サブネット 10.0.0.0/24 はパブリックサブネットになる。 パブリックサブネット内のインスタンスがIPv4を介してインターネットと通信することが必要な場合は、そのインスタンスにパブリックIPv4アドレス、または Elastic IP アドレス (後述) が割り当てられている必要があることに注意。IPv6を介してインターネットと通信させたい場合は、インスタンスにIPv6が必要。

逆に、インターネットゲートウェイへのルートがないサブネットは、 プライベートサブネット と呼ばれる。

また、インターネットゲートウェイへのルートがなく、VPN接続の仮想プライベートゲートウェイにのみルーティングされているサブネットは、 VPNのみのサブネット と呼ばれる。 (現在、VPN接続ではIPv6トラフィックをサポートしていない)

サブネットで利用できないIPアドレス

ホストアドレス 用途
A.B.C.0 ネットワークアドレス
A.B.C.1 VPCルータ
A.B.C.2 Amazonが提供するDNSサービス
A.B.C.3 AWSで予約
A.B.C.4 ブロードキャストアドレス
(VPCはブロードキャストをサポートしていないが)

IPv4 CIDRブロックを追加する (セカンダリIPv4)

既存のVPCに、セカンダリIPv4 CIDRブロックを関連付けることができる。 (IPv6 CIDRブロックを追加することも可能) CIDRブロックをVPCに関連付けると、ルートがVPCルートテーブルに自動的に追加され、VPC内でのルーティングが可能になる。

以下、10.0.0.0/16 が関連づいているVPCに 10.2.0.0/16 を追加した場合の例。

Main route table
VPC (primary CIDR) 10.0.0.0/16
VPC (secondary CIDR) 10.2.0.0/16
AZ Subnet
AZ A 10.0.0.0/17
AZ B 10.0.128.0/17
AZ C 10.2.0.0/17

追加するCIDRブロックは、VPCに関連付けられている既存のCIDRブロックと重複してはいけない。

Elastic IPアドレス

Elastic IPアドレスは、動的なクラウドコンピューティング向けに設計された、静的なパブリックIPv4アドレスのこと。 (IPv6は未サポート)

AWSのユーザ1人に対して、リージョンあたり最大5個まで利用することができる。Elastic IPアドレスの範囲はリージョンによって決まっているため、移動させることなどはできない。

基本

Elactic IPアドレスは、アカウントのすべてのVPCの任意のインスタンスまたはネットワークインターフェースに関連付けることが出来る。Elactic IPアドレスを使用すると、インスタンスに障害が発生しても、そのアドレスをVPC内の別のインスタンスにすばやく再マッピングすることで、インスタンスの障害を隠すことが出来る。

Elastic IPアドレスは必ず、VPCの Internet gateway 経由でアクセスされる。VPCと自ネットワークの間にVPN接続を作成した場合、VPNトラフィックは Internet gateway ではなく Virtual private gateway を通過するため、Elastic IPアドレスにアクセスすることはできない。

セキュリティ

セキュリティグループ

セキュリティグループは、サブネット内で起動したインスタンスの仮想ファイアウォールとして機能し、インバウンドトラフィックとアウトバウンドトラフィックをコントロールできる。

VPC内で起動したインスタンスには、最大5つのセキュリティグループを割り当てることができる。セキュリティグループはサブネットレベルではなく、インスタンスレベルで割り当てることができるので、サブネット内のインスタンスごとに異なるセキュリティグループのセットを割り当てることが可能だ。 未指定の場合、デフォルトのセキュリティグループが自動的に割り当てられる。

Amazon EC2のセキュリティグループとは区別されており、それぞれがセキュリティグループを参照し合うことはできない。EC2で作成したセキュリティグループをVPCで使用することは出来ないため、VPCインスタンスでは使用するためのセキュリティグループを特別に作成する必要がある。

また、セキュリティグループとは別に、サブネット自体のトラフィックをコントロールしたい場合は ネットワークACL を利用できる。

ネットワークACL

ネットワークACL (アクセスコントロールリスト) は、1つ以上のサブネットのインバウンドトラフィックとアウトバウンドトラフィックをコントロールできる。

VPC内の各サブネットには、必ずネットワークACLを関連付ける必要がある。関連付けない場合、サブネットはデフォルトのネットワークACLが自動的に関連付けられる。 独自のカスタムネットワークACLを作成し、サブネットと関連付けることも可能。デフォルトのカスタムネットワークACLは、ルールを追加するまですべてのインバウンドトラフィックとアウトバウンドトラフィックを拒否する設定になっている。

1つのネットワークACLを複数のサブネットに関連付けることはできるが、1つのサブネットには1つのネットワークACLしか関連付けることはできないことに注意。

制限

  • リージョン当たりのElastic IPアドレスは5個まで
  • リージョン当たりのVPCの数は5個まで
  • VPC当たりのサブネットの数は200個まで
  • VPC当たりに割り当てられるIPv4 CIDRブロックの数は5個まで
  • VPC当たりに割り当てられるIPv6 CIDRブロックの数は5個まで
  • VPCサイズは最大 /16 (65,536IP) まで
  • など

参考

results matching ""

    No results matching ""