【AWS VPC】Amazon VPCを利用して、WEB三層アーキテクチャに沿ったVPCを構築しよう!無料利用枠(微課金)を利用してAWSを学習する!

【AWS VPC】Amazon VPCを利用して、WEB三層アーキテクチャに沿ったVPCを構築しよう!無料利用枠(微課金)を利用してAWSを学習する!

今回は、「Amazon VPC(Amazon Virtual Private Cloud)を利用して、プライベートネットワークを構築」する方法を紹介していきます。
プライベートネットワークとは、自由に設定できる閉じられた空間であり、サービスをある一塊で区切ったりすることが可能になります。

学習に利用した参考書はこちら!

著:大澤 文孝, 著:玉川 憲, 著:片山 暁雄, 著:今井 雄太
¥2,673 (2023/10/26 13:35時点 | Amazon調べ)

Amazon Kindle Unlimitedもおすすめ!

  • 技術書をたくさん読みたい!
  • 色々技術を学びたい!
初回30日間の無料体験があるので、どのような参考書があるか確認してみよう!
目次

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:3000HTTP/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:3000HTTP/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:3000HTTP/HTTPS(S3)
TCP:5432(Postgres)
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:3000HTTP/HTTPS(S3)
TCP:5432(Postgres)
DBサーバーTCP:5432
運用管理用TCP:3000
SSH
HTTP/HTTPS

運用管理のセキュリティグループを作成

最後に、運用管理のセキュリティグループを作成していきます。
こちらも先ほどまとめた要件に沿って作成してください。

セキュリティグループインバウンドルールアウトバウンドルール
WEBサーバーHTTP/HTTPS(0.0.0.0/0:どこからでもOK)TCP:3000(APサーバーに合わせる)
APサーバーTCP:3000HTTP/HTTPS(S3)
TCP:5432(Postgres)
DBサーバーTCP:5432
運用管理TCP:3000
SSH
HTTP/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を初めて利用する方のために、様々な記事を書いていますので、ぜひ参考にしてもらえると嬉しいです。

学習に利用した参考書はこちら!

著:大澤 文孝, 著:玉川 憲, 著:片山 暁雄, 著:今井 雄太
¥2,673 (2023/10/26 13:35時点 | Amazon調べ)

Amazon Kindle Unlimitedもおすすめ!

  • 技術書をたくさん読みたい!
  • 色々技術を学びたい!
初回30日間の無料体験があるので、どのような参考書があるか確認してみよう!
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

クラウド関連を勉強するために始めたブログです。
未経験の技術のため、広い心を持って見ていただけると嬉しく思います。
情報セキュリティを勉強するために、「Hack Lab. 256」もあります。
情報セキュリティに興味がある方は、ぜひ覗いて見てください!

目次