記事一覧へ

AWS - VPC

Virtual Private Cloudについて学びましょう!

ClaudeClaude Opus 4.5による翻訳

AI生成コンテンツは不正確または誤解を招く可能性があります。

理論

VPC(仮想プライベートクラウド)

Virtual Private Cloudの略で、AWS上で論理的に独立した空間を提供してリソースを実行できるようにします。

VPCの種類

AWSにはリージョンごとにDefault VPCとCustom VPCが存在します。 Default VPCは各リージョンにデフォルトで1つずつ作成されており、 Custom VPCはリージョンごとに最大5つまで作成できます。

Subnet(サブネット)

ネットワーク領域を分割したネットワークです。 クラウド環境のVPCでもサブネットを通じてネットワークを分離して分割できます。

サブネットで予約されたIPアドレス

サブネットに割り当てたIP帯域が10.0.0.0/24の場合、10.0.0.0~10.0.0.255のうち

アドレス説明
10.0.0.0ネットワークアドレス
10.0.0.1AWS VPC仮想ルーターアドレス
10.0.0.2AWS DNSサーバーアドレス
10.0.0.3将来の新機能のために予約
10.0.0.255ネットワークブロードキャストアドレス

また、AWS SubnetにはPublic SubnetとPrivate Subnetが存在します。 Public Subnetは外部インターネットと直接通信できるネットワークであり、 Private Subnetは外部インターネットと直接通信できない閉じたネットワークです。*ただしPrivateサブネットの場合もNATゲートウェイがあれば外部との通信が可能です。

Security GroupとACL

インスタンスレベルでのセキュリティ技術はSecurity Groupです。 サブネットで使用するセキュリティ技術も存在し、それがAccess Control List(ACL)です。

実習 - Public Subnet VPC構成

実習ステップ

Public Subnet VPC作成検証
VPC作成EC2インスタンス作成
パブリックサブネット作成EC2インスタンスアクセス後、通信確認
インターネットゲートウェイ作成およびVPC接続
パブリックルーティングテーブル作成およびサブネット接続
パブリックルーティングテーブル経路追加

VPC作成

  1. VPC Consoleにアクセス -> VPC
  2. 名前:CloudPeter-VPC IPv4 CIDRブロック:10.0.0.0/16
  3. 作成確認 *後でデフォルトVPCとユーザーVPCを区別する際、Name Tagの有無を確認できます

Public Subnet作成

  1. VPC Consoleにアクセス -> サブネット
  2. VPC ID:作成したVPCを選択(CloudPeter-VPC) 名前タグ:CloudPeter-Public-SN アベイラビリティーゾーン:ap-northeast-2a IPv4 CIDRブロック:10.0.0.0/24
  3. 作成確認

インターネットゲートウェイ作成およびVPC接続

外部インターネットとの通信のためにIGWを作成し、VPCと接続します。

  1. VPC Consoleにアクセス -> インターネットゲートウェイ
  2. 名前タグ:CloudPeter-IGW
  3. IGWとVPCを接続 使用可能なVPC:作成したVPCを選択(CloudPeter-VPC)
  4. 接続確認

ここまで進めると、インターネットと通信するためのIGWがVPCと接続され、サブネットも作成された状態です。 ただし、まだ外部インターネットへのアクセスは不可能です。VPCの仮想ルーティングテーブルに外部インターネットへのルーティング経路がないためです。

パブリックルーティングテーブル作成およびサブネット接続

  1. VPC Consoleにアクセス -> ルーティングテーブル
  2. 名前タグ:CloudPeter-Public-RT VPC:作成したVPCを選択(CloudPeter-VPC)
  3. 作成確認およびサブネット接続 サブネット接続をクリック サブネット接続の編集をクリック 以前作成したサブネットを選択

パブリックルーティングテーブル経路追加

  1. VPC Console -> ルーティングテーブル
  2. CloudPeter-Public-RTを選択
  3. ルーティングタブに移動
  4. 宛先:0.0.0.0/0 ターゲット:インターネットゲートウェイ -> igw-xxxを選択
  5. 適用確認

すべての設定が完了しました。 実際に通信が可能か検証しましょう。

EC2インスタンス作成

通信確認のためにEC2インスタンスを作成します。

  1. EC2 Consoleにアクセス -> インスタンス

  2. インスタンスの起動をクリック

  3. 名前:Public-EC2 OSイメージ:Amazon Machine Image(AMI)、64bit インスタンスタイプ:T2.micro キーペア:いつも使用しているもの

  4. ネットワーク設定 -> 編集

  5. VPC:作成したVPCを選択(CloudPeter-VPC) サブネット:作成したSubnetを選択(CloudPeter-Public-SN) パブリックIP自動割り当て:有効化

  6. セキュリティグループ:default

  7. 作成確認

EC2インスタンスアクセス後、通信確認

パブリックIPでSSH接続後 ping google.com pingが通れば成功!

実習 - Private Subnet VPC構成

実習ステップ

Private Subnet追加検証
プライベートサブネット作成EC2インスタンス作成
NATゲートウェイ作成EC2インスタンスアクセス後、通信確認
プライベートルーティングテーブル作成およびサブネット接続パブリックサブネットとプライベートサブネットの通信フロー
プライベートルーティングテーブル経路追加

Private Subnet作成

  1. VPC Consoleにアクセス -> サブネット

  2. サブネット作成 VPC ID:作成したVPCを選択(CloudPeter-VPC) 名前タグ:CloudPeter-Private-SN アベイラビリティーゾーン設定:ap-northeast-2c IPv4 CIDRブロック:10.0.1.0/24

  3. 作成確認

NATゲートウェイ作成

  1. VPC Consoleにアクセス -> NATゲートウェイ

  2. 名前:CloudPeter-NAT サブネット:パブリックサブネットを選択(CloudPeter-Public-SN) Elastic IP割り当てをクリック!

  3. 作成確認

プライベートルーティングテーブル作成およびサブネット接続

  1. VPC Consoleにアクセス -> ルーティングテーブル

  2. 名前タグ:CloudPeter-Private-RT VPC:作成したVPCを選択(CloudPeter-VPC)

  3. プライベートルーティングテーブルを選択

  4. ルーティング編集をクリック

  5. プライベートサブネット(CloudPeter-Private-SN)を選択

プライベートルーティングテーブル経路追加

  1. VPC Consoleにアクセス -> ルーティングテーブル

  2. プライベートルーティングテーブルを選択

  3. ルーティング編集をクリック 以下のように編集(NATゲートウェイを選択)

EC2インスタンス作成

  1. EC2 Consoleにアクセス -> インスタンス

  2. 名前:Private-EC2 ネットワーク:作成したVPCを選択(CloudPeter-VPC) サブネット:作成したプライベートサブネット(CloudPeter-Private-SN)

  3. ネットワーク設定

  4. 高度な詳細

#!/bin/bash
(
echo "qwe123"
echo "qwe123"
) | passwd --stdin root
sed -i "s/^PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config
sed -i "s/^#PermitRootLogin yes/PermitRootLogin yes/g" /etc/ssh/sshd_config
service sshd restart

上記のユーザーデータはパスワード方式でSSHにアクセスできるようにする設定です。 EC2インスタンスが起動時に読み込んで適用します。

  1. 作成確認

Private-EC2のネットワークを確認すると、パブリックIPが付与されていないことが確認できます。

EC2インスタンスアクセス後、通信確認

  1. Public-EC2のIPでSSH接続

  2. SSH接続した状態でPrivate-EC2のプライベートIPv4アドレスでSSH接続

  3. NATを利用してping google.comにpingが通るか確認

*NATの場合、内部から外部への通信は可能ですが、外部からPrivate Subnetへのアクセスは不可能です

リソース削除

  1. EC2インスタンスの終了(EC2 -> インスタンス -> インスタンス選択 -> アクション -> インスタンスの状態 -> 終了)
  2. NATゲートウェイの削除(VPC -> NATゲートウェイ -> アクション -> NATゲートウェイの削除) ⚠️ NATゲートウェイが削除されるまで待機
  3. Elastic IPの削除(VPC -> Elastic IP -> Actions -> Elastic IPアドレスのリリース)
  4. VPCの削除(VPC -> VPC -> アクション -> VPCの削除)
作成日:
更新日:

前の記事 / 次の記事