【aws】ec2 + rds + elbでwebサービスの構成を作ってみたので設定手順メモ

はじめに

今回試しに作ってみたのはこんな感じの構成
f:id:yoppy0066:20160710232142p:plain

別のサイトとかみながら実際に作ってみたらけっこう時間かかったので次回スムーズにできるように設定内容だけずらずら自分用にメモ

本当はwebのサブネットを別のアベイラビリティゾーンに作って冗長化するところまでやりたかったのだが。。。

ただ、もう1つサブネット追加してELBに紐付けるだけなのでメモしておかなくてもできるかなということで今回は簡単でこれで

実装

vpc作成

vpcの作成

ネームタグtest-vpc
CIDRブロック10.0.0.0/16
テナンシーデフォルト

サブネット作成

サブネットの作成
※test-db-subnetを2つ作るのはrdsを使う際に2つのアベイラビリティゾーンのサブネットが必要なため

ネームタグ VPC アベイラビリティゾーン CIDRブロック
test-elb-subnet test-vpc us-west-2a 10.0.0.0/24
test-web-subnet test-vpc us-west-2a 10.0.100.0/24
test-db-subnet test-vpc us-west-2a 10.0.200.0/24
test-db-subnet test-vpc us-west-2c 10.0.201.0/24

この際、test-web-subnetは後でautoscalingさせるときのために自動割り当てパブリックIPを有効にしておいた方が良い。たぶん

InternetGateway作成

名前 test-igw
アタッチするvpc test-vpc

RouteTable作成

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

名前 vpc 送信先 ターゲット メモ
test-public-route test-vpc 10.0.0.0/16 local 自動作成される
0.0.0.0/0 test-igw 作成する

private用ルートテーブル(サブネットを作成すると自動で作成されるものをリネーム)

名前 vpc 送信先 ターゲット
test-public-route test-vpc 10.0.0.0/16 local

サブネットとRouteTableを紐付ける

サブネット test-elb-subnet test-web-subnet test-db-subnet
ルートテーブル test-public-route test-public-route test-private-route

セキュリティグループの作成

名前 タイプ プロトコル ポート範囲 送信元
test-elb-security-group HTTP(80) TCP(6) 80 0.0.0.0/0
test-web-security-group HTTP(80) TCP(6) 80 test-elb-security-group
SSH(22) TCP(6) 20 0.0.0.0/0
test-db-security-group

DBサブネットグループの作成

名前 VPC ID アベイラビリティゾーン サブネットID
test-db-subnet-group test ua-west-2a test-db-subnet
ua-west-2a test-db-subnet

DBサーバー作成(RDS)

これは画面の通りに進めてゆけばokだが、以下は上記で作成したものを選択

VPC test-vpc
サブネットグループ test-db-subnet-group
アベイラビリティゾーン ua-west-2a
VPCセキュリティグループ test-db-security-group

iamロール作成

ec2のiamロールはインスタンスの作成時にしか設定できないので予め作っておく。
iamロールへのルールの追加は後からでも可能
ここでは「test-role」という名前とする

Webサーバー作成(EC2)

ここも基本的に画面の通りに進んでゆけばok。以下の項目は上記で作成したものを選択

ネットワーク test-vpc(vpc名)
サブネット test-web-subnet
自動割り当てパブリックIP サブネット設定を使用(有効)
IAMロール test-role

セキュリティグループは、defaultとtest-web-security-groupを選択

ELB作成

ここも基本的に画面の通りに進んでゆけばok。以下の項目は上記で作成したものを選択

ロードバランサー test-elb
ロードバランサーを作成する場所 test-vpc
転送するサブネット test-web-subnet

セキュリティグループは、defaultとtest-elb-security-groupを選択

さいごに

基本的に今は無料枠で試せているからいいけど、サービスインして実際にフル稼働させるとなにげに高いなと感じる。。。

この構成にプラスで、gitサーバーとか踏み台サーバーとかも考えてみたが台数分課金されると思うと小規模な案件では難しい気が。。。

以上です