2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

実践!AWSネットワーク構築・運用30日チャレンジ: Day 2

Posted at

Day 2: クラウドネットワーキングの基本概念を理解する

皆さん、こんにちは!「実践!AWSネットワーク構築・運用30日チャレンジ」のDay 2へようこそ!

昨日は、このチャレンジの概要と、AWSアカウント作成の重要性についてお話ししました。今日は、いよいよAWSネットワークの核心部分、クラウドネットワーキングの基本概念に深く切り込んでいきます。

AWSでインフラを構築する上で、ネットワークの概念を理解することは非常に重要です。特に、AWSのネットワークの中心であるVPC (Virtual Private Cloud) をいかに設計し、活用するかが、あなたのクラウドインフラのセキュリティ、可用性、そしてパフォーマンスを左右すると言っても過言ではありません。

Day 2_ クラウドネットワーキングの基本概念を理解する - visual selection.png

AWSネットワークの全体像を俯瞰する

AWSのネットワークサービスは多岐にわたりますが、まずは以下の主要なコンポーネントを頭に入れておきましょう。これらがどのように連携し、クラウド上で安全なネットワーク環境を構築しているのかを理解することが、AWSネットワークマスターへの第一歩です。

  1. VPC (Virtual Private Cloud): あなた専用の分離された仮想ネットワーク空間
  2. サブネット (Subnet): VPC内部のIPアドレス範囲の分割
  3. インターネットゲートウェイ (Internet Gateway - IGW): VPCとインターネット間の接続ポイント
  4. ルートテーブル (Route Table): ネットワークトラフィックの経路を決定するルール集
  5. セキュリティグループ (Security Group): インスタンスレベルのファイアウォール
  6. ネットワーク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/16172.16.0.0/16192.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/2410.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アドレス (管理用アクセス)
  • アウトバウンドルール:
    • タイプ: 全てのトラフィック, 宛先: 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上で構成されるのかを体験することで、理解がより一層深まるはずです。


本記事が「分かりやすい!」「役に立った!」と感じたら、ぜひ 「いいね」👍 をお願いします!皆さんのリアクションが、毎日の記事執筆の大きなモチベーションになります!


2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?