【AWS入門】ゼロからVPCを作ってみる
初めましての方は初めまして。バックエンドエンジニアのmackyです!
最近はモンハンクロスをやっています。好きな武器はグラン=ダオラです。
今回はVPCを作成していきましょう。
VPCとは何か
Amazon Virtual Private Cloud(Amazon VPC)の略で、仮想的にプライベートな空間を作成して、その中でAWSのいろんなサービスを起動しているように振舞わせるものです。
なぜ必要なのか
通常、サーバを構築する際には、このサーバとこのサーバが繋がっていて、このサーバはここからしかアクセスできないといったようなネットワーク構成を考える必要がありますが、AWSではネットワーク構成を考えなくてもサーバを立ち上げることができます。
しかし、それだとセキュリティ面などに不安が残ります。例えば、あるDBサーバがあったとして、VPCを設定しなければ、どこからでもアクセスすることができてしまいます。これをWEBサーバからのみアクセス可能にしたりするのがVPCの役割です。
VPCを実際に作ってみる
早速作っていきましょう。構成として、VPCの中にサブネットが二つあり、一つにアプリケーションサーバを置き、もう一つにはDBサーバを置き、DBサーバへはアプリケーションサーバからしかアクセスできないように作ります。
まずは、AWSの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を選択します。
今、作成したルートテーブルを選択して、「ルート」のタブを選択し「編集」をクリック。
別ルートの追加を押して、0.0.0.0/0(インターネットへの送信先)を入力。ターゲットに先ほどのゲートウェイを指定。保存します。
サブネットとルートテーブルの紐付け
ルートテーブルを作成しても、サブネットと紐付けがないと使用できません。
サイドバーからサブネットを選択してサブネットの一覧を表示させて、smv_test_sub1を表示させます。ルートテーブルのタブをクリック。先ほど作成したルートテーブルを選択して保存します。
これで、smv_test_sub1はインターネットからアクセス可能になりました。
smv_test_sub2は、デフォルトでアクセス不可になっています。
終わりに
いかがでしょうか。基本的なVPCは作成できたかと思います。
次回以降、VPCの中にインスタンスを置いていきます。
閲覧ありがとうございました!