はじめに
今回はマルチAZを全部手動で作りたいので、下記のAWS構成図のように作っていきます
※全て東京リージョンで行っております
EC2インスタンスへSSH接続して作業する際はパブリックサブネット(NATゲートウェイからインターネットゲートウェイ接続)へ切り替えてください。
RDSはコストの関係で1個しか今回は設定しないです
こちらのページは下記のサイトの続きとなっております。
手順1:EC2のセキュリティグループ作成
基本的な詳細
設定項目 | 入力内容 |
---|---|
セキュリティグループ名 | sample-ec2-security-group |
説明 | 適当に入力(例:First Security Group for sample-ec2 ) |
VPC | sample-vpc |
インバウンドルール
インバウンドルール1
設定項目 | 入力内容 |
---|---|
タイプ | HTTP |
リソースタイプ | マイ IP |
インバウンドルール2(EC2にSSH接続する場合に入力してください)
設定項目 | 入力内容 |
---|---|
タイプ | SSH |
リソースタイプ | マイ IP |
入力が完了しましたら、セキュリティグループを作成
をクリックします
手順2:EC2インスタンスを作成
インスタンスを起動
をクリック
名前とタグ
設定項目 | 入力内容 |
---|---|
名前 | sample-ec2-1a |
アプリケーションおよびOSイメージ(Amazon マシンイメージ)
設定項目 | 入力内容 |
---|---|
Amazon マシンイメージ(AMI) | Amazon LinuxのAmazon Linux 2023 AMI |
インスタンスタイプ
設定項目 | 入力内容 |
---|---|
インスタンスタイプ | t2.micro |
キーペア (ログイン)
新しいキーペアの作成
をクリック
設定項目 | 入力内容 |
---|---|
キーペア名 | sample-ec2 |
キーペアのタイプ | ED25519 |
プライベートキーファイル形式 | .pem |
入力が完了しましたら、キーペアを作成
をクリックします
ネットワーク設定
設定項目 | 入力内容 |
---|---|
VPC | sample-vpc |
サブネット | sample-vpc-private-1a-ec2 |
パブリックIPの自動割り当て | 有効化(SSH接続しない場合は無効化) |
ファイアウォール(セキュリティグループ) | 既存のセキュリティグループを選択する |
共通のセキュリティグループ | sample-ec2-security-group |
パブリックIPの自動割り当てを解除したい場合、インスタンスを停止してからアクション
→ネットワーキング
→IPアドレスの管理
のページで解除できます
ストレージを設定
8GiB, gp2を設定
入力が完了しましたら、インスタンスを起動
をクリックします
作成したインスタンスが「実行中」と表示されていれば、起動は成功です
手順3:DBサブネットグループを作成
サブネットグループの詳細
設定項目 | 入力内容 |
---|---|
名前 | sample-db-subnet-group |
説明 | 適当に入力 |
VPC | sample-vpc |
サブネットを追加
設定項目 | 入力内容 |
---|---|
アベイラビリティーゾーン | ap-northeast-1a |
サブネット |
sample-vpc-private-1a-rds , sample-vpc-private-1c-rds
|
入力が完了しましたら、作成
をクリックします
手順4:RDSを作成
- Aurora and RDSの
データベースの作成
をクリック - 「データベースの作成方法を選択」を「標準作成」を選択
エンジンのオプション
設定項目 | 入力内容 |
---|---|
エンジンのタイプ | MySQL |
エディション | MySQL Community |
エンジンバージョン | MySQL 8.0.41 |
テンプレート
「無料利用枠」を選択
可用性と耐久性
「シングル AZ DB インスタンスデプロイ (1 インスタンス)」を選択
設定
設定項目 | 入力内容 |
---|---|
DB インスタンス識別子 | sample-db |
マスターユーザー名 | sample_mysql |
認証情報管理 | セルフマネージド |
マスターパスワード | 自由に入力 |
マスターパスワードを確認 | マスターパスワードと同じものを入力 |
インスタンスの設定
設定項目 | 入力内容 |
---|---|
インスタンス | db.t4g.micro |
ストレージ
設定項目 | 入力内容 |
---|---|
ストレージタイプ | 汎用 SSD(gp2) |
ストレージ割り当て | 20GiB |
ストレージの自動スケーリング | 有効にする |
最大ストレージしきい値 | 1000GiB |
接続
設定項目 | 入力内容 |
---|---|
コンピューティングリソース | EC2 コンピューティングリソースに接続しない |
ネットワークタイプ | IPv4 |
Virtual Private Cloud (VPC) | sample-vpc |
DB サブネットグループ | sample-db-subnet-group |
パブリックアクセス | なし |
VPC セキュリティグループ (ファイアウォール) | 新規作成 |
新しい VPC セキュリティグループ名 | sample-rds-vpc-security-group |
アベイラビリティーゾーン | ap-northeast-1a |
RDS Proxy | 設定しない |
認証機関 - 任意 | デフォルト |
データベースポート | 3306 |
データベース認証
設定項目 | 入力内容 |
---|---|
データベース認証オプション | パスワード認証 |
モニタリング
「データベースインサイト - スタンダード」を選択
追加設定
設定項目 | 入力内容 |
---|---|
最初のデータベース名 | sample |
入力が完了しましたら、データベースの作成
をクリックします
手順5:RDS作成後の設定
EC2接続のセットアップ
-
sample-db
をクリック - 「アクション」をクリックし、EC2接続のセットアップをクリック
- EC2インスタンスの選択で作成したEC2(
sample-ec2-1a
)を選択し、続行
をクリック - 「見直しと確認」ページで、特に問題がなければ、
セットアップ
をクリック
手順6:ALBのセキュリティグループ作成
基本的な詳細
設定項目 | 入力内容 |
---|---|
セキュリティグループ名 | sample-alb-security-group |
VPC | sample-vpc |
インバウンドルール
パブリックサブネットにあるEC2で作業する場合
コストの関係上、パブリックサブネットにあるEC2で作業する場合、セキュリティリスクを低くするため、自身のパブリックIPでしか接続できないようにする
パブリックサブネットにあるEC2で作業する場合
設定項目 | 入力内容 |
---|---|
タイプ | HTTPS |
リソースタイプ | マイ IP |
プライベートサブネットにあるEC2で作業する場合
設定項目 | 入力内容 |
---|---|
タイプ | HTTPS |
リソースタイプ | Anywhere-IPv4 |
入力が完了しましたら、セキュリティグループを作成
をクリックします
手順7:ALBを作成
- EC2のロードバランサーの
ロードバランサーの作成
をクリック - Application Load Balancerの
作成
をクリック
基本的な設定
設定項目 | 入力内容 |
---|---|
ロードバランサー名 | sample-alb |
スキーム | インターネット向け |
ロードバランサーのIPアドレスタイプ | IPv4 |
ネットワークマッピング
設定項目 | 入力内容 |
---|---|
VPC | sample-vpc |
アベイラビリティーゾーンとサブネット |
ap-northeast-1a のsample-vpc-public-1a , ap-northeast-1c のsample-vpc-public-1c
|
セキュリティグループ
設定項目 | 入力内容 |
---|---|
セキュリティグループ | sample-alb-security-group |
リスナーとルーティング
ターゲットグループの作成
をクリック
ターゲットグループの作成
基本的な設定
設定項目 | 入力内容 |
---|---|
ターゲットタイプの選択 | インスタンス |
ターゲットグループ名 | sample-alb-target-group |
プロトコル : ポート | アプリがリッスンしているポート(例:HTTPの80) |
IPアドレスタイプ | IPv4 |
VPC | sample-vpc |
プロトコルバージョン | HTTP1 |
ヘルスチェック
設定項目 | 入力内容 |
---|---|
ヘルスチェックプロトコル | HTTP |
ヘルスチェックパス | /healthz |
入力が完了しましたら、次へ
をクリックします
ターゲットを登録
sample-ec2-1a
を選択し、保留中として以下を含める
、保留中のターゲットの登録
をクリックし、ターゲットグループの作成
をクリックします
ALB作成画面に戻って、下記を入力します
SSL証明書を取得している場合
設定項目 | 入力内容 |
---|---|
プロトコル | HTTPS |
ポート | 443 |
デフォルトアクション | sample-alb-target-group |
SSL証明書を取得していない場合
設定項目 | 入力内容 |
---|---|
プロトコル | HTTP |
ポート | 80 |
デフォルトアクション | sample-alb-target-group |
セキュアリスナーの設定
設定項目 | 入力内容 |
---|---|
セキュリティカテゴリ | すべてのセキュリティポリシー |
ポリシー名 | 推奨されているものを選択 |
証明書の取得先 | ACM |
証明書 (ACM から) | 取得したドメイン名を選択 |
入力が完了しましたら、ロードバランサーの作成
をクリックします
手順8:EC2のセキュリティグループのインバウンドルールを修正
インバウンドルール1を下記に変更
設定項目 | 入力内容 |
---|---|
タイプ | HTTP |
リソースタイプ | カスタム |
ソース | sample-alb-security-group |
またインバウンドルール2にあるSSH接続するためのルールは使わなくなった場合削除してください
おまけ:EC2のパブリックIPを解除方法
対象のEC2インスタンスを停止 → 「アクション」→「ネットワーキング」→「IPアドレスの管理」 → パブリック IP の自動割り当てをOFF
まとめ
マルチAZ構成のAWSインフラを手動で構築する手順を、EC2・RDS・ALBなどの設定とともに詳しく解説しました