クラウド コンピューティングが主流になるにつれ、企業や個人ユーザーは、クラウド アプリケーションを構築する際のネットワーク環境のセキュリティ、柔軟性、拡張性に対する要件が高まっています。 仮想プライベートクラウド(VPC)は、こうしたニーズを満たす中核サービスの一つです。VPCを利用することで、ユーザーはAWSクラウド内に独自の仮想ネットワークを構築・管理することができ、従来のローカルデータセンターにおけるネットワークの構築・管理と同様に機能します。
VPCネットワークアーキテクチャでは、サブネット サブネットは重要な役割を果たします。リソースのネットワーク境界を決定するだけでなく、セキュリティポリシー、可用性、アプリケーションシステムの外部通信方法にも影響を与えます。サブネットを理解し、適切に使用することは、安全で効率的なクラウドアーキテクチャを設計する鍵となります。
AWS サブネットとは何ですか?
サブネット サブネットは、VPC内のIPアドレス空間をさらに分割します。サブネットを使用することで、大規模なVPCを論理的に小さな複数のネットワークセグメントに分割できます。異なる種類のリソースを異なるサブネットにデプロイし、異なるアクセス制御ポリシーを適用できます。
たとえば、企業は VPC を次のサブネットに分割する場合があります。
- パブリックサブネット: サブネット内のリソース (Web サーバーなど) がインターネット ゲートウェイを介してインターネットに直接アクセスできるようにします。
- プライベートサブネット: サブネット内のリソース (データベースや内部 API サービスなど) はインターネットから直接アクセスできず、NAT ゲートウェイまたは VPN を介してのみ外部と通信できます。
この分割方法は、従来のデータセンターにおける DMZ (非武装地帯) や内部ネットワークセグメントなどの概念に似ていますが、AWS ではより柔軟で拡張が容易です。
サブネットの基本要素
AWS サブネットを作成する際には、考慮すべき重要なポイントがいくつかあります。
1. CIDRブロック
CIDR (Classless Inter-Domain Routing) ブロックは、サブネットの IP アドレス範囲を定義します。
- 各サブネットには CIDR ブロックを割り当てる必要があり、その CIDR ブロックは、サブネットが属する VPC の CIDR 範囲内に収まっている必要があります。
- サブネットのCIDRサイズによって、利用可能なIPアドレスの数が決まります。例:
- 10.0.1.0/24 → 256 個の IP アドレスを提供します (そのうち実際に使用できるのは 251 個)。
- 10.0.1.0/28 → 16 個の IP アドレスを提供します (そのうち実際に使用できるのは 11 個)。
AWS は各サブネットに 5 つの IP アドレスを予約します (ゲートウェイ、DNS、ネットワーク管理用)。そのため、CIDR を計画する際には余裕を持たせてください。
2. アベイラビリティゾーン(AZ)
サブネットを作成するときは、サブネットが属するアベイラビリティーゾーンを指定する必要があります。
- 各サブネットは、単一のアベイラビリティーゾーンにのみ配置できます。
- 高可用性を実現するには、通常、同じリージョン内の複数の AZ にサブネットを作成し、サブネットに冗長リソースを展開する必要があります。
3. ルートテーブル
サブネット内のトラフィック転送はルーティングテーブルによって決定されます。ルーティングルールをカスタマイズすることで、サブネット内のリソースがインターネット、VPC内の他のサブネット、またはローカルデータセンターにアクセスできるかどうかを制御できます。
4. パブリックサブネットとプライベートサブネット
- パブリックサブネット: ルーティング テーブルにインターネット ゲートウェイを指すルートが存在します。
- プライベートサブネット: インターネット ゲートウェイへの直接ルートはなく、外部アクセスは NAT ゲートウェイまたは VPN 経由でのみ可能です。
サブネットのアプリケーションシナリオ
1. 3層アーキテクチャの展開
一般的な Web アプリケーションでは、機能に応じて異なるサブネットにデプロイできます。
- Web層(パブリック サブネット): Nginx や Apache などの外部 Web サービスをデプロイします。
- アプリケーション層(プライベート サブネット): ビジネス ロジック処理などのバックエンド アプリケーション サービスをデプロイします。
- データレイヤー(プライベートサブネット): RDS や Redis などのデータベースとキャッシュをデプロイします。
このアーキテクチャは、サブネットの分離を通じてセキュリティを強化し、データベースなどの機密リソースがパブリック ネットワークに直接公開されるのを防ぎます。
2. ハイブリッドクラウドアーキテクチャ
企業は多くの場合、AWS VPCをオンプレミスのデータセンターに接続してハイブリッドクラウドを構築する必要があります。VPC内のサブネットを適切に分割することで、オンプレミスとクラウドベースのビジネスをシームレスに統合できます。
3. 異なる環境の分離
開発環境、テスト環境、本番環境では、厳密な分離が求められます。同一VPC内に異なるサブネットを作成するか、異なるVPCにサブネットを確立することで、企業は環境レベルの分離を実現し、リスクを軽減できます。
4. 高可用性と災害復旧
複数の AZ に同じ機能を持つサブネットを作成し、冗長インスタンスを展開すると、システムの可用性とフォールト トレランスが大幅に向上します。
サブネットと関連するAWSサービスを組み合わせる
サブネットの真の価値は、多くの場合、他のネットワーク コンポーネントとの連携にあります。
- インターネットゲートウェイ (IGW)
- パブリックサブネット内のインスタンスは、IGW を介してインターネットと双方向に通信できます。
- NATゲートウェイ/NATインスタンス
- プライベートサブネット内のインスタンスがインターネットにアクセスできるようにします (たとえば、ソフトウェア更新をダウンロードするため)。ただし、これらのインスタンスへのアクティブな外部アクセスは防止します。
- セキュリティグループとネットワークACL
- サブネットレベルのセキュリティ制御の依存関係 ネットワークACLインスタンスレベルのセキュリティは、 セキュリティグループ管理。これら 2 つを組み合わせることで、きめ細かなアクセス制御が可能になります。
- VPCピアリング
- 異なる VPC 内のサブネットはピアリング接続を介して相互に通信できるため、リージョン間の展開や複数チームのコラボレーションに非常に便利です。
- トランジットゲートウェイ
- 大企業の場合、Transit Gateway を使用して複数の VPC のサブネットを集中的に接続し、スター トポロジを形成して、ネットワーク管理を簡素化できます。
ベストプラクティスと考慮事項
1. 合理的なCIDR計画
- 将来の拡張時に競合が発生しないように、事前に IP アドレスの範囲を設計します。
- 異なる環境 (開発/テスト/本番) ごとに異なる CIDR 範囲を予約します。
2. パブリックサブネットとプライベートサブネットの分離
- データベースや機密システムをパブリックサブネットに配置しないでください。
- パブリック サブネットは、ユーザーに直接公開する必要があるサービスにのみ使用されます。
3. クロスAZ配置
- 高可用性を向上させるために、複数の可用性ゾーンにサブネットを作成します。
- データベース サーバーとアプリケーション サーバーは、可能な限り異なる AZ のプライベート サブネットにデプロイする必要があります。
4. 権限を最小限に抑える
- セキュリティ グループとネットワーク ACL は、「デフォルトで拒否し、必要なトラフィックのみを許可する」という原則に従う必要があります。
- NAT ゲートウェイと IGW の使用は厳密に監視する必要があります。
5. 監視とログ記録
- 協力する VPC フローログ セキュリティとネットワークの問題のトラブルシューティングに役立つように、サブネット内のトラフィックを記録します。
結論は
AWS VPCサブネットは、クラウドネットワークアーキテクチャの中核コンポーネントです。サブネットを適切に分割・設定することで、ユーザーは以下のことが可能になります。
- セキュリティを向上させるためのリソースの柔軟な分離と管理。
- 3 層アーキテクチャ、ハイブリッド クラウド、リージョン間展開などの複雑なアプリケーション シナリオをサポートします。
- パブリック サブネットとプライベート サブネットを分割することで、外部サービスの提供と機密リソースの保護のバランスを実現できます。
- AWS が提供するゲートウェイ、ルーティングテーブル、セキュリティグループ、監視ツールを利用して、高度に制御可能で、弾力的にスケーラブルなネットワーク環境を構築します。
要するに、サブネットは単なる IP アドレスの分割ではなく、AWS クラウドネットワークのセキュリティ、可用性、アーキテクチャ設計の基礎でもあります。AWS 上にスケーラブルで可用性の高いシステムを構築することを計画している企業や個人にとって、サブネットの原則とアプリケーションを習得することは不可欠なステップです。