AWS VPC周りの設定を自分でやってみる (Part.1)

2021年9月20日

はじめに

本記事ではAWSのVPCの作成を行い、それに関連した必要なルートテーブルの設定やインターネットGWの作成・設定方法について説明します。

今まで特に困ることがなかったのでデフォルトで用意されているVPCを利用していたのですが、それではVPCに関連した設定としてどのようなものがあるのか、また、Private Subnetを利用した時にどうやってインターネット側と通信させるのか、といったことがわかりませんでした。これらを正しく理解するために手を動かしていきたいと思います。

実施方法

作ろうとしているもの

1つの新しいVPCと1つのパブリックサブネット、1つのプライベートサブネットを作成します。また、パブリックサブネットとプライベートサブネットにそれぞれEC2インスタンスを設置し、NATゲートウェイをパブリックサブネットに設置することでプライベートサブネットにあるEC2からもインターネットアクセスを許可します。

以下がシステムの構成図となります。

VPCの作成

AWSのVPCのサービスのメニューからVPC一覧を表示し、VPCの作成をクリックします。ここにはそこまで設定項目はありませんので、以下のように設定してVPCを作成します。

VPCのIPv4のネットワークアドレスは10.0.0.0/16としました。

VPCの作成が完了すると以下のようになりますが、DNSホスト名の項目が無効になっています。こちらの設定はVPC内でパブリックIPを持つインスタンスにDNS名を取得させるかどうかの設定となっています。

後で動作の違いを確認するため、こちらは一旦このままで他の設定を続けます。

サブネットの作成

サブネットのメニューから新規のサブネットを作成していきます。ここでの注意点はVPCで作成したIPv4のネットワークアドレスのネットワークに含まれるよう、サブネットを作成する必要がある点となります。

今回は以下のように2つサブネットを作成します。

①パブリックサブネット

  • サブネット名:my-new-gear-1a-public
  • IPv4 : 10.0.10.0/24
  • AZ : ap-northeast-1a

②プライベートサブネット

  • サブネット名:my-new-gear-1c-public
  • IPv4 : 10.0.20.0/24
  • AZ : ap-northeast-1c

作成されたサブネットを確認するとパブリックIPv4アドレスを自動割り当ての項目が’いいえ’になっています。この場合、EC2インスタンス作成時に自動割り当てパブリックIPの項目を「サブネット設定を使用」としないとインスタンスのIPアドレスの割り当てが行われません。EC2インスタンス作成時に 自動割り当てパブリックIPの項目を「有効」とすれば問題ありません。

ルートテーブルの作成

VPCを作成した時点で1つは作成されているようなので、こちらをパブリックサブネットに関連付けます。ルートテーブルのメニューのアクションタブから設定が可能です。

続けて、ルートテーブルの作成をクリックしてサブネット用のルートテーブルを作成しておきます。

こちらはプライベートサブネットに関連付けておきます。

ルートテーブルの設定はNATゲートウェイの作成した後に行います。

インターネットGWの設定

次はインターネットGWの作成を行います。インターネットゲートウェイのメニューからインターネットゲートウェイの作成を選択します。

作成後はアクションのメニューからインターネットGWをVPCにアタッチして下さい。少し混乱しがちですが、この作業を実際にやってみることで、インターネットGWがサブネットではなくVPCに紐づいているものだと記憶に定着することかと思います。(私はしました)

テスト:この時点でパブリックサブネットにEC2を起動してみる

EC2インスタンスを起動してみると、パブリック IPv4アドレスは割り当てられているものの、パブリック IPv4 DNS名が割り当てられていません。

一度、インスタンスを停止し、VPCの設定でDNSホスト名を有効にします。

ここでEC2インスタンスを再起動すると、はい、パブリック IPv4 DNS名が割り当てられていることが確認出来ました。さて、アクセス確認していきます。

TeratermからSSHで割り当てられたDNS名でアクセスを行ったところ、アクセスは出来ませんでした。理由は作成したサブネットに紐づいているルートテーブルの宛先がインターネットGWとなっていないから、ですね。

ルートテーブルにインターネットGW宛てのルートを作成する

VPCサービスのルートテーブルメニューから、パブリックサブネット用に作成したルートテーブルを選択し、アクションメニューから「ルートを編集」をクリックして下さい。

ここで以下のようにインターネットGW宛てのルートを作成して下さい。これで設定は完了…のはずです。

テスト:もう一度パブリックサブネットにEC2を起動してみる

今度は無事にアクセスが出来たかと思います。もしアクセスが出来なかった場合はインスタンス作成時のセキュリティグループの設定と、アクスルための秘密鍵に誤りがないかをご確認下さい。

さいごに

ここまででパブリックサブネットにEC2インスタンスを作成するところまでの作業が完了しました。次回はパブリックサブネット内に作成したEC2/RDSインスタンスの構築作業を行います。

もし手順などでご不明点がありましたらお気軽にお問合せ下さい。

※続きの記事はこちら