Day 3: AWSアカウントとVPCの作成:セキュアな基盤を築く
皆さん、こんにちは!「実践!AWSネットワーク構築・運用30日チャレンジ」のDay 3へようこそ!
昨日は、AWSネットワークの基盤となるVPC、サブネット、インターネットゲートウェイ、ルートテーブル、セキュリティグループ、NACLといった主要な概念を学びました。今日は、いよいよ実際にAWSのマネジメントコンソールを使って、あなた専用のVPCと基本的なサブネットを作成し、セキュアなネットワーク基盤を築くための第一歩を踏み出します。
概念の理解から実践への移行は、学習効果を飛躍的に高めます。ぜひ、この記事を読みながらご自身のAWSアカウントで手を動かしてみてください!
1. 本日のゴールとアーキテクチャイメージ
本日のゴールは、以下の構成を持つ基本的なVPCを作成することです。
- 1つのVPC: 全てのAWSリソースを配置する仮想ネットワーク空間。
- 2つのパブリックサブネット: インターネットから直接アクセス可能なWebサーバーなどを配置する場所。高可用性のために異なるアベイラビリティゾーン (AZ) に配置します。
- 1つのインターネットゲートウェイ (IGW): VPCとインターネットを接続するためのゲートウェイ。
- 1つのルートテーブル: パブリックサブネットからインターネットへトラフィックをルーティングするための設定。
この構成は、Webサーバーなどのインターネット公開リソースをホストする際の、最も基本的なセキュアなインフラのひな形となります。
想定するアーキテクチャ
+------------------------------------------------------------------------------------------------+
| VPC (例: 10.0.0.0/16) |
| |
| +-------------------+ |
| | Internet Gateway | |
| +--------+----------+ |
| | |
| | (ルートテーブル経由) |
| | |
| +-----------------------------------------------------------------------------------------+ |
| | アベイラビリティゾーン (AZ) A (ap-northeast-1a) | |
| | | |
| | +---------------------------------------+ | |
| | | パブリックサブネット A (例: 10.0.1.0/24) | |
| | | (Webサーバなどインターネット公開リソース) | |
| | +---------------------------------------+ | |
| | | |
| +-----------------------------------------------------------------------------------------+ |
| |
| +-----------------------------------------------------------------------------------------+ |
| | アベイラビリティゾーン (AZ) C (ap-northeast-1c) | |
| | | |
| | +---------------------------------------+ | |
| | | パブリックサブネット C (例: 10.0.2.0/24) | |
| | | (Webサーバなどインターネット公開リソース) | |
| | +---------------------------------------+ | |
| | | |
| +-----------------------------------------------------------------------------------------+ |
| |
+------------------------------------------------------------------------------------------------+
2. AWSマネジメントコンソールへのログイン
まずはAWSマネジメントコンソールにログインしましょう。
ルートユーザーではなく、Day 1で作成したIAMユーザー(管理者権限を持つユーザー)でログインしてください。 ルートユーザーはMFAを設定し、金庫にしまっておくイメージです。
3. VPCの作成ステップバイステップ
それでは、実際にVPCを作成していきます。
3.1. VPCウィザードの利用
AWSはVPCの作成を簡単にするためのウィザードを提供しています。これを使ってみましょう。
- AWSマネジメントコンソールにログイン後、検索バーで「VPC」と入力し、VPCサービスを開きます。
- 左側のナビゲーションペインから「VPC ダッシュボード」を選択し、「VPCを作成」ボタンをクリックします。
- VPCの作成オプションが表示されます。今回は「VPC など」を選択します。これは、VPCだけでなく、サブネットやインターネットゲートウェイ、ルートテーブルなどの関連リソースも一緒に作成してくれる便利なオプションです。
3.2. 設定項目の入力
「VPC など」を選択すると、いくつかの設定項目が表示されます。以下のように入力してください。
- 名前タグの自動生成: チェックを入れると、各リソースに分かりやすい名前が自動で付与されます。
-
IPv4 CIDR ブロック:
10.0.0.0/16
を入力します。-
ポイント: これはあなたのVPCが使用するプライベートIPアドレス範囲です。
/16
は約65,536個のIPアドレスが使用可能であることを意味します。他のネットワークと重複しない範囲を選びましょう。
-
ポイント: これはあなたのVPCが使用するプライベートIPアドレス範囲です。
-
アベイラビリティゾーン (AZ) の数:
2
を選択します。- ポイント: 高可用性のために、リソースを異なるAZに分散配置するのがAWSのベストプラクティスです。今回はパブリックサブネットを2つのAZに作成します。
-
パブリックサブネットの数:
2
を選択します。- ポイント: Webサーバーなど、インターネットからアクセスさせるリソースを配置するサブネットです。各AZに1つずつ作成されます。
-
プライベートサブネットの数:
0
を選択します。- ポイント: 今回はシンプルな構成なのでプライベートサブネットは作成しませんが、通常はデータベースなど直接インターネットに公開したくないリソースのために作成します。明日はプライベートサブネットも作成してみましょう。
-
NAT ゲートウェイ: 「なし」を選択します。
- ポイント: プライベートサブネットからインターネットへのアウトバウンド通信を許可する際に使用します。今回はプライベートサブネットを作成しないため不要です。
-
VPC エンドポイント: 「なし」を選択します。
- ポイント: AWSサービス(S3, DynamoDBなど)へのプライベートな接続を可能にするサービスです。今回は不要です。
-
DNS オプション: デフォルトのチェックが入っていることを確認します。
- DNS ホスト名を有効にする: EC2インスタンスにパブリックDNSホスト名を割り当てるために必要です。
- DNS 解決を有効にする: VPC内部でDNS解決を可能にするために必要です。
設定項目を入力したら、「VPC を作成」ボタンをクリックします。
3.3. VPC作成の確認
VPCの作成には数分かかる場合があります。「正常に作成されました」というメッセージが表示されたら完了です。
作成が完了したら、以下のリソースが作成されていることを確認しましょう。
-
VPC:
- 左側ナビゲーションペインで「VPC」をクリック。
- 新しいVPCがリストに表示されていることを確認します(名前タグが付いているはずです)。CIDRブロックが
10.0.0.0/16
になっていることも確認しましょう。
-
サブネット:
- 左側ナビゲーションペインで「サブネット」をクリック。
- 2つのパブリックサブネットが作成されていることを確認します。それぞれのサブネットが異なるAZに属していることを確認しましょう(例:
ap-northeast-1a
,ap-northeast-1c
など)。 - IPアドレスの範囲も、VPCのCIDRブロックから適切に割り当てられているか確認します(例:
10.0.1.0/24
,10.0.2.0/24
など)。
-
インターネットゲートウェイ (IGW):
- 左側ナビゲーションペインで「インターネットゲートウェイ」をクリック。
- 新しく作成されたIGWが、あなたのVPCに「Attached(アタッチ済み)」になっていることを確認します。
-
ルートテーブル:
- 左側ナビゲーションペインで「ルートテーブル」をクリック。
- 新しく作成されたルートテーブルが1つあることを確認します(名前タグが付いているはずです)。
- このルートテーブルが、作成した両方のパブリックサブネットに関連付けられていることを確認します。
- ルートタブを開き、以下の2つのルートが存在することを確認します。
-
10.0.0.0/16
(VPC CIDR) ->local
-
0.0.0.0/0
(インターネット) -> 作成されたIGWのID (igw-xxxxxxxxx
) -
ポイント: この
0.0.0.0/0
へのルートが、このルートテーブルに関連付けられたサブネットを「パブリックサブネット」にする重要な設定です。
-
これで、あなたのAWSアカウントに、基本的ながらセキュアなネットワーク基盤が構築されました!おめでとうございます!
4. (発展)VPC作成後の追加設定と確認
VPCウィザードは便利ですが、もう少し手動で確認・設定できる箇所もあります。
4.1. デフォルトのセキュリティグループの確認
VPCを作成すると、各VPCに1つだけデフォルトのセキュリティグループが作成されます。
- VPCサービスの左側ナビゲーションペインで「セキュリティグループ」をクリック。
- 作成したVPCに属する「default」という名前のセキュリティグループを探します。
- このデフォルトのセキュリティグループは、インバウンドルールが全て拒否、アウトバウンドルールが全て許可になっています。また、同じセキュリティグループ内のインスタンス間の通信は許可されています。
- ポイント: これは非常に重要なデフォルト設定です。新しいインスタンスを作成する際は、このデフォルトSGを使うか、あるいは新たにSGを作成して適切にアクセスを許可する必要があります。
4.2. デフォルトのネットワークACL (NACL) の確認
同様に、各VPCには1つだけデフォルトのネットワークACLが作成されます。
- VPCサービスの左側ナビゲーションペインで「ネットワークACL」をクリック。
- 作成したVPCに属するデフォルトのNACLを探します。
- デフォルトのNACLは、インバウンドとアウトバウンドの両方で全てのトラフィックが許可されています(ルール番号100)。そして、最終行にはワイルドカードの拒否ルール (
*
DENY) が存在します。- ポイント: デフォルトNACLは非常に開放的な設定なので、より厳密なネットワークセキュリティを求める場合は、カスタムNACLを作成してサブネットに関連付けることを検討する必要があります。
5. セキュリティを意識したVPC設計のヒント
Day 1とDay 2で触れたように、外資系AI企業ではセキュリティが最優先事項です。今日のVPC作成だけでも、以下の点を意識しましょう。
- 最小特権の原則: IAMユーザーで操作すること、そしてそのIAMユーザーにも必要最小限の権限のみを与えることを常に意識してください。
-
VPCのIPアドレス計画:
10.0.0.0/16
はよく使われるCIDRですが、もし将来的にオンプレミスネットワークや他のVPCと接続する可能性があるなら、IPアドレスの重複を避けるために慎重な計画が必要です。 - セキュリティグループの管理: 今後EC2インスタンスなどを立ち上げる際に、セキュリティグループを適切に設定することが非常に重要です。特定のIPアドレスからのSSH接続のみ許可するなど、厳格なルールを適用しましょう。
- デフォルトリソースの理解: AWSが自動で作成するデフォルトのセキュリティグループやNACLの設定を理解し、必要に応じて変更または代替リソースを使用する意識が重要です。
6. トラブルシューティングのヒント
もしVPC作成がうまくいかない場合や、想定通りにリソースが作成されない場合は、以下の点を確認してみてください。
- エラーメッセージの確認: コンソールに表示されるエラーメッセージをよく読み、原因を特定しましょう。
- リソース制限: AWSアカウントには各サービスのリソース制限(クォータ)があります。まれに、VPCの作成上限などに達している場合があります。
- IAM権限: ログインしているIAMユーザーにVPC関連リソースを作成する権限が不足している可能性があります。
- 入力ミス: CIDRブロックの入力ミスや、AZの選択ミスなど、単純な入力ミスも原因となることがあります。
本日のまとめと次へのステップ
今日は、AWSのVPCウィザードを使って、基本的なVPC、パブリックサブネット、インターネットゲートウェイ、そしてルートテーブルを作成しました。これにより、インターネットに接続可能なセキュアな仮想ネットワーク基盤がAWS上に構築されました。
これで、あなたのクラウドジャーニーのネットワーク基盤が整いました。このVPCの中に、今後様々なAWSリソースを配置していくことになります。
明日のDay 4では、「サブネット設計の極意:可用性とスケーラビリティを確保」と題して、今日のシンプルなVPCに、さらにプライベートサブネットを追加し、より実践的な多層アーキテクチャを構築する方法を深掘りします。セキュリティと高可用性を両立させるためのサブネット設計のベストプラクティスについて学びましょう。
この記事が役に立った方、VPCの作成が無事にできた方、ぜひ「いいね」👍で教えてください!