今回は、「Amazon VPC(Amazon Virtual Private Cloud)を利用して、プライベートネットワークを構築」する方法を紹介していきます。
プライベートネットワークとは、自由に設定できる閉じられた空間であり、サービスをある一塊で区切ったりすることが可能になります。
学習に利用した参考書はこちら!
Amazon Kindle Unlimitedもおすすめ!
VPCを作成しよう
まずは、VPCを作成していきます。
VPCを作成するにあたり、サブネットやWAFなどの知識が必要になります。この辺の詳しい説明は、省略しますので、別途勉強してもらえればと思います。
VPCの一覧を表示
現時点でどのようなVPCがあるのか確認しておきましょう。
検索欄で、「VPC」と検索して一番最初のサービスを選択します。
VPCダッシュボードが表示されると思いますので、メニューから「VPC」を選択します。
現在利用しているVPCが表示されていると思います。
ルートアカウントを作成すると同時に作成される「/16」が存在していると思います。
VPCを作成
先ほどのVPCの一覧画面から、「VPCを作成」を選択します。
VPCの作成画面が開きますので、下記の情報を入力しましょう。
- 作成するリソース
-
VPCのみ(サブネットは、後で構築します)
- 名前タグ
-
任意
- IPv4 CIDR ブロック
-
IPv4 CIDRの手動入力
- IPv4 CIDR
-
192.168.0.0/20(/16~/24で指定する)
- IPv6 CIDR ブロック
-
IPv6 CIDR ブロックなし
- テナンシー
-
デフォルト
正常に作成されると下記のような画面になると思います。
これでVPCの作成は、完了です。
サブネットを作成しよう
続いては、先ほどVPCを作成するときに作らなかった、サブネットを作成していきます。
今回は説明上、バラバラに作成しましたが、今後は先ほどの画面で同時に作って問題ありません。
サブネットの一覧を表示
まずは、現在のサブネットの一覧を表示しましょう。
VPCのメニューから「サブネット」を選択すると、表示されると思います。
デフォルトでは、先ほどと同様ルートアカウント作成時に作成されるサブネットが2つ登録されていると思います。
サブネットの作成
先ほどのサブネット一覧が面から、「サブネットを作成」を選択します。
まずは、パブリックのサブネットを作成します。
入力は下記のようにしてください。
- VPC ID
-
先ほど作成したVPC
- サブネット名
-
任意(パブリックだと分かるようにしておくといい)
- アベイラビリティーゾーン
-
米国西部(北カリフォルニア)/ us-west-1a(なんでもOK)
- IPv4 CIDR ブロック
-
192.168.1.0/24
サブネットの作成が完了したら、新しくサブネットが追加されていると思います。
同じ要領で、private-aとpublic-c、private-cもそれぞれ作成しておきましょう。
それぞれのIPv4 CIDRとアベイラビリティーゾーンの割り当てだけ注意してください。
- public-a
-
192.168.1.0/24
米国西部(北カリフォルニア)/us-west-1a
- private-a
-
192.168.3.0/24
米国西部(北カリフォルニア)/us-west-1a
- public-c
-
192.168.2.0/24
米国西部(北カリフォルニア)/us-west-1c
- private-c
-
192.168.4.0/24
米国西部(北カリフォルニア)/us-west-1c
ルートテーブルを作成しよう
続いては、ルートテーブルの作成です。
ネットワークを超えて接続するためには、ルーター(経路情報を持っているルーティングテーブル)が必要になります。
そのルーターの役割をするのが、ルートテーブルになります。
ルートテーブルを作成することで、あたかも同じネットワークに存在するかのように接続することを可能にしてくれます。
ルートテーブルの一覧を表示
まずは、現在のルートテーブルを確認しておきましょう。
VPCのメニューから「ルートテーブル」を選択します。
VPCやサブネットと同様に、ルートアカウント作成時に作成されているルートテーブルが2つ存在していると思います。
ルートテーブルを作成
ルートテーブルを実際に作成していきます。
今回は、先ほどのサブネットに合わせてpublicのルートテーブルとprivateのルートテーブルを作成します。
先ほどの一覧画面から「ルートテーブルを作成」を選択します。
ではルートテーブルを設定していきます。
内容はシンプルで、名前と作成したVPCを選択するだけです。
- 名前
-
任意(publicとprivateを識別できるようにしておきましょう。)
- VPC
-
先ほど作成したVPCを選択
こんな感じでルートテーブルが作成できていればOKです。
同じ要領でprivateのルートテーブルも作成します。
下記のようにpublicとprivateが作成されていればOKです!
ルートテーブルにサブネットを関連付け
続いては、ルートテーブルとサブネットに関連付けをします。
publicのルートテーブルを選択して、「サブネットの関連付け」>「サブネットの関連付けを編集」を選択します。
サブネットの関連付けを編集画面が表示されるので、作成したpublicのサブネットを選択します。
明示的なサブネットの関連付けに正しく表示されて入れば関連付けはOKです。
同じ要領でprivateの関連付けもしておきましょう。
セキュリティグループを作成しよう
続いては、セキュリティグループを作成していきます。
セキュリティグループは、ファイアウォールに相当するものになっており、通信のフィルタリングを行う機能です。
セキュリティグループの一覧を表示
毎回のことながら、まずは現在のセキュリティグループの状態を確認しておきましょう。
VPCのメニューから、セキュリティグループを選択します。
こちらもデフォルトで2つセキュリティグループが登録されている状態だと思います。
ここに、セキュリティグループを追加していきます。
作成するセキュリティグループをおさらい
セキュリティグループを作成する前に、どのようなセキュリティグループを作成するかおさらいしておきます。
まずは、簡単に要件をまとめましょう。
基本的な構成として、Webサーバーがあり、APサーバ、DBサーバーとなるWeb三層アーキテクチャが一般的なかと思います。
なので、セキュリティグループとしてはこんな感じになります。
セキュリティグループ | インバウンドルール | アウトバウンドルール |
---|---|---|
WEBサーバー | HTTP/HTTPS(0.0.0.0/0:どこからでもOK) | TCP:3000(APサーバーに合わせる) |
APサーバー | TCP:3000 | HTTP/HTTPS(S3) TCP:5432(Postgres) |
DBサーバー | TCP:5432 | – |
運用管理用 | TCP:3000 SSH | HTTP/HTTPS |
WEBサーバーのセキュリティグループを作成
まずは、WEBサーバー用のセキュリティグループを作成していきます。
先ほどの一覧画面から、「セキュリティグループを作成」を選択します。
先ほど整理した通りに、インバウンドルールとアウトバウンドルールを作成していきます。
まだ、APサーバーのセキュリティグループが作られていないので、後で設定するようにします。
セキュリティグループ | インバウンドルール | アウトバウンドルール |
---|---|---|
WEBサーバー | HTTP/HTTPS(0.0.0.0/0:どこからでもOK) | TCP:3000(APサーバーに合わせる) |
APサーバー | TCP:3000 | HTTP/HTTPS(S3) TCP:5432(Postgres) |
DBサーバー | TCP:5432 | – |
運用管理用 | TCP:3000 SSH | HTTP/HTTPS |
APサーバーのセキュリティグループを作成
続いては、APサーバーのセキュリティグループを作成します。
まずは、S3のプレフィックスリストを確認しておきましょう。
VPCのメニューから「マネージドプレフィックスリスト」を選択します。
モザイクをかけてしまっていますが、プレフィックスリスト名が「com.amazonaws.us-west-1.s3」のプレフィックスリストをメモしておきましょう。
セキュリティーグループを作成する際に必要になります。
では、先ほどまとめた要件に沿って作成していきます。
インバウンドルールのソースには、先ほど作成したWEBサーバーのセキュリティグループを設定します。
アウトバウンドルールの送信先は、先ほど確認したS3のマネージドプレフィックスリストを設定します。DBサーバーに関しては、まだセキュリティグループを作成していないので、適当に設定しておきましょう。(後で変更します。)
セキュリティグループ | インバウンドルール | アウトバウンドルール |
---|---|---|
WEBサーバー | HTTP/HTTPS(0.0.0.0/0:どこからでもOK) | TCP:3000(APサーバーに合わせる) |
APサーバー | TCP:3000 | TCP:5432(Postgres) | HTTP/HTTPS(S3)
DBサーバー | TCP:5432 | – |
運用管理用 | TCP:3000 SSH | HTTP/HTTPS |
DBサーバーのセキュリティグループを作成
DBサーバーのセキュリティグループを作成していきます。
こちらも先ほどまとめた要件に沿って作成するだけでOKです。
アウトバウンドルールはないので、インバウンドルールだけ設定してください。ソースは、APサーバーのセキュリティグループになります。
セキュリティグループ | インバウンドルール | アウトバウンドルール |
---|---|---|
WEBサーバー | HTTP/HTTPS(0.0.0.0/0:どこからでもOK) | TCP:3000(APサーバーに合わせる) |
APサーバー | TCP:3000 | TCP:5432(Postgres) | HTTP/HTTPS(S3)
DBサーバー | TCP:5432 | – |
運用管理用 | TCP:3000 SSH | HTTP/HTTPS |
運用管理のセキュリティグループを作成
最後に、運用管理のセキュリティグループを作成していきます。
こちらも先ほどまとめた要件に沿って作成してください。
セキュリティグループ | インバウンドルール | アウトバウンドルール |
---|---|---|
WEBサーバー | HTTP/HTTPS(0.0.0.0/0:どこからでもOK) | TCP:3000(APサーバーに合わせる) |
APサーバー | TCP:3000 | TCP:5432(Postgres) | HTTP/HTTPS(S3)
DBサーバー | TCP:5432 | – |
運用管理 | SSH | TCP:3000HTTP/HTTPS |
未作成で設定できなかった場所を設定し直す
先ほど、未作成で設定できなかったアウトバウンドルールを設定し直していきます。
まずは、WEBサーバーのセキュリティグループを開きます。
アウトバウンドルールを選択して、「アウトバウンドルールを編集」を選択します。
設定されていたアウトバウンドルールは一度削除して、新しくアウトバウンドルールを追加します。
送信先が、APサーバーのセキュリティグループになるようにしましょう。
消さずに更新しようとすると、エラーになるので注意してください。
続いて、APサーバーのセキュリティグループのアウトバウンドルールも変更しましょう。
PostgreSQLの送信先を、DBサーバーにします。
これでセキュリティグループの設定も完了です。
動作確認まですると大変なのでしませんが、設定したところ以外から接続しようとしても弾かれるようになっています。
今後は、環境に合わせてサーバーを構築していくことになります。
インターネットゲートウェイを作成しよう
VPCは閉域網なので、VPCだけでは外に出ることができません。
なので、VPCがインターネットに接続するための出入り口になるインターネットゲートウェイを作成していきます。
インターネットゲートウェイの一覧を表示
まずは、現在のインターネットゲートウェイを確認しておきましょう。
VPCのメニューから「インターネットゲートウェイ」を選択します。
モザイクばかりでほとんど見えないと思いますが、こちらもデフォルトで1つインターネットゲートウェイが作成されている状態になっていると思います。
インターネットゲートウェイの作成
インターネットゲートウェイを作成していきましょう。
インターネットゲートウェイの作成は大したことはないですね、名前を設定するだけです。
作成してもまだ、Detachedだと思います。
このインターネットゲートウェイに最初に作成したVPCをアタッチしていきます。
先ほど作成したインターネットゲートウェイを選択して、アクション>VPCにアタッチを選択します。
ここで最初に作成したVPCを選択して、インタネットゲートウェイにVPCをアタッチします。
ルートテーブルの編集
先ほどの手順でVPCにインターネットゲートウェイをアタッチできたのですが、これで終わりではありません。
次に、ルートテーブルでpublicにインターネットゲートウェイを通るように設定していきます。
privateは、インターネットに接続しないので、必ずpublicの方を選択してください。
選択したら、「ルート>ルートを編集」を選択します。
「ルートを追加」を選択して、送信先は「0.0.0.0/0」でどこでもOK、ターゲットを先ほど作成したインターネットゲートウェイにします。
これで、publicのみインターネットに接続できるように設定ができました。
VPCの設定としては、これで完了になります。
最後に
今回は、「Amazon VPC(Amazon Virtual Private Cloud)を利用して、プライベートネットワークを構築」をやってみました。
詳しく説明するとかなり長くなってしまうような場所は、説明を省いているところもあり、難しいこともあったと思います。
今後はこの環境を使って、それぞれのサーバーを構築していきますので、徐々に理解していってください。
他にもAWSを初めて利用する方のために、様々な記事を書いていますので、ぜひ参考にしてもらえると嬉しいです。
学習に利用した参考書はこちら!
Amazon Kindle Unlimitedもおすすめ!