Public SubnetとPrivate Subnetを使ったVPCネットワークの構築

  • 2019.09.25
  • AWS
Public SubnetとPrivate Subnetを使ったVPCネットワークの構築

はじめに

今回は基本的な構成であって、少しだけ凝ったVPCネットワークを構築してみようと思います。VPC構築の練習にはちょうどいい感じのやつです。

Public subnetとPrivate subnetの二つのサブネットを作成し、Private SubnetからはPublic subnet にしかアクセスできなくします。

リージョンの選択

最初にどのリージョンを使用するか決めておきます。通常は一番近い東京を選べばいいのでしょうが、速度は気にしないから安くしたいなどの場合は海外のリージョンを選択する手もあります。

AWSマネジメントコンソールにログインしたら、 右上にあるリージョンを選択して変更しておきます。

VPCの作成

まずはVPCを作成していきます。
AWSアカウントを作成したばかりだとひとつVPCが作成されていますが、このデフォルトVPCは使わずに新規作成します。
ちなみにデフォルトVPCを削除してしまうと、AWSに新しく作成してもらわないといけなくなるため、削除しないように気をつけましょう。

AWAマネジメントコンソールからVPCを検索して開きます。

ここではVPCウィザードは使用せずに作成していきます。[VPC] を開いてください。

[VPCの作成]をクリックし、次の情報を入力します。

VPCを一度作成すると、IPv4 CIDR ブロックは変更できないため、大きめの /16 を指定します。

作成したVPCを選択し、[DNS ホスト名の編集] を選択します。

DNSホスト名の有効化にチェックを入れ、[保存] をクリックします。

インターネットゲートウェイの作成

次にPublic subnetがインターネットに出ていけるようにインターネットゲートウェイを作成します。

[インターネットゲートウェイ] から [インターネットゲートウェイの作成] をクリックします。

このように入力し [作成] をクリックします。

作成したインターネットゲートウェイを選択し、[アクション] から [VPCにアタッチ] を選択します。

作成したVPCを選択し、[アタッチ] をクリックします。

ルートテーブルの作成

Public subnetがインターネットと通信できるための経路を作成しておきます。

[ルートテーブル] から [ルートテーブルの作成] をクリックします。

このように入力し、[作成] をクリックします。

作成したルートテーブルを作成し、[ルート] タブから、 [ルートの編集] をクリックします。

[ルートの追加] をクリックし次のようなルートを追加します。
ターゲットは Internet Gateway から、先ほど作成したインターネットゲートウェイを選択します。入力できたら [ルートの保存] をクリックします。

サブネットの作成

Private subnetの作成

まずは、Private subnet を作成します。
[サブネット] を選択し、[サブネットの作成] をクリックします。

VPCは先ほど作成したVPCを選択してください。
ここではアベイラビリティーゾーンは1つにします。
Public のときも同じアベイラビリティーゾーンを選択します。

Public subnetの作成

次にPublic Subnetを作成します。

作成方法は、Private のときと同じですが、次の2つの手順をおこないます。

パブリックIPの割り当て設定

作成した Public subnet を選択し、[自動割り当てIP設定の変更] をクリックします。

[IPv4の自動割り当て] にチェックを入れ、[保存] をクリックします。これをすることで、このサブネット内に作成したEC2インスタンスにパブリックIPを割り当てることができます。
この方法の他にElastic IP を使用することもできますが、Elastic IP は課金されるため、今回のように簡単な構成の場合は、こちらのやり方で十分です。

ルートテーブルの関連付けの変更

作成したサブネット mysubnet-pub を選択し、[ルートテーブル] タブから [ルートテーブルの関連付けの編集] をクリックします。

ここで作成したルートテーブル mytable-pub に関連付けます。

ここまでで次のような構成になりました。
ネットワークの下地は完成です。あとはEC2インスタンスを作っていきます。

Public subnet にEC2 インスタンスの作成

一度、AWSマネジメントコンソールに戻り、EC2と検索して、EC2ダッシュボードを開きます。

[インスタンスの作成] をクリックします。

ここでは無料利用枠対象の Amazon Linux 2 AMI を選択します。
Amazon Linux は Redhat系のディストリビュージョンで、CentOSなどを使ったことがあれば普通に使うことができます。また、AWSに最適化されており、最初からAWS関連のパッケージなどがインストールされており使いやすいです。

次にどのスペックのEC2インスタンスを作成するかですが、ここも無料利用枠の対象のt2.microを選択します。ここでは [確認と作成] をクリックせずに、[次の手順: インスタンスの詳細の設定] をクリックします。

ここでは、VPCとサブネットの指定をします。
作成したVPC (myvpc1) とサブネット (mysubnet-pub) を選択し [確認と作成] をクリックします。

[タグの編集] をクリックします。

[クリックしてNameタグを追加します。] をクリックし

次のように入力します。

入力したら、[確認と作成] をクリックし、[起動] をクリックします。

初めてEC2インスタンスを作成する場合は、キーペアを作成する必要があります。キーペア名に分かりやすい名前を入力し、[キーペアのダウンロード] をクリックします。

Windowsの場合はTeraTerm等でこのダウンロードしたpemファイルを使用して接続します。

Macの場合はsshが標準で入っていますので、そちらを使うと簡単です。ダウンロードしたpemファイルは ~/.ssh ディレクトリに保管しておくといいです。以降は、Macで ssh を使った接続手順で説明します。

sshによる Public SubnetのEC2インスタンスへの接続

EC2インスタンスを作成してしばらくすると running になるので、その状態で接続できるようになります。作成したEC2インスタンスを選択してみましょう。このIPv4 パブリックIP に ssh 接続すればokです。

一番簡単なのは、次の方法です。

まずターミナルを起動し、.sshディレクトリに移動しておきます。

次に接続したいインスタンスを選択した状態で [接続] をクリックします。

そうすると、例として接続コマンドが表示されますので、このコマンドをコピーします。

ターミナルに貼り付ければ、そのままログインできます。

yum をアップデートしてください。と表示されているので、次のコマンドでアップデートしておくといいでしょう。

sudo yum update

Private subnetへEC2インスタンスを作成

[インスタンスの作成] をクリックしてEC2インスタンスを作成します。この辺りの手順は先ほどと同じです。

Amazon Linux2 AMIを選択します。

t2.microを選択します。

[次の手順:インスタンスの詳細の設定] をクリックします。

VPCはmyvpc1を、subnetはmysubnet-pri を選択して [確認と作成] をクリックします。

タグの編集で、Nameに myec-pri と入力します。入力したら、[確認と作成]をクリックします。

[起動] をクリックします。

キーペアは先ほど作成したので、既存のキーペアの選択にして、選択した・・・のところにチェックを入れて、[インスタンスの作成] をクリックします。

しばらくして、作成されたEC2インスタンスを選択してみましょう。

今回はパブリックIPが割り当てられていません。これではこのインスタンスにsshでアクセスすることができません。この辺りはまた今度書いていきます。

これで当初予定していた構成は作成完了です。

各EC2インスタンスのIPアドレスは、DHCPで割り当てられますので、構成図の方を変更しておきます。