AWSではじめるインフラ構築入門
目次
仮想ネットワーク
VPC
設定項目 | 設定値 | 機能 | 備考 |
---|---|---|---|
Nameタグ | study-vpc | VPC識別名 | |
IPv4 CIDRブロック | 10.0.0.0/16 | IPv4アドレス範囲 | |
IPv6 CIDRブロック | ー | IPv6アドレス範囲 | |
テナンシー | デフォルト |
サブネット
対象 | 設定項目 | 設定値 | 備考 |
---|---|---|---|
外部 サブネット1 |
VPC | study-vpc | |
サブネット名 | study-subnet-public01 | ||
アベイラビリティ ゾーン |
ap-XXX-a | ||
IPv4 CIDR ブロック |
10.0.0.0/20 | ||
外部 サブネット2 |
VPC | study-vpc | |
サブネット名 | study-subnet-public02 | ||
アベイラビリティ ゾーン |
ap-XXX-c | ||
IPv4 CIDR ブロック |
10.0.16.0/20 | ||
内部 サブネット1 |
VPC | study-vpc | |
サブネット名 | study-subnet-private01 | ||
アベイラビリティ ゾーン |
ap-XXX-a | ||
IPv4 CIDR ブロック |
10.0.64.0/20 | ||
内部 サブネット2 |
VPC | study-vpc | |
サブネット名 | study-subnet-private02 | ||
アベイラビリティ ゾーン |
ap-XXX-c | ||
IPv4 CIDR ブロック |
10.0.80.0/20 |
インターネットゲートウェイ
設定項目 | 設定値 | 備考 |
---|---|---|
Nameタグ | study-igw | |
VPC | study-vpc |
NATゲートウェイ
対象 | 設定項目 | 設定値 | 備考 |
---|---|---|---|
NAT1 | NAT名 | study-ngw-01 | |
サブネット | study-subnet-public01 | ||
ElasticIP | 自動割り当て | ||
NAT2 | NAT名 | study-ngw-02 | |
サブネット | study-subnet-public02 | ||
ElasticIP | 自動割り当て |
ルートテーブル
パブリックサブネット用(共通)
Nameタグ:study-rt-public
サブカテゴリ | 対象 | 設定項目 | 設定値 |
---|---|---|---|
ルート | local | 送信先 | 10.0.0.0/16 |
ターゲット | local | ||
外部 | 送信先 | 0.0.0.0/0 | |
ターゲット | study-igw | ||
サブネット | パブリックサブネット | サブネット | study-subnet-public01 |
サブネット | study-subnet-public02 |
プライベートサブネット1用
Nameタグ:study-rt-private01
サブカテゴリ | 対象 | 設定項目 | 設定値 |
---|---|---|---|
ルート | local | 送信先 | 10.0.0.0/16 |
ターゲット | local | ||
外部 | 送信先 | 0.0.0.0/0 | |
ターゲット | study-ngw-01 | ||
サブネット | プライベートサブネット1 | サブネット | study-subnet-private01 |
プライベートサブネット2用
Nameタグ:study-rt-private02
サブカテゴリ | 対象 | 設定項目 | 設定値 |
---|---|---|---|
ルート | local | 送信先 | 10.0.0.0/16 |
ターゲット | local | ||
外部 | 送信先 | 0.0.0.0/0 | |
ターゲット | study-ngw-02 | ||
サブネット | プライベートサブネット2 | サブネット | study-subnet-private02 |
セキュリティグループ
踏み台サーバ用
設定項目 | 設定値 | 機能 | 備考 |
---|---|---|---|
名称 | study-sg-bastion | ||
VPC | study-vpc | ||
インバウンドルール | タイプ | SSH | |
ソース | 0.0.0.0/0 |
ロードバランサ用
設定項目 | 設定値 | 機能 | 備考 |
---|---|---|---|
名称 | study-sg-elb | ||
VPC | study-vpc | ||
インバウンドルール | タイプ | HTTP | |
ソース | 0.0.0.0/0 | ||
タイプ | HTTPS | ||
ソース | 0.0.0.0/0 |
踏み台サーバ
キーペア
設定項目 | 設定値 | 機能 | 備考 |
---|---|---|---|
名称 | study | ||
ファイル形式 | pem | SSH接続形式 |
EC2
設定項目 | 設定値 | 機能 | 備考 |
---|---|---|---|
ネットワーク | study-vpc | ||
サブネット | study-subnet-public01 | ||
自動割り当て パブリックIP |
有効 | ||
Nameタグ | study-ec2-bastion | ||
セキュリティ グループ |
default | ||
study-sg-bastion |
SSH接続確認
ssh -i ./.ssh/study.pem ec2-user@EC2のパブリックIP
Webサーバ
EC2
Webサーバ1
設定項目 | 設定値 | 機能 | 備考 |
---|---|---|---|
ネットワーク | study-vpc | ||
サブネット | study-subnet-private01 | ||
自動割り当て パブリックIP |
無効 | ||
Nameタグ | study-ec2-web01 | ||
セキュリティ グループ |
default |
Webサーバ2
設定項目 | 設定値 | 機能 | 備考 |
---|---|---|---|
ネットワーク | study-vpc | ||
サブネット | study-subnet-private02 | ||
自動割り当て パブリックIP |
無効 | ||
Nameタグ | study-ec2-web02 | ||
セキュリティ グループ |
default |
SSH接続確認
※./config
Host bastion
Hostname 踏み台サーバのパブリックIP
User ec2-user
IdentityFile ~/.ssh/study.pem
Host web01
Hostname WebサーバのプライベートIP
User ec2-user
IdentityFile ~/.ssh/study.pem
ProxyCommand ssh.exe bastion -W %h%p
Host web02
Hostname WebサーバのプライベートIP
User ec2-user
IdentityFile ~/.ssh/study.pem
ProxyCommand ssh.exe bastion -W %h%p
ssh web01
ssh web02
ロードバランサ
ロードバランサ
設定項目 | 設定値 | 機能 | 備考 |
---|---|---|---|
名称 | study-elb | ||
VPC | study-vpc | ||
アベイラビリティ ゾーン |
study-subnet-public01 | ||
study-subnet-public02 | |||
セキュリティ グループ |
default | ||
study-sg-elb |
ターゲットグループ
設定項目 | 設定値 | 機能 | 備考 |
---|---|---|---|
名称 | study-tg | ||
プロトコル | HTTP | ||
ポート | 3000 | ||
ターゲット | study-ec2-web01 | ロードバランサがリクエストを分散させる対象 | |
study-ec2-web02 |
動作確認
ロードバランサのDNS名をブラウザURLに入力
RDS
パラメータグループ
設定項目 | 設定値 | 機能 | 備考 |
---|---|---|---|
パラメータグループファミリー | mysql8.0 | 使用するDB製品 | |
グループ名 | study-db-pg |
オプショングループ
設定項目 | 設定値 | 機能 | 備考 |
---|---|---|---|
グループ名 | study-db-og | ||
エンジン | mysql | データベース種類 | |
メジャーエンジンバージョン | 8.0 |
サブネットグループ
設定項目 | 設定値 | 機能 | 備考 |
---|---|---|---|
グループ名 | study-db-subnet | ||
VPC | study-vpc | ||
アベイラビリティ ゾーン |
ap-XXX-a | ||
ap-XXX-c | |||
サブネット | study-subnet-private01 | ||
study-subnet-private02 |
データベース
設定項目 | 設定値 | 機能 | 備考 |
---|---|---|---|
エンジンタイプ | MySQL | ||
DBインスタンス識別子 | study-db | ||
マスターユーザ名 | XXXXX | ||
マスターパスワード | XXXXX | ||
VPC | study-vpc | ||
サブネットグループ | study-db-subnet | ||
パブリックアクセス許可 | なし | ||
セキュリティグループ | default | ||
認証オプション | パスワード認証 | ||
最初のデータベース名 | XXXXX | ||
DBパラメータグループ | study-db-pg | ||
オプショングループ | study-db-og |
S3
バケット
設定項目 | 設定値 | 機能 | 備考 |
---|---|---|---|
バケット名 | 重複しない名前 | ||
リージョン | ap-XXXXX-X | ||
パブリックアクセス | 全てブロック |
ロール
設定項目 | 設定値 | 機能 | 備考 |
---|---|---|---|
エンティティ | EC2 | ||
Attachアクセス権限ポリシー | AmazonS3FullAccess | ||
ロール名 | study-role-web |
ロールの適用
EC2 > インスタンス > アクション > セキュリティ > IAMロールを変更
IAMロール=study-role-webに
動作確認
aws 3s cp ./test.txt to s3://バケット名
Route53
ドメイン登録
Route53 > ホストゾーン > ホストゾーンの作成
パブリックDNS
通常のインターネット上のDNSサーバ
パブリックIPとドメインを変換する
Route53 > ホストゾーン > ドメイン選択 > レコードを作成 > シンプルルーティング > シンプルなレコードを定義
踏み台サーバのDNS情報を定義
設定項目 | 設定値 | 機能 | 備考 |
---|---|---|---|
レコード名 | bastion | ||
値/トラフィックのルーティング先 | レコードタイプに応じたIPアドレスまたは別の値 | ||
踏み台サーバのパブリックIP | |||
レコードタイプ | A | IPアドレスそのものを指定 |
これでbastion.ドメイン ←→ 踏み台サーバのパブリックIPが変換される
ロードバランサのDNS情報を定義
設定項目 | 設定値 | 機能 | 備考 |
---|---|---|---|
レコード名 | www | ||
値/トラフィックのルーティング先 | ApplicationLoadBalancerとClassicLoadBalancerへのエイリアス | ||
ロードバランサのリージョン | |||
ロードバランサ | |||
レコードタイプ | A | IPアドレスそのものを指定 |
これでwww.ドメイン ←→ ロードバランサのパブリックIPが変換される
プライベートDNS
プライベートIPとドメインを変換するAWS内DNSサーバ
設定項目 | 設定値 | 機能 | 備考 |
---|---|---|---|
ドメイン名 | home | プライベートドメイン名 | XXXXX.home |
VPC | study-vpc | ||
リソース名 | bastion | 踏み台サーバ | bastion.home |
web01 | Webサーバ | web01.home | |
web02 | Webサーバ | web02.home | |
db | DBサーバ | db.home |
プライベートドメインに使用できるドメインはcorp/home/mail/internal(2022/01現在)
SSLサーバ証明書
Name | 設定値 | 機能 | 備考 |
---|---|---|---|
メールサーバ
SES
Name | 設定値 | 機能 | 備考 |
---|---|---|---|
キャッシュサーバ
ElastiCache
Name | 設定値 | 機能 | 備考 |
---|---|---|---|