LoginSignup
0
1

EC2とRDSでWeb環境構築するよ!(第1回:VPC編)

Last updated at Posted at 2024-05-11

AWSは部分的にこれまでもちょこちょこ仕事で弄ってきたけど体系的にメジャーサービスを構築したことがなかったのでEC2やRDSを使ったWeb画面(PHP)を構築してみたのでメモ。

サービスの全体象

作りたいサービスの概要はこんな感じです。
image.png

EC2にWebサーバを立ててPHPのプログラムがMySQLにアクセスしてテーブルの情報を表示する画面を作ります。
いわゆる一般的なWebシステムの構成でWebサーバはPublicサブネットに公開し、DBサーバはPrivateサブネットで冗長構成としてEC2のみのアクセスを許可する制御とします。また独自ドメインを取得してDNSでの名前解決も行えるようにします。

このシリーズで取り組む内容は
第1回:VPC・サブネット周りの作業
第2回:EC2の構築
第3回:Route53の登録
第4回:RDSの構築
第5回:Web環境の構築
を予定しています。今回は第一回:VPC編となります。

VPC・サブネット周りの作業概要

まずはNW周りの作業概要について。
WebサーバとDBサーバがぶら下がるNW環境(VPC)をまず作ります。
外部公開するWebサーバとアクセスを絞りたいDBサーバではアクセスレベルが異なるため、サブネットワークを別々に分けてアクセス制御を実施します。
またパブリックサブネットワークではアウトバウント向けのルーティング情報が必要となるので専用のルーター(デフォルトゲートウェイ)とどのIP向けのアクセスをデフォルトゲートウェイに問い合わせるかのルーティングテーブルを作成する必要があります。

順序としては
1.EC2インスタンスの作成
2.サブネットワークの作成
3.インターネットゲートウェイの作成
4.ルーティングテーブルの作成・紐づけ
の順番で実施。

1.VPCを作成する

EC2とRDSを置くためのVPC(NW環境)を作成します。
VPCはシステム全体の仮想NWの位置づけでVPCの中にさらに個別のシステムごとにサブネットワークを構築していきます。サブネットワークはAZ(アベイラビリティゾーンを選んで作成できます。)

「VPC」→「お使いのVPC」→「VPCを作成」クリック
(デフォルトですでにVPCが作成されているがこれは使わない。)
image.png

VPCの名前とIPv4 CIDR形式(確保するNWアドレスのスコープ)を入力。
※テナシーはVPCが物理HWを占有の有無の設定(基本いらいらないのでデフォルト選択)
・VPC名:my-vpc-01
・IPv4 CIDR形式:10.0.0.0/16
image.png


VPCできた。
image.png

2.サブネットワークを作る

ここではWebサーバ(EC2)とDBサーバ(RDS)を配置するパブリックサブネットとプライベートサブネットを作成する。

まずはEC2を置くサブネットワークを作成する。
「VPC」→「サブネット」→「サブネット作成」をクリック
・サブネットワークを作るVPC:my-vpic-01(先ほど作成したVPCを選択)
・サブネット名:my-pubsub-1a(Webサーバを置く外部公開用サブネット名)
・AZ:ap-northeast-1aを選択。(Tokyoリージョンは1a~1cまである)
・IPv4CIDR形式(サブネットワークのスコープ):10.0.10.0/24
image.png
image.png


続けてDBサーバを置くサブネットワークも併せて作成する。
DBサーバは冗長構成を作ることを想定しているためサブネットワークは2つ作成します。

・名前:my-prvsub-1a
・AZ:ap-northeast-1a
・IPv4CIDR形式:10.0.20.0/24

・名前:my-prvsub-1c
・AZ:ap-northeast-1c
・IPv4CIDR形式:10.0.21.0/24

サブネットワークができるとこんな感じになる。
image.png

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

VPCとインターネットをつなぐためグローバルIP解決用のルータ(インターネットゲートウェイ)を用意してVPCにアタッチしてあげる。

「VPC」→「インターネットゲートウェイ」→「インターネットゲートウェイ作成」クリック

名前:my-internet-gw
image.png


作成したインターネットゲートウェイ選択し、VPCにアタッチをクリック
image.png

先ほど作成したVPCを選択するればインターネットゲートウェイがVPCにアタッチできる。
image.png

4.ルーティングの設定

パブリックのサブネットに対してルーティングを設定してあげる。
実現したいルーティングとしては
①宛先がVPCのNW内(10.0.0.0/16)ならローカル(VPC内)ルーティング
②それ以外(0.0.0.0/16)ならインターネットゲートウェイにルーティング

「VPC」→「ルートテーブル」→「ルートテーブル」を作成
・ルートテーブル名:my-pubroute-talbe-01
・VPC:my-vpc-01
image.png


既にローカルルーティングは設定されているので追加でデフォルトゲートウェイのルートを設定する。
image.png


0.0.0.0/0(それ以外のルート)にインタネットゲートウェイを設定する。
image.png


ルートテーブルが以下で作成される。VPC内の宛先IP(10.0.0.0/16)ならターゲットがlocal、それ以外(0.0.0.0/0)はインターネットゲートウェイにアウトバウント処理を投げる設定となる。
image.png


あとは作成したルートテーブルの情報をパブリックサブネットに紐づけてあげる。
作成したルートテーブルを選択して「サブネットの関連付け編集」
image.png


外部公開向けサブネット my-pubsub-1aを選択する。
image.png


ルーティングテーブルにmy-pubsub-1aのサブネットが紐づけられる。
※プライベートサブネット my-prvsub-1aはルーティングテーブルを紐づけない。
image.png


以上でVPC・サブネットワークを作成しインターネットゲートウェイとルーティングの情報をAWSで設定できた。
その他注意点としてはVPC設計する際はIPアドレスのスコープは大き目に確保したほうがよさそう /16 ぐらいが推奨。またWebサーバを冗長構成にする際はサブネット分割して別々のAZに配置するなどの構成が望ましい。

次はこのパブリックサブネットにEC2を作るよ!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1