徹底解説
AWSのVirtual Private Cloud(VPC)は、クラウド上にプライベートネットワークを構築するための強力なサービスです。ここでは、VPCの基礎から応用まで、具体例を交えながら詳しく解説します。
VPCの基本
AWS VPCを使うことで、AWSクラウド内に閉じた仮想ネットワークを作成できます。このネットワーク内では、AWSリソース(EC2インスタンスやRDSデータベースなど)を自由にデプロイし、管理することができます。
VPCの構成要素とその役割
- CIDRブロック: VPC内で使用するIPアドレス範囲を定義。例えば、「10.0.0.0/16」では、65,536個のIPアドレスが利用可能です。また、例えば「192.168.1.0/24」は、192.168.1.0から192.168.1.255までの256個のIPアドレスが利用可能です。
- サブネットマスク: IPアドレスをネットワーク部分とホスト部分に分割するためのもの。CIDR表記でスラッシュの後ろにくる数のことです。
- サブネット: CIDRブロック(ネットワーク)をさらに細かく分割したネットワーク。異なるアベイラビリティゾーン(AZ)に配置すれば高い可用性を確保できます。
- インターネットゲートウェイ (IGW): VPCをインターネットに接続します。このゲートウェイを介して、VPC内のリソースが外部と通信できるようになります。
- ルートテーブル: ネットワークトラフィックの送り先を決めるルールを持つ。特定のサブネットがインターネットや他のサブネットとどうやって通信するかを定義します。
- セキュリティグループ: リソースへのアクセスを細かく制御するためのツール。インスタンスレベルでのファイアウォール設定。入力と出力のトラフィックを制御するルールを設定可能。
- ネットワークACL: サブネットレベルで機能します(サブネットレベルでのファイアウォール設定)。セキュリティグループよりも広い範囲で、入出力トラフィックのルールを設定できる
通常のネットワークとの比較
特徴 | Amazon VPC | 通常のネットワーク |
---|---|---|
構成の柔軟性 | 高い(仮想で自由に設定) | 物理的制約あり |
セキュリティ | セキュリティグループ、ネットワークACLによる細かな設定可能 | 物理的セキュリティ、ファイアウォールなど |
スケーラビリティ | 容易に拡張可能 | 物理的な追加が必要 |
コスト | 使用量に応じて変動 | 初期投資と維持費が高い |
管理のしやすさ | AWSコンソールで一元管理 | 複数のツールや手動での管理が必要 |
メリット:
- VPC: カスタマイズ性が高く、セキュリティが強固。拡張性に富んでおり、コストも使用量に応じて調整できる。
- 通常のネットワーク: 物理的な制御が可能で、一部の用途ではより高速な接続が実現可能。
デメリット:
- VPC: 設定が複雑になる場合がある。全てが仮想なので、物理的なハードウェアの制御は不可能。
- 通常のネットワーク: 初期設定や維持にコストがかかる。拡張性が限られている。
サブネットとサブネットマスクとの違い
「サブネット」と「サブネットマスク」は、密接に関連しているが、役割は異なります。
-
サブネット:
- これはネットワークをより小さなネットワークに分割したものです。例えば、大きなオフィスビルが1つのネットワークだとすると、その中の各フロアをサブネットと考えることができます。サブネットを使うと、ネットワークを管理しやすくなるほか、セキュリティも向上します。
- たとえば、
192.168.1.0/24
というCIDRブロックがある場合、これは192.168.1.0
というネットワークアドレスを持つサブネットを示していて、/24
がサブネットマスクです。 - この場合、サブネットマスクは最後の8ビット(32ビットのアドレスのうち)がホスト部で、残りの24ビットがネットワーク部を示しています。このサブネットマスクによって、このサブネットが持つことができるIPアドレスは
192.168.1.1
から192.168.1.254
まで、つまり254個のホスト(デバイス)を持つことができるということになります。また、192.168.0.1
はネットワークアドレス、192.168.0.255
はブロードキャストアドレスになります。 -
192.168.1.0/24
というCIDRブロックを2つのサブネットに分ける方法としては192.168.1.0/25
と192.168.1.128/25
などがある。
-
サブネットマスク:
- サブネットマスクは、そのサブネットがどれだけの大きさか、つまりどれだけのIPアドレス範囲を持っているかを示すために使われます。サブネットマスクによって、ネットワークアドレスとホストアドレスの部分がどこで分かれているかが定義されています。
ネットワークアドレスとブロードキャストアドレス
サブネット内で最初のIPアドレスはネットワークアドレスとして使用され、サブネットを識別するために予約されています。最後のIPアドレスはブロードキャストアドレスとして使用され、サブネット内の全てのデバイスに一斉にデータを送信するために予約されています。たとえば、「192.168.1.0/24」のサブネットでは、「192.168.1.0」がネットワークアドレス、「192.168.1.255」がブロードキャストアドレスとなります。
サブネット間の通信
通常、異なるネットワーク間での通信にはルーターが必要ですが、AWS VPC内ではサブネット間での通信がよりシンプルに行われます。VPC内のルートテーブル設定によって、サブネット間で直接通信が可能となっています。これはAWSが提供する仮想ネットワーキングレイヤーが、自動でルーティングの処理を行ってくれるためです。
サブネット間の通信の仕組み
AWS VPC内で、異なるサブネット間の通信は、ルートテーブルの設定によってコントロールされます。例えば、サブネットAのインスタンスがサブネットBのインスタンスに通信したい場合、ルートテーブルはサブネットAからサブネットBへのルートを持っている必要があります。VPCでは、これらのルート設定を通じて、サブネット間での通信が容易に設定できます。
VPC内での通信の特徴
AWS VPCの強力な特徴の一つは、VPC内のリソースがデフォルトで相互に通信できるように設計されている点です。しかし、セキュリティやトラフィックの管理をより細かくコントロールしたい場合は、セキュリティグループやネットワークACLを適用して、通信ルールをさらにカスタマイズできます。