Skip to main content

Amazon VPC とは?

こんにちは!新入社員の浮田です。 

AWSで実際にVPC(Virtual Private Cloud)を作ってみたので、その手順をまとめていきます! 

AWSでのインフラ構築において、VPC(Virtual Private Cloud)は非常に重要な役割を果たします。AWSの多くのサービスは、このVPC上に展開されるため、VPCを理解し、適切に設定することは、より効率的で安全なシステム設計に欠かせません。 

 


目次 

VPCってなに? 

VPCを作成 

③サブネット作成 

インターネットゲートウェイ(IGW)作成 

パブリック用のルートテーブルの作成と設定 

EC2インスタンス作成 

⑦接続テスト 

 


①VPCってなに? 構築する前に簡単におさらい

VPC(Virtual Private Cloud)=インターネット上の自分専用のネットワーク空間のこと! 

他人が勝手に入れない「自分専用の家」と考えるとわかりやすいです。 専用の空間を作ることで、外からのアクセスを制限したりして、セキュリティを高めます。 

今回は下の図のように構成をし、外部からアクセスする際、プライベートサブネットのEC2には接続できずに、パブリックサブネットのEC2には接続ができるようにしていきたいと思います。 

GetImage-2

 


②VPCを作成する 

AWSマネジメントコンソールにログインします。 

上部検索バーで「VPC」と入力し、サービスを開きVPCを作成クリック 

VPCのみを作成」を選択 

「名前タグ-オプション」 で好きな名前を入力します。 今回は"My VPC"という名前のVPCを作成します. 

GetImage (1)-2

 


③サブネット作成 

VPCが作成できたら次にサブネットを作成します。 

VPC = あなた専用の家 と例えると 

サブネット = 家の中の部屋 となります。 

 家の中にはリビングや寝室など、用途ごとに分かれた部屋があります。 同様に、VPC内には「サブネット」と呼ばれるネットワークの小区画があります。 

 サブネットには2種類に分けることができ、それぞれ役割が違います。 

  • パブリックサブネット:インターネットとつながる部屋 
  • プライベートサブネット:外の世界から隠された部屋 

「サブネット作成」ボタンをクリックして 、サブネットを作成したいVPCを選択します。今回は先ほど自分で作成したVPCを選択します。 

 サブネット名を入力して、サブネットが存在するアベイラビリティゾーンを選択します。 

IPv4 CIDR ブロックをVPC内で重複しないように設定します。 今回は「10.0.1.0/24」と入力します。 

サブネットを作成をクリックします。

GetImage (2)-2

これをパブリックサブネットとします。 

次にプライベートサブネットを作成します。 

先ほどと同様にサブネットを作成していき、 プライベートサブネットには10.0..0/24」を割り当てます。 

GetImage (3)-2

これで、VPCの中にパブリックサブネット(=インターネットに繋がる部屋)とプライベートサブネットができました! 

----------------------------------------------------------------------------------------------------------------------------- 

補足:CIDRって何? 

「10.0.1.0/24」などの表記は、「この部屋で使える住所の範囲」を意味します。 
簡単に言えば、「このサブネットの中には最大253台の機器(サーバーなど)を置けるよ」という指定です。 

----------------------------------------------------------------------------------------------------------------------------- 

 


④インターネットゲートウェイ(IGW)作成 

 インターネットに接続させるために、インターネットゲートウェイを作成します。 

 この家(VPC)を外の世界(インターネット)とつなぐためには、玄関ドアが必要です。それがインターネットゲートウェイです。 

 名前とVPCを選択しインターネットゲートウェイ(IGW)を作成します。 

IGWを[アクション] メニューで、[VPC にアタッチ]します。 

GetImage (4)-2

 


⑤パブリック用のルートテーブルの作成と設定 

左側の「ルートテーブル」→「作成 

  • 名前を入力し、自分で作成したVPCを選択し、作成します。 
  • 作成後、そのルートテーブルを開いて「ルート」タブで編集 

宛先0.0.0.0/0 

ターゲットインターネットゲートウェイ 

サブネットの関連付け」タブでpublic1関連付け 

GetImage (5)-1

*プライベートサブネットにはルートを追加しない(=インターネットには接続させないため) 

[IP アドレスの自動割り当て設定] で、[パブリック IPv4 アドレスの自動割り当てを有効化]をクリックします。 

これを行うことで、インターネットからアクセスできるようになる! 

この設定を有効にすると、EC2インスタンス(仮想サーバー)を起動したときに、自動的に「パブリックIPアドレス」が付与されるようになります。 

GetImage (6)-1

SSH接続用に セキュリティグループの作成します。 

1.左メニュー「セキュリティグループ」→「作成 
  • 名前public-sg 
  • VPCmy-vpc 
2.インバウンドルールを追加: 
  • タイプ:SSH 
  • ソース:自分のIP(My IP) 

本当はプライベート用にもセキュリティグループを作成したほうがいいのですが、今回は、割愛します。

 


⑥EC2インスタンスを配置

VPC内のPublicSubnetに、EC2インスタンス(仮想サーバー)を以下に設定で立ててみました。 

セキュリティグループでは、SSH ポート22を「自分のIP」に対して許可。 

インスタンスの設定は用途に合わせた設定を各々してください。 

パブリックサブネット用インスタンスの作成。 

「EC2」サービスへ移動 → 「インスタンスを起動」 

今回は、以下のように設定: 

AMI 

  • Amazon Linux 2 

インスタンスタイプ 

  • t2.micro 

キーペア 

  • my-key.pem 

ネットワーク 

  • my-vpc 

サブネット 

  • public1 

パブリックIP割当 

  • 有効 

セキュリティグループ 

  • public-sg 

起動! 

 GetImage (7)-1

プライベート用インスタンス 

「EC2」サービスへ移動 → 「インスタンスを起動」 

今回は、以下のように設定: 

AMI 

  • Amazon Linux 2 

インスタンスタイプ 

  • t2.micro 

キーペア 

  • my-key.pem 

ネットワーク 

  • my-vpc 

サブネット 

  • private1 

パブリックIP割当 

  • 無効 

セキュリティグループ 

  • public-sg 

起動! 

二つのインスタンスの違いは、ブネットパブリックIPの割り当てです。 

GetImage (9)-1 

 


⑦接続テスト 

最後にテストをして終わりましょう。 

SSHコマンドをパワーシェルなどで実行することで接続テストができます。 

# パブリックインスタンス(成功する) 

ssh -i my-key.pem ec2-user@<パブリックインスタンスのIP> 

ssh -i "C:\Users\Downloads\keyname.pem" ec2-user@ec2-x-x-x-x~~~.amazonaws.com 

のようにも記述できます。

接続に失敗する場合に考えられるミスは、 

  1. セキュリティグループのインバウンドルール設定ミス
  2. インターネットゲートウェイ(IGW)の設定ミス
  3. SSHキーの設定ミス

が見落としやすいポイントです。確認してみてください。 

私も初めて触ったときは、セキュリティグループとインターネットゲートウェイの設定を間違えてました。

 

接続に成功すると 

The authenticity of host 'xx.xx.xx.xx (xx.xx.xx.xx)' can't be established. 

Are you sure you want to continue connecting (yes/no/[fingerprint])? 

みたいな画面が初回は出るので、[yes]と入力すればログイン成功です! 

# プライベートインスタンス(失敗するはず) 

ssh -i my-key.pem ec2-user@<プライベートIP>   

タイムアウトか拒否されるのが正しい(想定していた挙動)です! 

これでパブリックサブネットには接続ができ、プライベートサブネットには接続できないということが確認できました! 

 

このプライベートサブネットの中に、見られたくないデータベースや機密情報を置くことで、外部からの直接接続を拒否でき、安全に運用することが可能になります。 

データベースサーバーや業務用のバックエンドアプリケーションなど、外部公開の必要がないリソースはプライベートサブネットに配置するのが最適です。 

 

以上です。ありがとうございました。