【aws】ec2 + rds + elbでwebサービスの構成を作ってみたので設定手順メモ
はじめに
今回試しに作ってみたのはこんな感じの構成
別のサイトとかみながら実際に作ってみたらけっこう時間かかったので次回スムーズにできるように設定内容だけずらずら自分用にメモ
本当はwebのサブネットを別のアベイラビリティゾーンに作って冗長化するところまでやりたかったのだが。。。
ただ、もう1つサブネット追加してELBに紐付けるだけなのでメモしておかなくてもできるかなということで今回は簡単でこれで
実装
サブネット作成
サブネットの作成
※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を有効にしておいた方が良い。たぶん
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」という名前とする
さいごに
基本的に今は無料枠で試せているからいいけど、サービスインして実際にフル稼働させるとなにげに高いなと感じる。。。
この構成にプラスで、gitサーバーとか踏み台サーバーとかも考えてみたが台数分課金されると思うと小規模な案件では難しい気が。。。
以上です