2016/12/07

AWSでWebサービスを構築03 VPCの構築

準備は整ったので、これから実際にサーバクラスタ構築していく。

大まかな流れとしては、
  1. AWS VPCで仮想ネットワークを構築する。
  2. AWS EC2でサーバを構築する。
  3. AWS RDSでデータベースを構築する。
と進める。

今回はVPCの設定から行う。
※VPCに関しては、AWSに登録したアカウント時からデフォルトのVPCとして作成されているものが既にある。
これとは別に各項目を作成していく。



VPCの作成


VPCのショートカットからページを開くと、VPCのサマリーが確認できる。
なにやら作成ウィザードがあるみたいだけど、せっかくだから一つ一つ設定していく。
一通り経験したら大体内容がわかると思うので、次からはウィザードの方が手早く作成できるかもしれない。

画面左部の「VPC」を選択すると、VPCの管理画面が表示される。
画面上部の「VPCの作成」ボタンを選択すると、作成ダイアログが開く。



ネームタグは適当な名前で。サービス名 + "-vpc"とかでいいんじゃないかな。

CIDRというのは簡単に説明するとIPアドレスの範囲を示す値。
通常のIPv4と同じく255までの数値4つと、固定部分を上位からのビット数で記載する。
例えば192.168.0.0/16だったら、16ビットなので上位の2つの数字(192と168)が固定で、それ以外は自由の設定されるアドレス範囲を表す。
「CIDRブロック」の項目では、この仮想ネットワーク内のローカルIPの範囲をCIDRで指定する。
このネットワークでは、10.0.0.0/16という範囲を設定する。

最後にテナンシーは「デフォルト」で。
ここではこのネットワークがハードウェアを占有するかどうかを設定できる。
コンプライアンスなどの関係でハードウェア占有をしなければいけない場合はこれを設定するが、料金が別途かかるので注意。

「作成」を押すと作成完了。簡単簡単。
とおもったら、リストに今作成したVPCがでてこない・・・
実はAWSでは作成からちょっと時間がかかる例が多いため、少しして更新してると表示される。


サブネットの作成


次にサブネットを作成する。サブネットとは切り分けられたネットワーク区画といったところ。
仮想ネットワークは、複数のサブネットから構成される。

画面左部の「サブネット」を選択すると、サブネットの管理画面が表示される。
画面上部の「サブネットの作成」を選択すると、作成ダイアログが開く。



ネームタグは適当に。分かりやすいものをつけた方がいいかも。
あとから出てくるが、アベイラビリティーゾーン(AZ)がわかった方がいいかもなので、自分は

サービス名 + "-subnet-1a-001"

とした。(AZの説明は前回のリージョンのところを参照)

さらに、上記に加えてもう一つサブネットを作っておく。
このサブネットは先ほどのサブネットとは異なるAZを選択しておく。
これはネットワークの冗長化というもので、片方のAZに隕石が落ちても、片方のネットワークが生きているので大丈夫、という構成にするために2つのサブネットを作る。

あるいは、サブネットごとにセキュリティルールを決めることができるため、公開用サブネットと非公開用サブネットを用意してもいい。この場合、冗長化も含めて最低でも4つのサブネットができる形になる。



左が冗長化のみを行ったサブネット構成。右はさらに公開、非公開のネットワークを分けたもの。
非公開は後から追加できるので、今回は左で。

サブネットのセキュリティルールは、画面下部の「ネットワークACL」のタブから設定可能だが、各サーバのセキュリティルールは、後ほど説明するセキュリティグループで設定可能だ。
サブネットとセキュリティグループのどちらで制限してもいいし、どちらでもやっておくのも当然いい。


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


インターネットゲートウェイは、VPCとインターネットの接点となるもので、外からの通信はここから来るし、外への通信はここに送信する。
画面左部の「インターネットゲートウェイ」を選択すると、インターネットゲートウェイの管理画面が表示される。
画面上部の「インターネットゲートウェイの作成」を選択すると、作成ダイアログが開く。



ネームタグのみなので、適当に。サービス名 + "-gateway"とかでいいんじゃないかな。

作成ボタンを押したらリストに追加される、が、なんかdetachedとか書いてあると思う。
これはVPCに接続されていない状態なので、そのgatewayにチェックを入れた後に、画面上部の「VPCにアタッチ」を選択して、先ほど作成したVPCを選択するとアタッチできる。


ルートテーブルの設定


ルーティングとはIPアドレスとサーバを関連付けることだが、広義にはCIDRとネットワークを関連付けることも含む。
このアドレス範囲への通信は、このネットワークにまわそう、といった感じの処理だ。
このルーティングのルールをルートテーブルに設定する。


画面左部の「ルートテーブル」を選択するして確認してみよう。
上で作成したVPCに関するルートテーブルは既に作成済みとなっているかと思う。



該当するルートテーブルをチェックして、画面下部のタブから「ルート」を選択する。
ルートのリストが出てくるので「編集」のボタンを選択すると、ルートを追加可能となる。
「VPCの作成」で設定したCIDRにもよるが、現在は「送信先:10.0.0.0/16、ターゲット:local」といった感じのエントリが設定済みかと思う。
これは「10.0.0.0/16」の範囲への通信はlocalにまわすよ、といったルールとなる。
VPC内のアドレスへの通信はVPCローカルへの通信としてあつかう、ということになるので問題ない。

そこで、送信先に「0.0.0.0/0」(全IP対象)を設定したルートを追加しよう。
ターゲットのボックスを選択すると、登録済みのインターネットゲートウェイが出てくるので、それを選択し、保存する。
これは、先ほどのlocalへのルール以外のすべての通信は、インターネットゲートウェイにまわすよ、という意味になる。
こうすることで、通信がVPC内からインターネットへ往来できるようになるわけだ。


以前はこの後に「サブネットの関連付け」のタブから関連付けを行っていたが、現時点では勝手に関連付けしてくれるみたい。
タブを選択するとそう書いてある。
あらためて関連付けしておいてもいい。簡単だからね。


とりあえず、以上で大まかな設定は完了した。
簡単だったなー。

今回でVPCの構築を行ったので、次回からはいよいよEC2の構築を行いたい。
単にサーバを作るだけだったら簡単なのだが、サービスに耐えうる冗長性、耐障害性を持たせることを想定すると、ちょっと長くなるかも。

0 件のコメント:

コメントを投稿