
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には接続ができるようにしていきたいと思います。
②VPCを作成する
AWSマネジメントコンソールにログインします。
上部検索バーで「VPC」と入力し、サービスを開き、「VPCを作成」クリック
「VPCのみを作成」を選択
「名前タグ-オプション」 で好きな名前を入力します。 今回は"My VPC"という名前のVPCを作成します.
③サブネット作成
VPCが作成できたら次にサブネットを作成します。
VPC = あなた専用の家 と例えると
サブネット = 家の中の部屋 となります。
家の中にはリビングや寝室など、用途ごとに分かれた部屋があります。 同様に、VPC内には「サブネット」と呼ばれるネットワークの小区画があります。
サブネットには2種類に分けることができ、それぞれ役割が違います。
- パブリックサブネット:インターネットとつながる部屋
- プライベートサブネット:外の世界から隠された部屋
「サブネット作成」ボタンをクリックして 、サブネットを作成したいVPCを選択します。今回は先ほど自分で作成したVPCを選択します。
サブネット名を入力して、サブネットが存在するアベイラビリティゾーンを選択します。
IPv4 CIDR ブロックをVPC内で重複しないように設定します。 今回は「10.0.1.0/24」と入力します。
サブネットを作成をクリックします。
これをパブリックサブネットとします。
次にプライベートサブネットを作成します。
先ほどと同様にサブネットを作成していき、 プライベートサブネットには「10.0.2.0/24」を割り当てます。
これで、VPCの中にパブリックサブネット(=インターネットに繋がる部屋)とプライベートサブネットができました!
-----------------------------------------------------------------------------------------------------------------------------
補足:CIDRって何?
「10.0.1.0/24」などの表記は、「この部屋で使える住所の範囲」を意味します。
簡単に言えば、「このサブネットの中には最大253台の機器(サーバーなど)を置けるよ」という指定です。
-----------------------------------------------------------------------------------------------------------------------------
④インターネットゲートウェイ(IGW)作成
インターネットに接続させるために、インターネットゲートウェイを作成します。
この家(VPC)を外の世界(インターネット)とつなぐためには、玄関ドアが必要です。それがインターネットゲートウェイです。
名前とVPCを選択しインターネットゲートウェイ(IGW)を作成します。
IGWを[アクション] メニューで、[VPC にアタッチ]します。
⑤パブリック用のルートテーブルの作成と設定
左側の「ルートテーブル」→「作成」
- 名前を入力し、自分で作成したVPCを選択し、作成します。
- 作成後、そのルートテーブルを開いて「ルート」タブで編集
宛先:0.0.0.0/0
ターゲット:インターネットゲートウェイ
「サブネットの関連付け」タブでpublic1関連付け
*プライベートサブネットにはルートを追加しない(=インターネットには接続させないため)
[IP アドレスの自動割り当て設定] で、[パブリック IPv4 アドレスの自動割り当てを有効化]をクリックします。
これを行うことで、インターネットからアクセスできるようになる!
この設定を有効にすると、EC2インスタンス(仮想サーバー)を起動したときに、自動的に「パブリックIPアドレス」が付与されるようになります。
SSH接続用に セキュリティグループの作成します。
1.左メニュー「セキュリティグループ」→「作成」- 名前:public-sg
- VPC:my-vpc
- タイプ:SSH
- ソース:自分のIP(My IP)
本当はプライベート用にもセキュリティグループを作成したほうがいいのですが、今回は、割愛します。
⑥EC2インスタンスを配置
VPC内のPublicSubnetに、EC2インスタンス(仮想サーバー)を以下に設定で立ててみました。
セキュリティグループでは、SSH ポート22を「自分のIP」に対して許可。
インスタンスの設定は用途に合わせた設定を各々してください。
パブリックサブネット用インスタンスの作成。
「EC2」サービスへ移動 → 「インスタンスを起動」
今回は、以下のように設定:
AMI |
|
インスタンスタイプ |
|
キーペア |
|
ネットワーク |
|
サブネット |
|
パブリックIP割当 |
|
セキュリティグループ |
|
起動!
プライベート用インスタンス
「EC2」サービスへ移動 → 「インスタンスを起動」
今回は、以下のように設定:
AMI |
|
インスタンスタイプ |
|
キーペア |
|
ネットワーク |
|
サブネット |
|
パブリックIP割当 |
|
セキュリティグループ |
|
起動!
二つのインスタンスの違いは、サブネットとパブリックIPの割り当てです。
⑦接続テスト
最後にテストをして終わりましょう。
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
のようにも記述できます。
接続に失敗する場合に考えられるミスは、
- セキュリティグループのインバウンドルール設定ミス
- インターネットゲートウェイ(IGW)の設定ミス
- 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>
タイムアウトか拒否されるのが正しい(想定していた挙動)です!
これでパブリックサブネットには接続ができ、プライベートサブネットには接続できないということが確認できました!
このプライベートサブネットの中に、見られたくないデータベースや機密情報を置くことで、外部からの直接接続を拒否でき、安全に運用することが可能になります。
データベースサーバーや業務用のバックエンドアプリケーションなど、外部公開の必要がないリソースはプライベートサブネットに配置するのが最適です。
以上です。ありがとうございました。