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 | 設定値 | 機能 | 備考 |
|---|---|---|---|

