初めましての方は初めまして。バックエンドエンジニアのmackyです!
最近はモンハンクロスをやっています。好きな武器はグラン=ダオラです。
今回はVPCを作成していきましょう。

VPCとは何か

Amazon Virtual Private Cloud(Amazon VPC)の略で、仮想的にプライベートな空間を作成して、その中でAWSのいろんなサービスを起動しているように振舞わせるものです。

なぜ必要なのか

通常、サーバを構築する際には、このサーバとこのサーバが繋がっていて、このサーバはここからしかアクセスできないといったようなネットワーク構成を考える必要がありますが、AWSではネットワーク構成を考えなくてもサーバを立ち上げることができます。

しかし、それだとセキュリティ面などに不安が残ります。例えば、あるDBサーバがあったとして、VPCを設定しなければ、どこからでもアクセスすることができてしまいます。これをWEBサーバからのみアクセス可能にしたりするのがVPCの役割です。

VPCを実際に作ってみる

VPCの構成

早速作っていきましょう。構成として、VPCの中にサブネットが二つあり、一つにアプリケーションサーバを置き、もう一つにはDBサーバを置き、DBサーバへはアプリケーションサーバからしかアクセスできないように作ります。

まずは、AWSのVPCを選択して、VPCの作成を押します
VPCの作成

VPCの作成画面

  • ネームタグ:任意のものでOKです。仮にsmv_testにしときます
  • CIDRブロック:10.0.0.0/16と入力します。
  • テナンシー:ハードウェアを占有(物理的に確保)するかどうかです。デフォルトだとしません。

入力して「作成」のボタンを押すと、このように作成されたかと思います。
これがVPCの雛形です。

サブネットの作成

次にサブネットを押してサブネットの作成を押します。
サブネットの作成

  • ネームタグ:これも任意の名前でOKです。smv_test_sub1という名前にします。
  • VPC:先ほど作成したVPCを選択します。
  • アベイラビリティゾーン:AWSのtokyoリージョンの中で、さらに細かい分類があって、それをアベイラビリティゾーンと言います。各ゾーンは物理的に別のデータセンターにあります。ap-northeast-1aを選択します。
  • CIDRブロック:サブネットマスクを指定します。10.0.0.0/24としておきます。

これで「作成」を押すとサブネットが作られます。
こちらはアプリケーションサーバを置いて、インターネット通信をする用なので、public subnetと呼びます。

もう一つサブネットを作成します。
こちらは、DBを置いてアプリケーションから参照する用なので、
インターネット通信をしません。そのためprivate subnetと呼びます。

  • ネームタグ:smv_test_sub2
  • VPC:先ほど作成したVPCを選択します。
  • アベイラビリティゾーン:ap-northeast-1aを選択します。
  • CIDRブロック:10.0.1.0/24としておきます。別の場所ですよということで数値を変えておきます。

VPCにInternet Gatewayを追加

インターネットゲートウェイとは、VPCをインターネットにつなぐためのルーターのようなものです。
左のサイドバーからインターネットゲートウェイを選択してインターネットゲートウェイの作成を押します。
インターネットゲートウェイの作成

ネームタグに任意の名前を入力してから「作成」を押します。
VPCにアタッチ

作成されたものを選択して、「VPCにアタッチ」を押します。
先ほどのVPCを選択して「アタッチ」を押します。
これで、VPCとインターネットゲートウェイが接続されました。

ルートテーブルを作成する

サイドバーからルートテーブルを選択してルートテーブルの作成を押します。
ルートテーブルを作成する
ネームタグに任意のものを入力。VPCは今回作成したVPCを選択します。

インターネットへの送信先を入力

今、作成したルートテーブルを選択して、「ルート」のタブを選択し「編集」をクリック。
別ルートの追加を押して、0.0.0.0/0(インターネットへの送信先)を入力。ターゲットに先ほどのゲートウェイを指定。保存します。

サブネットとルートテーブルの紐付け

サブネットとルートテーブルの紐付け

ルートテーブルを作成しても、サブネットと紐付けがないと使用できません。
サイドバーからサブネットを選択してサブネットの一覧を表示させて、smv_test_sub1を表示させます。ルートテーブルのタブをクリック。先ほど作成したルートテーブルを選択して保存します。
これで、smv_test_sub1はインターネットからアクセス可能になりました。
smv_test_sub2は、デフォルトでアクセス不可になっています。

終わりに

いかがでしょうか。基本的なVPCは作成できたかと思います。
次回以降、VPCの中にインスタンスを置いていきます。
閲覧ありがとうございました!

あわせて読みたい記事