Day 2: クラウドネットワーキングの基本概念を理解する
皆さん、こんにちは!「実践!AWSネットワーク構築・運用30日チャレンジ」のDay 2へようこそ!
昨日は、このチャレンジの概要と、AWSアカウント作成の重要性についてお話ししました。今日は、いよいよAWSネットワークの核心部分、クラウドネットワーキングの基本概念に深く切り込んでいきます。
AWSでインフラを構築する上で、ネットワークの概念を理解することは非常に重要です。特に、AWSのネットワークの中心であるVPC (Virtual Private Cloud) をいかに設計し、活用するかが、あなたのクラウドインフラのセキュリティ、可用性、そしてパフォーマンスを左右すると言っても過言ではありません。
AWSネットワークの全体像を俯瞰する
AWSのネットワークサービスは多岐にわたりますが、まずは以下の主要なコンポーネントを頭に入れておきましょう。これらがどのように連携し、クラウド上で安全なネットワーク環境を構築しているのかを理解することが、AWSネットワークマスターへの第一歩です。
- VPC (Virtual Private Cloud): あなた専用の分離された仮想ネットワーク空間
- サブネット (Subnet): VPC内部のIPアドレス範囲の分割
- インターネットゲートウェイ (Internet Gateway - IGW): VPCとインターネット間の接続ポイント
- ルートテーブル (Route Table): ネットワークトラフィックの経路を決定するルール集
- セキュリティグループ (Security Group): インスタンスレベルのファイアウォール
- ネットワークACL (Network Access Control List - NACL): サブネットレベルのファイアウォール
これらの概念は、単独で機能するのではなく、互いに密接に連携し合って一つのネットワークを形成します。
1. VPC (Virtual Private Cloud) の理解
AWSのネットワークを語る上で、VPCは最も根幹となるサービスです。VPCは、AWSクラウド内に構築する「あなた専用の分離された仮想ネットワーク空間」と考えると分かりやすいでしょう。
あたかもオンプレミス環境で物理的なネットワーク機器(ルーター、スイッチなど)を配置して独自のネットワークを構築するように、AWS上ではVPCを作成することで、他のAWSユーザーのネットワークから完全に隔離された、論理的に独立したネットワーク環境を手に入れることができます。
VPCの重要な特徴
- 論理的隔離: 他のAWSアカウントから完全に分離されており、あなたのアカウント内のリソースだけがVPC内に存在します。これにより、セキュリティとプライバシーが確保されます。
-
IPアドレス空間の自由な定義: VPCを作成する際に、プライベートIPアドレス範囲(例:
10.0.0.0/16
や172.16.0.0/16
、192.168.0.0/16
など)を自由に指定できます。これにより、オンプレミスネットワークとの接続時にもIPアドレスの重複を避けることができます。 - アベイラビリティゾーン (AZ) をまたいだ利用: 一つのVPCは、複数のアベイラビリティゾーン(データセンターの論理的な集合体)にまたがって構築できます。これにより、高い可用性を持つシステムを設計することが可能です。
- ネットワークコンポーネントの柔軟な配置: サブネット、ルートテーブル、インターネットゲートウェイ、VPN接続など、様々なネットワークコンポーネントをVPC内に自由に配置し、独自のネットワークトポロジーを構築できます。
VPCの作成イメージ
以下は、最もシンプルなVPCのイメージです。
+-------------------------------------------------------------+
| VPC (e.g., 10.0.0.0/16) |
| (あなたのプライベートな仮想ネットワーク空間) |
| |
| +-----------------------------------------------------+ |
| | アベイラビリティゾーン A | |
| | (物理的に分離されたデータセンター群) | |
| | | |
| | +--------------------------+ | |
| | | サブネット A | | |
| | | (例: 10.0.1.0/24) | | |
| | | | | |
| | +--------------------------+ | |
| | | |
| +-----------------------------------------------------+ |
| |
| +-----------------------------------------------------+ |
| | アベイラビリティゾーン B | |
| | (物理的に分離されたデータセンター群) | |
| | | |
| | +--------------------------+ | |
| | | サブネット B | | |
| | | (例: 10.0.2.0/24) | | |
| | | | | |
| | +--------------------------+ | |
| | | |
| +-----------------------------------------------------+ |
| |
+-------------------------------------------------------------+
この図からわかるように、VPCの中に複数のサブネットを作成し、それらのサブネットを異なるアベイラビリティゾーンに配置することで、耐障害性の高いシステムを構築する基盤を築くことができます。
2. サブネット (Subnet) の理解
VPCが大きな仮想ネットワーク空間であるならば、サブネットはそのVPC内でIPアドレス範囲をさらに細かく分割したものです。オンプレミス環境のVLANのような役割を果たすと考えると良いでしょう。
サブネットの重要な特徴
- アベイラビリティゾーンへの関連付け: 各サブネットは、必ず一つのアベイラビリティゾーン(AZ)に関連付けられます。 これは非常に重要なポイントです。例えば、東京リージョン(ap-northeast-1)には複数のAZ(ap-northeast-1a, 1c, 1dなど)が存在し、それぞれ物理的に独立したデータセンター群を指します。異なるAZにサブネットを配置することで、あるAZに障害が発生しても、他のAZのサブネットでサービスを継続できるようなシステム(多AZ構成)を構築できます。
-
IPアドレス範囲の指定: VPCのCIDRブロック(例:
10.0.0.0/16
)から、サブネットごとにさらに小さなCIDRブロック(例:10.0.1.0/24
、10.0.2.0/24
など)を割り当てます。 -
パブリックサブネットとプライベートサブネット:
- パブリックサブネット: インターネットゲートウェイへのルーティングを持つサブネット。インターネットから直接アクセス可能なリソース(Webサーバーなど)を配置します。
- プライベートサブネット: インターネットゲートウェイへのルーティングを持たないサブネット。データベースサーバーやアプリケーションサーバーなど、インターネットから直接アクセスさせたくないリソースを配置します。セキュリティ上、非常に重要です。
サブネットの設計思想
サブネットの設計は、システム全体の可用性とセキュリティに大きく影響します。
- 高可用性: 異なるAZに複数のサブネットを作成し、各サブネットに冗長なリソースを配置することで、特定のAZの障害がシステム全体に影響することを防ぎます。
- セキュリティ: インターネットから直接アクセスさせたくないリソース(データベースなど)は必ずプライベートサブネットに配置し、パブリックサブネットにあるリソースからのみアクセスできるようにします。
3. インターネットゲートウェイ (Internet Gateway - IGW) の理解
インターネットゲートウェイ (IGW) は、VPCとインターネットの間で通信を可能にするための「VPCアタッチ型のゲートウェイ」です。
IGWをVPCにアタッチし、かつそのVPC内のサブネットのルートテーブルにインターネットへのルート(通常は 0.0.0.0/0
)を追加することで、そのサブネット内のインスタンスがインターネットと通信できるようになります。
IGWの重要な特徴
- スケーラブルで高可用性: AWSによって完全に管理されており、スケーリングや可用性について心配する必要はありません。
- 1つのVPCに1つ: 1つのVPCには1つのIGWしかアタッチできません。
- パブリックIPアドレスの関連付け: IGWを介してインターネットと通信するためには、VPC内のEC2インスタンスなどにパブリックIPアドレス(Elastic IPアドレスまたは自動割り当てパブリックIP)が関連付けられている必要があります。
IGWがないとどうなる?
IGWがVPCにアタッチされていなければ、そのVPC内のリソースはインターネットと直接通信できません。これはプライベートなネットワーク環境を構築する上で重要ですが、外部へのアクセスが必要な場合はIGWが必須となります。
4. ルートテーブル (Route Table) の理解
ルートテーブルは、VPC内のサブネットから出ていくネットワークトラフィックの「経路を決定するルール集」です。各サブネットは必ず1つのルートテーブルに関連付けられます。
ルートテーブルの重要な特徴
-
宛先とターゲット: 各ルートエントリは「宛先(Destination)」と「ターゲット(Target)」で構成されます。
- 宛先: トラフィックが向かうIPアドレス範囲(CIDRブロック)。
- ターゲット: その宛先へのトラフィックをルーティングする場所(例: インターネットゲートウェイ、NATゲートウェイ、VPCピアリング接続、他のインスタンスなど)。
- ローカルルート: デフォルトで、VPCのCIDRブロックへのルートが自動的に作成され、VPC内のリソース間の通信はVPC内部でルーティングされます。
-
インターネットへのルート: インターネットへのトラフィック(
0.0.0.0/0
)をIGWにルーティングするエントリを追加することで、そのサブネットはパブリックサブネットになります。 - プライベートサブネットのルートテーブル: プライベートサブネットのルートテーブルには、インターネットゲートウェイへのルートは含めません。これにより、インターネットから直接アクセスされることを防ぎます。
ルートテーブルの動作例
-
パブリックサブネットのルートテーブル例:
-
10.0.0.0/16
(VPC CIDR) ->local
(VPC内部) -
0.0.0.0/0
(インターネット) ->igw-xxxxxxxx
(インターネットゲートウェイ)
-
-
プライベートサブネットのルートテーブル例:
-
10.0.0.0/16
(VPC CIDR) ->local
(VPC内部) - (インターネットへの直接ルートなし)
-
5. セキュリティグループ (Security Group - SG) の理解
セキュリティグループは、AWSで最も頻繁に利用される「インスタンスレベルの仮想ファイアウォール」です。EC2インスタンスなどのリソースに関連付けられ、そのインスタンスへのインバウンド(受信)トラフィックとアウトバウンド(送信)トラフィックを制御します。
セキュリティグループの重要な特徴
- ステートフル: セキュリティグループはステートフルです。つまり、インバウンドルールで許可されたトラフィックに対する応答トラフィックは、アウトバウンドルールで明示的に許可されていなくても自動的に許可されます。例えば、Webサーバーが外部からのHTTPリクエストを受信した場合、そのHTTPリクエストに対する応答は、アウトバウンドルールに関わらず自動的に許可されます。
- 許可のみを定義: セキュリティグループには「許可 (Allow)」ルールのみを設定できます。「拒否 (Deny)」ルールは設定できません(ネットワークACLとは対照的)。
- インスタンスに適用: 1つまたは複数のセキュリティグループを1つのEC2インスタンスに関連付けることができます。また、1つのセキュリティグループを複数のインスタンスに関連付けることも可能です。
- デフォルトは全て拒否: デフォルトでは、全てのインバウンドトラフィックが拒否されます。必要なポートとプロトコル(例: SSH (22番), HTTP (80番), HTTPS (443番))を明示的に許可する必要があります。アウトバウンドはデフォルトで全て許可されます。
セキュリティグループのルール例
Webサーバー用のセキュリティグループ:
-
インバウンドルール:
- タイプ: HTTP (80番ポート), ソース:
0.0.0.0/0
(どこからでも) - タイプ: HTTPS (443番ポート), ソース:
0.0.0.0/0
(どこからでも) - タイプ: SSH (22番ポート), ソース:
あなたのオフィスIPアドレス
(管理用アクセス)
- タイプ: HTTP (80番ポート), ソース:
-
アウトバウンドルール:
- タイプ: 全てのトラフィック, 宛先:
0.0.0.0/0
(全て許可 - デフォルト)
- タイプ: 全てのトラフィック, 宛先:
6. ネットワークACL (Network Access Control List - NACL) の理解
ネットワークACL (NACL) は、セキュリティグループとは異なり、「サブネットレベルの仮想ファイアウォール」です。サブネットに出入りする全てのトラフィックを制御します。
NACLの重要な特徴
- ステートレス: NACLはステートレスです。インバウンドルールで許可されたトラフィックに対する応答トラフィックも、アウトバウンドルールで明示的に許可する必要があります。例えば、HTTPリクエスト(インバウンド)を許可した場合、その応答(アウトバウンド)も明示的に許可するルールが必要です。
- 許可と拒否を定義可能: NACLでは「許可 (Allow)」ルールと「拒否 (Deny)」ルールの両方を設定できます。
-
ルール番号の評価: ルールは番号の昇順(例: 100, 200, 300...)で評価され、最初に一致したルールが適用されます。デフォルトでは、すべてのトラフィックを拒否するワイルドカードルール (
*
Deny) が最後に設定されています。 - サブネットに適用: 1つのNACLを複数のサブネットに関連付けることができますが、1つのサブネットには1つのNACLしか関連付けられません。
- 追加のセキュリティ層: セキュリティグループと合わせて、多層的なセキュリティ対策を実現できます。
セキュリティグループ vs. NACL の比較
特徴 | セキュリティグループ (SG) | ネットワークACL (NACL) |
---|---|---|
適用レベル | インスタンスレベル | サブネットレベル |
ステート | ステートフル (応答は自動許可) | ステートレス (入出力両方で許可必要) |
ルール | 許可 (Allow) のみ | 許可 (Allow) と 拒否 (Deny) |
評価順序 | 全てのルールが評価される | ルール番号の昇順で評価、最初の一致 |
デフォルト | インバウンド全拒否、アウトバウンド全許可 | インバウンド全許可、アウトバウンド全許可 (新規作成時は全拒否) |
アタッチ | 複数SGを1インスタンスに可能 | 1サブネットに1NACLのみ |
通常、セキュリティグループでアプリケーションレベルのきめ細かい制御を行い、NACLでサブネット全体の広範なセキュリティポリシーを適用するという使い分けをします。NACLは、VPCの作成時にデフォルトで作成され、新しいサブネットもデフォルトのNACLに関連付けられます。デフォルトNACLは全てのインバウンド・アウトバウンドトラフィックを許可するため、必要に応じてカスタマイズが必要です。
AI時代に求められるネットワークの考え方
AIや機械学習のワークロードは、従来のWebサービスとは異なるネットワーク要件を持つことが少なくありません。
- 大量のデータ転送: 学習データやモデルの推論結果など、ギガバイトからテラバイト級のデータ転送が頻繁に発生します。高スループット、低レイテンシのネットワークが求められます。
- GPUインスタンスとの連携: AI/MLの計算にはGPUインスタンスが使われることが多く、これらのインスタンス間の高速通信が重要になります。
- データレイクとの接続: S3などのデータレイクから大量の学習データを効率的に取得するためのネットワーク経路が不可欠です。
- プライベート接続の重要性: 機密性の高いデータを取り扱う場合、インターネットを経由せず、AWS PrivateLinkやVPC Peeringなどを活用したプライベートな接続がセキュリティ上推奨されます。
これらの要件を満たすために、VPC、サブネット、ルートテーブルといった基本的なコンポーネントをどのように組み合わせるかが、AIインフラの性能とセキュリティに直結します。
本日のまとめと次へのステップ
今日は、AWSネットワークの最も基本的ながら非常に重要な概念であるVPC、サブネット、インターネットゲートウェイ、ルートテーブル、セキュリティグループ、そしてネットワークACLについて学びました。
これらのコンポーネントがどのように機能し、連携し合うかを理解することは、AWS上で堅牢でセキュアなネットワーク環境を構築するための出発点となります。特に、論理的隔離としてのVPC、可用性のためのAZを跨いだサブネット配置、ルーティングの肝となるルートテーブル、そして多層防御のためのセキュリティグループとNACLの役割をしっかり押さえておきましょう。
明日のDay 3では、「AWSアカウントとVPCの作成:セキュアな基盤を築く」と題し、いよいよ実際に手を動かして、AWSマネジメントコンソールからVPCと基本的なサブネットを作成する手順を解説します。今日学んだ概念が、実際にどのようにAWS上で構成されるのかを体験することで、理解がより一層深まるはずです。
本記事が「分かりやすい!」「役に立った!」と感じたら、ぜひ 「いいね」👍 をお願いします!皆さんのリアクションが、毎日の記事執筆の大きなモチベーションになります!