【AWS入門】VPCとは?3階層ネットワークを構築するには

aws

こんにちは!

エンジニアのオオイシ(@mako_0705)です。

今回は、AWS VPC(Virtual Private Cloud)の構築方法について初学者向けに記事にしていきたいと思います。

VPCはAWSのコンピューティングを使う上では避けては通れない基礎知識なので、ネットワークがちょっと苦手なあなたにも分かり安さ優先で紹介していきます!

AWS VPC(Virtual Private Cloud)とは?

VPC(Virtual Private Cloud)とは、読んで字のごとくAWS上で作成する仮想ネットーワークを作成するためのサービスです。

一般的なネットーワークを構築する場面では、

  • データベースはインターネットから直接接続出来ないセキュアの場所に配置したい
  • WEBサーバーは80ポートのみ受け付けたい
  • ロードバランサーはインターネットと直接に通信できるようにしたい

などがあると思いますが、これを単にクラウド上にプライベートなネットーワークを構築するのがVPCです。

VPCの説明はAWSの次のスライドを見ると大方のことがわかるので一読しましょう。

では、VPCを使って簡単な3階層の基礎的なネットーワークを作成して行こうと思います。

ネットワークの構成

今回は、一般的な3階層の次の構成の仮想ネットワークを構築していきます。

public-subnetはインターネットに直接接続するのでDMZ(非武装地帯)として、ロードバランサーを配置することを想定します。

web1-subnet, web2-subnet db-subnet はセキュアなネットワークとしてインターネットからの直接なアクセスはさせないようにします。

のサブネットはアプリケーションサーバーやHTTPサーバー、DBサーバーを配置することを想定します。

名前 CIDRブロック 主なサービス アベイラビリティーゾーン
public-subnet 192.168.0.0/24 ELB ap-northeast-1a
app1-subnet 192.168.1.0/24 EC2 ap-northeast-1a
app2-subnet 192.168.2.0/24 EC2 ap-northeast-1c
db-subnet 192.168.10.0/24 RDS ap-northeast-1a

CIDRブロックアベイラビリティーゾーンについても後ほど解説していきます。

VPCを作成してみた

先ほど紹介した3階層からなるVPCを設定していきます。

VPCの作成

VPCダッシュボード[Create VPC]をクリックして次のように入力します。

[Create]をクリックすれば、VPCの作成が完了です。

ちなみにCIDR(サイダー)とは、IPアドレス32ビットのネットワーク部とホスト部を区切るための技術で、ネットワーク部の範囲を、

  • 192.168.0.0/16

のように、左から16ビットをネットワーク部として取り扱うことを表現します。

192.168.0.0/16 とした場合は192.168.0.0 内をプライベートネットワークとして、AWS内に構築することになります。

実際には、VPCで定義したネットワーク内にさらにサブネットを作成して、そのIPアドレスの範囲でAWSサービスを構築していくこととなります。

事項ではそのサブネットの作成を作成していきます。

サブネットの作成

続いて、サブネットを作成していきます。

メニューからサブネットを選択します。

[サブネットの作成]をクリックします。

public-subnetを作成するために次のように入力しました。

[作成]をクリックします。

その他も同様に次の表を参考に作成していきましょう。

名前 CIDRブロック 主なサービス アベイラビリティーゾーン
public-subnet 192.168.0.0/24 ELB ap-northeast-1a
app1-subnet 192.168.1.0/24 EC2 ap-northeast-1a
app2-subnet 192.168.2.0/24 EC2 ap-northeast-1c
db-subnet 192.168.10.0/24 RDS ap-northeast-1a

作成が完了すると次のようになっているはずです。

以上でネットワークの作成が完了しました。

このままではインターネットに接続することができないため、事項で設定していきましょう。

インターネットゲートウェイの作成

インターネットに接続するためには、インタネットゲートウェイ(仮想ルータ)をVPCに設置します。

[インターネットゲートウェイの作成]をクリックしましょう。

Nameタグ(分かりやすさのための名前づけ)にapp-igwを入力して[作成]をクリックします。

作成したVPC(app-vpc)に関連づけするために、アクション -> VPC アタッチを選択します。

関連づけするVPCを選択します。

[アタッチ]をクリックします。

このように状態がattachedになれば、VPCとの関連づけがされている状態です。

以上で、インターネットに接続するための出入り口が作成できたので、事項では、通信の経路を設定するためのルートテーブルを作成していきましょう。

ルートテーブル(経路情報)の作成

左のメニューからルートテーブルを選択して[Create Route Table]をクリックします。

Name Tagはapp-igw-rtbとしました。

[Create]をクリックします。

作成したルートテーブルに、先ほど作成したインターネットゲートウェイ(app-igw)への経路情報を作成します。

[ルートの追加]をクリックして次のようにインターネットゲートウェイゲートウェイへの経路を追加します。

[Save routes]をクリックします。

インターネットへの接続設定が完了しました。

サブネットへのルーティング設定

インターネットへの接続設定が完了したので、これをサブネットに関連づけします。

インターネットに直接接続サブネットはpublic-subnetなのでこれに関連づけます。

ルートテーブル(経路情報)を関連づけします。

[保存]をクリックします。

ルートテーブルを確認すると、プライベートネット(192.168.0.0)以外の通信はインナーネットへ流される通信経路が作成されたことが確認できました。

VPC作成以降にやるべきこと

以上でAWSでの仮想ネットワーク(VPC)の作成が完了しました。

ネットーワークの基礎的な環境は作成できましたが、実施にサービスを立ち上げるためには、EC2やRDSなどのサービスを設置する必要があります。

これらは別の機会に紹介していきますが、もしも急ぎの場合や困っている時は、メールやツイッターなどで問い合わせてみてくださいね!