AWSコンソールでRDS MySQL + EC2接続環境を構築する手順【DBサブネットグループ / Parameter Storeパスワード管理】

AWS Basic
スポンサーリンク
スポンサーリンク
  1. はじめに
  2. キーワード解説
  3. 前フェーズとの違い
  4. 使用するAWSサービス
  5. 構築するリソース一覧
  6. 全体の作業順序
  7. 【重要】⓪ 自分のIPアドレスを確認する
  8. ① キーペアの作成
  9. ② VPCの作成
  10. ③ サブネットの作成(3つ)
    1. サブネット1: パブリックサブネット(EC2用)
    2. サブネット2: プライベートサブネット1(RDS配置先)
    3. サブネット3: プライベートサブネット2(DBサブネットグループ用)
  11. ④ インターネットゲートウェイの作成・アタッチ
    1. 作成
    2. VPCへのアタッチ
  12. ⑤ ルートテーブルの設定
    1. 5-1. パブリック用ルートテーブルの作成
    2. 5-2. プライベート用ルートテーブルの作成
  13. ⑥ セキュリティグループの作成
    1. 6-1. EC2用セキュリティグループ
    2. 6-2. RDS用セキュリティグループ
  14. ⑦ IAMロールの作成
    1. ステップ1
    2. ステップ2: ポリシーのアタッチ
    3. ステップ3
  15. ⑧ SSM Parameter Store にDBパスワードを登録する
  16. ⑨ RDS DBサブネットグループの作成
  17. ⑩ RDS MySQL インスタンスの作成
    1. エンジンの選択
    2. テンプレート
    3. 設定
    4. インスタンスの設定
    5. ストレージ
    6. 接続
    7. 追加設定
  18. ⑪ EC2インスタンスの起動
    1. 基本設定
    2. ネットワーク設定
    3. IAMロール
    4. UserData
    5. タグ
  19. ⑫ 動作確認
    1. 12-1. WebブラウザでEC2のWebサーバ確認
    2. 12-2. EC2にSSH接続する
    3. 12-3. Parameter StoreからDBパスワードを取得する
    4. 12-4. RDSへのMySQL接続テスト
    5. 12-5. RDS上でSQL操作を確認する
    6. 12-6. EC2からSSH接続を切断する
  20. ⑬ リソースの削除
    1. 削除順序
    2. 1. EC2インスタンスを終了する
    3. 2. RDSインスタンスを削除する
    4. 3. RDS DBサブネットグループを削除する
    5. 4. SSM Parameter Storeのパラメータを削除する
    6. 5. セキュリティグループを削除する
    7. 6. ルートテーブルを削除する
    8. 7. インターネットゲートウェイをデタッチ・削除する
    9. 8. サブネットを削除する(3つ)
    10. 9. VPCを削除する
    11. 10. IAMロールを削除する
    12. 11. キーペアを削除する(任意)
  21. まとめ

はじめに

「EC2にMariaDBをインストールしてDBサーバを自分で管理するのは大変……」——その悩みを解決するのが Amazon RDS(マネージド型データベースサービス) です。

この記事では、AWSコンソール(GUI)のみを使って、RDS MySQL 8.0インスタンスとEC2(APサーバ)をゼロから構築し、EC2からRDSへMySQL接続を確認するハンズオンを紹介します。

インターネット
  ↓ HTTP(80) / SSH(22)  ← 自分のIPのみ
インターネットゲートウェイ(my-rds-igw)
  ↓
[VPC: 10.0.0.0/16]
  ├── パブリックサブネット(10.0.1.0/24)[AZ-a]
  │     └── EC2 APサーバ(Apache + mariadb client)
  │           └── IAMロール → SSM Parameter Store からパスワード取得
  │                     ↓ MySQL:3306(SG-to-SG制御)
  ├── DBサブネットグループ
  │     ├── プライベートサブネット1(10.0.2.0/24)[AZ-a]  ← RDS配置
  │     │     └── RDS MySQL 8.0(db.t3.micro)
  │     └── プライベートサブネット2(10.0.3.0/24)[AZ-c]  ← 2AZ要件用
  └── SSM Parameter Store: /my/rds/db-password

このハンズオンで体験できること:

  • EC2にDBをインストールする方式との違いを体感
  • RDS DBサブネットグループが「2AZ以上必須」な理由を理解
  • SSM Parameter Storeでパスワードをコードに書かずに安全に管理する方法
  • SG-to-SG制御でRDSをEC2からのみ許可する設計

このハンズオンのポイント:

前フェーズ(EC2 + MariaDB)では自分でDBを管理していましたが、今回はAWSがOSのメンテナンス・パッチ・バックアップを自動管理するRDSに置き換えます。ネットワーク設計はカスタムVPC(3サブネット)で実際の本番環境に近い構成になります。


この記事は CloudFormation版ハンズオン の比較記事です。
コンソール操作でRDS・DBサブネットグループ・Parameter Storeを視覚的に学びたい方向けです。


-->

スポンサーリンク

キーワード解説

用語意味
Amazon RDSAWSが提供するマネージド型のリレーショナルDBサービス。EC2へのインストールと違い、OSのメンテナンス・パッチ・バックアップをAWSが自動管理する
DBサブネットグループRDSを配置できるサブネットを登録した論理グループ。2つ以上の異なるAZのサブネットが必須
SSM Parameter Store設定値・シークレットをコードに書かずに保管・取得できるサービス。SecureString型でKMS暗号化して保管できる
SG-to-SG制御セキュリティグループのルールで、アクセス元のIPアドレスではなく別のSGを指定する設定。EC2 SGに所属するインスタンスのみRDSへの接続を許可できる
エンドポイントRDSに接続するためのホスト名。EC2からはこのホスト名を使ってMySQLとして接続する
SecureStringParameter StoreでKMS暗号化して保管するタイプ。パスワードやAPIキーなどの機密情報に使用する

スポンサーリンク

前フェーズとの違い

比較項目(EC2 + MariaDB)(RDS MySQL)今回
DBエンジンMariaDB(EC2上で動作)MySQL 8.0(RDSマネージドサービス)
DB管理OS込みで自分で管理AWSがパッチ・バックアップを自動管理
サブネット構成デフォルトVPC(単一AZ)カスタムVPC(3サブネット・2AZ)
パスワード管理ハードコードSSM Parameter Store
削除EC2終了のみRDS削除に10〜15分必要

使用するAWSサービス

サービス役割料金
VPCカスタムネットワーク空間無料
EC2(t2.micro)APサーバ(Apache + mariadb client)月750時間まで無料枠あり
RDS MySQL(db.t3.micro)マネージドDBサーバ月750時間まで無料枠あり
SSM Parameter StoreDBパスワードの安全な保管スタンダード層は無料
IAMEC2にSSM・Parameter Store権限を付与無料
S3 VPC Gateway EndpointプライベートサブネットからS3へのアクセス無料

注意: RDSを稼働させたままにすると課金されます。ハンズオン後は必ず削除してください。


構築するリソース一覧

順序リソース役割
(確認)自分のIPアドレスSGの設定に使用
キーペア(my-rds-mysql-keyEC2へのSSH認証鍵
VPC(my-rds-vpc独立したネットワーク空間
サブネット × 3パブリック1 + プライベート2
インターネットゲートウェイ(my-rds-igwVPCをインターネットに接続
ルートテーブル × 2パブリック/プライベートの通信経路
セキュリティグループ × 2EC2用SG・RDS用SG
IAMロール(my-rds-ec2-roleEC2がSSM・Parameter Storeを使う権限
SSM Parameter StoreDBパスワードの保管
RDS DBサブネットグループRDSを配置できるサブネットを登録
RDS MySQL インスタンスマネージドDBサーバ(作成に10〜15分)
EC2インスタンス(my-rds-ap-instanceAPサーバ
動作確認EC2→RDSへのMySQL接続テスト
リソース削除課金停止

全体の作業順序

⓪ IPアドレス確認
      ↓
① キーペア作成
      ↓
② VPC作成
      ↓
③ サブネット作成(パブリック1 + プライベート2)
      ↓
④ インターネットゲートウェイ作成・アタッチ
      ↓
⑤ ルートテーブル設定
      ↓
⑥ セキュリティグループ作成(EC2用 → RDS用)
      ↓
⑦ IAMロール作成
      ↓
⑧ SSM Parameter Store にパスワードを登録
      ↓
⑨ RDS DBサブネットグループ作成
      ↓
⑩ RDS MySQL インスタンス作成(※約10〜15分かかる)
      ↓
⑪ EC2インスタンス起動
      ↓
⑫ 動作確認(EC2 → RDS接続)
      ↓
⑬ リソース削除

【重要】⓪ 自分のIPアドレスを確認する

curl https://checkip.amazonaws.com

またはブラウザで https://checkip.amazonaws.com にアクセスして確認します。

控えておく情報: 自分のIPアドレス(例: 203.0.113.1

セキュリティグループで 203.0.113.1/32 の形式(末尾に /32)で使用します。


① キーペアの作成

AWSコンソール → EC2 → ネットワーク&セキュリティ → キーペア → 「キーペアを作成」

設定項目
名前my-rds-mysql-key
キーペアのタイプRSA
プライベートキーファイル形式.pem

「キーペアを作成」をクリックすると my-rds-mysql-key.pem がダウンロードされます。

C:\Users\ユーザー名\.ssh\my-rds-mysql-key.pem

② VPCの作成

AWSコンソール → VPC → お使いのVPC → 「VPCを作成」

設定項目
作成するリソースVPCのみ
名前タグmy-rds-vpc
IPv4 CIDR10.0.0.0/16

「VPCを作成」をクリック。

VPCとは: AWS内に作る仮想的なプライベートネットワーク。10.0.0.0/16 は「10.0.0.0〜10.0.255.255」の65,536個のIPアドレスを使える範囲です。


③ サブネットの作成(3つ)

AWSコンソール → VPC → サブネット → 「サブネットを作成」

「VPC ID」に my-rds-vpc を選択してから、以下の3つを作成します。

「新しいサブネットを追加」ボタンで複数まとめて作成できます。

サブネット1: パブリックサブネット(EC2用)

設定項目
サブネット名my-public-subnet
アベイラビリティーゾーンap-northeast-1a
IPv4 CIDR10.0.1.0/24

サブネット2: プライベートサブネット1(RDS配置先)

設定項目
サブネット名my-private-subnet-1
アベイラビリティーゾーンap-northeast-1a
IPv4 CIDR10.0.2.0/24

サブネット3: プライベートサブネット2(DBサブネットグループ用)

設定項目
サブネット名my-private-subnet-2
アベイラビリティーゾーンap-northeast-1c
IPv4 CIDR10.0.3.0/24

なぜプライベートサブネットが2つ必要か: RDS DBサブネットグループは「2つ以上の異なるAZ」にあるサブネットを登録する必要があります。RDSインスタンス自体はAZ-aの private-subnet-1 に置きますが、グループ定義にはAZ-cの private-subnet-2 も必要です。これはRDSのMulti-AZフェイルオーバーに備えた仕様です。

「サブネットを作成」をクリック。


④ インターネットゲートウェイの作成・アタッチ

作成

AWSコンソール → VPC → インターネットゲートウェイ → 「インターネットゲートウェイを作成」

設定項目
名前タグmy-rds-igw

「インターネットゲートウェイを作成」をクリック。

VPCへのアタッチ

作成したIGWを選択 → 「アクション」→「VPCにアタッチ」→ my-rds-vpc を選択 → 「インターネットゲートウェイのアタッチ」

ステータスが 「Attached」 になることを確認します。


⑤ ルートテーブルの設定

5-1. パブリック用ルートテーブルの作成

AWSコンソール → VPC → ルートテーブル → 「ルートテーブルを作成」

設定項目
名前my-public-rt
VPCmy-rds-vpc

作成後、my-public-rt を選択 → 「ルート」タブ → 「ルートを編集」→「ルートを追加」

送信先ターゲット
0.0.0.0/0インターネットゲートウェイ my-rds-igw

「変更を保存」をクリック。

次に「サブネットの関連付け」タブ → 「サブネットの関連付けを編集」→ my-public-subnet にチェック → 「関連付けを保存」

5-2. プライベート用ルートテーブルの作成

同様に「ルートテーブルを作成」

設定項目
名前my-private-rt
VPCmy-rds-vpc

「サブネットの関連付けを編集」→ my-private-subnet-1my-private-subnet-2 の両方にチェック → 「関連付けを保存」

プライベートルートテーブルにはインターネットへのルートを追加しません。RDSはインターネットに出る必要がないため、VPC内のローカル通信のみで十分です。


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

6-1. EC2用セキュリティグループ

AWSコンソール → EC2 → セキュリティグループ → 「セキュリティグループを作成」

設定項目
セキュリティグループ名my-rds-ec2-sg
説明EC2 AP server SG for RDS hands-on
VPCmy-rds-vpc

インバウンドルール:

タイププロトコルポートソース
SSHTCP22自分のIP/32
HTTPTCP80自分のIP/32

アウトバウンドルール:

タイプ送信先
すべてのトラフィック0.0.0.0/0

「セキュリティグループを作成」をクリック。

6-2. RDS用セキュリティグループ

同様に「セキュリティグループを作成」

設定項目
セキュリティグループ名my-rds-sg
説明RDS MySQL SG - EC2 only
VPCmy-rds-vpc

インバウンドルール:

タイププロトコルポートソース
MYSQL/AuroraTCP3306my-rds-ec2-sg のSG-ID(SGを選択)

ポイント(SG-to-SG制御): ソースにIPアドレスではなくセキュリティグループを指定します。my-rds-ec2-sg に所属するEC2インスタンスからの通信のみ許可でき、インターネットからのアクセスを完全に遮断できます。

「セキュリティグループを作成」をクリック。


⑦ IAMロールの作成

AWSコンソール → IAM → ロール → 「ロールを作成」

ステップ1

設定項目
信頼されたエンティティタイプAWSのサービス
ユースケースEC2

ステップ2: ポリシーのアタッチ

以下の2つを検索してチェックを入れます。

ポリシー名用途
AmazonSSMManagedInstanceCoreSession Manager接続用
AmazonSSMReadOnlyAccessParameter Storeからパスワードを読み取る

ステップ3

設定項目
ロール名my-rds-ec2-role

タグを追加: Cost = 123456

「ロールを作成」をクリック。


⑧ SSM Parameter Store にDBパスワードを登録する

Parameter Storeは、DBパスワードなどの設定値をコードに書かずに安全に管理するサービスです。EC2上のアプリケーションは実行時にParameter Storeから値を取得して使用します。

AWSコンソール → Systems Manager → パラメータストア → 「パラメータの作成」

設定項目
名前/my/rds/db-password
説明RDS MySQL master password for my hands-on
スタンダード
タイプSecureString
KMS キーIDalias/aws/ssm(デフォルト)
Handson1234!

「パラメータの作成」をクリック。

SecureStringとは: KMSで暗号化して保管するタイプです。通常の String と違い、値を取得する際に適切なIAM権限が必要です。パスワードやAPIキーなどの機密情報はSecureStringを使いましょう。


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

AWSコンソール → Aurora and RDS → サブネットグループ → 「DBサブネットグループを作成」

設定項目
名前my-rds-subnet-group
説明my RDS subnet group (private subnets in 2 AZs)
VPCmy-rds-vpc

サブネットの追加:

アベイラビリティーゾーンサブネット
ap-northeast-1amy-private-subnet-1
ap-northeast-1cmy-private-subnet-2

「作成」をクリック。

DBサブネットグループとは: RDSインスタンスを配置できるサブネットを登録した論理グループです。RDSはこのグループ内のサブネットにインスタンスを配置します。最低2つの異なるAZのサブネットが必要な理由は、RDSがMulti-AZフェイルオーバーに対応するための仕様です。


⑩ RDS MySQL インスタンスの作成

AWSコンソール → Aurora and RDS → データベース → 「データベースの作成 ▲」→「フル設定」

UIの変更について(2025年以降): サービス名が 「RDS」→「Aurora and RDS」 に変更されました。「データベースの作成」ボタンはドロップダウン式になっており、以下の3つが表示されます。

選択肢用途
エクスプレス設定簡易設定(詳細設定不可)
フル設定← これを選ぶ(VPC・SGなどを細かく指定できる)
S3から復元バックアップからの復元

VPC・サブネットグループ・SGなどを細かく指定するため、必ず「フル設定」を選択します。

注意: RDSの作成は約10〜15分かかります。

エンジンの選択

設定項目
エンジンのタイプMySQL
エンジンバージョンMySQL 8.0.x(最新)

テンプレート

設定項目
テンプレート無料利用枠

「無料利用枠」を選択すると、スペックが自動的に無料枠対象の設定に制限されます。

設定

設定項目
DBインスタンス識別子my-rds-mysql
マスターユーザー名admin
マスターパスワードHandson1234!
パスワードの確認Handson1234!

インスタンスの設定

設定項目
DBインスタンスクラスdb.t3.micro(無料枠)

ストレージ

設定項目
ストレージタイプ汎用SSD (gp2)
割り当てられたストレージ20 GiB
ストレージの自動スケーリングチェックを外す

接続

設定項目
コンピューティングリソースEC2コンピューティングリソースに接続しない
VPCmy-rds-vpc
DBサブネットグループmy-rds-subnet-group
パブリックアクセスなし
VPCセキュリティグループ既存の選択my-rds-sg を選択(default は削除)
アベイラビリティーゾーンap-northeast-1a

追加設定

「追加設定」を開きます。

設定項目
最初のデータベース名sampledb
自動バックアップを有効にするチェックを外す

自動バックアップを無効にすることで、ハンズオン後の削除がよりスムーズになります。

「データベースの作成」をクリック。

控えておく情報: 作成完了後に表示される「エンドポイント」のホスト名

my-rds-mysql.xxxxxxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com

エンドポイントとは: RDSに接続するためのホスト名です。IPアドレスが変わっても同じホスト名で接続できます。


⑪ EC2インスタンスの起動

注意: EC2を起動する前に⑤のルートテーブル設定(IGWルートの追加とサブネット関連付け)が完了していることを確認してください。UserDataはEC2起動時に一度だけ実行されるため、IGWルートがない状態で起動すると dnf install がインターネットに到達できずApacheのインストールが失敗します。

AWSコンソール → EC2 → インスタンス → 「インスタンスを起動」

基本設定

設定項目
名前my-rds-ap-instance
AMIAmazon Linux 2023 AMI
インスタンスタイプt2.micro
キーペアmy-rds-mysql-key

ネットワーク設定

「編集」をクリックして以下を設定します。

設定項目
VPCmy-rds-vpc
サブネットmy-public-subnet
パブリックIPの自動割り当て有効化
ファイアウォール(セキュリティグループ)既存のセキュリティグループを選択
セキュリティグループmy-rds-ec2-sg

IAMロール

「高度な詳細」→「IAMインスタンスプロファイル」→ my-rds-ec2-role を選択

UserData

「高度な詳細」→「ユーザーデータ」に以下を貼り付けます。

#!/bin/bash
dnf update -y
dnf install -y httpd mariadb105
systemctl start httpd
systemctl enable httpd
echo "<h1>AP Server - RDS MySQL Hands-on</h1>" > /var/www/html/index.html
echo "<p>This server connects to RDS MySQL in the private subnet.</p>" >> /var/www/html/index.html

タグ

キー
Cost123456

「インスタンスを起動」をクリック。起動完了まで約2〜3分待ちます。

控えておく情報: インスタンスのパブリックIPアドレス


⑫ 動作確認

12-1. WebブラウザでEC2のWebサーバ確認

ブラウザで以下のURLにアクセスします。

http://(EC2のパブリックIPアドレス)

「AP Server - RDS MySQL Hands-on」と表示されればEC2は正常に動作しています。

接続できない場合のチェックポイント:

  1. EC2起動後2〜3分以上待ってから再試行(UserDataの実行に時間がかかります)
  2. https://checkip.amazonaws.com で現在のIPを確認し、EC2のSGのHTTP許可IPと一致しているか確認
  3. SSHでEC2に入り sudo systemctl status httpd でApacheの状態を確認

12-2. EC2にSSH接続する

ssh -i C:\Users\ユーザー名\.ssh\my-rds-mysql-key.pem ec2-user@(EC2のパブリックIPアドレス)

12-3. Parameter StoreからDBパスワードを取得する

EC2にSSH接続した状態で以下を実行します。

aws ssm get-parameter \
  --name "/my/rds/db-password" \
  --query "Parameter.Value" \
  --output text \
  --region ap-northeast-1 \
  --with-decryption

Handson1234! と表示されればParameter Storeからの取得成功です。

--with-decryption について: SecureString型のパラメータを取得するときに必要なフラグです。このフラグがないと暗号化されたまま(base64のような長い文字列)返ってきます。

これがParameter Storeの活用方法:パスワードをコードに書かず、実行時にIAMロール経由で取得します。

12-4. RDSへのMySQL接続テスト

⑩で控えておいたRDSエンドポイントを使って接続します。

RDS_ENDPOINT="my-rds-mysql.xxxxxxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com"

# DBパスワードをParameter Storeから取得
DB_PASSWORD=$(aws ssm get-parameter \
  --name "/my/rds/db-password" \
  --query "Parameter.Value" \
  --output text \
  --region ap-northeast-1 \
  --with-decryption)

# RDSに接続
mysql -h $RDS_ENDPOINT -u admin -p"$DB_PASSWORD" sampledb

接続に成功するとMySQLのプロンプトが表示されます。

Welcome to the MariaDB monitor.  Commands end with ; or \g.
...
MySQL [sampledb]>

12-5. RDS上でSQL操作を確認する

-- テーブル作成
CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50),
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- データ挿入
INSERT INTO users (name) VALUES ('Alice'), ('Bob');

-- データ確認
SELECT * FROM users;

-- 後片付け
DROP TABLE users;

EXIT;

12-6. EC2からSSH接続を切断する

exit

⑬ リソースの削除

課金を止めるために、ハンズオン完了後は必ず削除します。

RDSの課金について: RDSはインスタンスが稼働している間は課金されます(db.t3.micro は無料枠外の場合 約$0.017/時間)。不要になったら必ず削除してください。

削除順序

依存関係があるため、必ずこの順番で削除します。

1. EC2インスタンスを終了(→ 終了済みになるまで待機)
2. RDSインスタンスを削除(→ 削除完了まで約10〜15分待機)
3. RDS DBサブネットグループを削除
4. SSM Parameter Storeのパラメータを削除
5. セキュリティグループを削除(RDS用 → EC2用の順)
6. ルートテーブルの関連付け解除・削除
7. インターネットゲートウェイをデタッチ・削除
8. サブネットを削除(3つ)
9. VPCを削除
10. IAMロールを削除
11. キーペアを削除(任意)

1. EC2インスタンスを終了する

EC2 → インスタンス → my-rds-ap-instance を選択 → 「インスタンスの状態」→「インスタンスを終了」

確認ダイアログで「終了」をクリック。「終了済み」になるまで待ちます(2〜5分)。

2. RDSインスタンスを削除する

Aurora and RDS → データベース → my-rds-mysql を選択 → 「アクション」→「削除」

項目操作
最終スナップショットを作成チェックを外したまま(ハンズオンなので不要)
「私は〜了承します。」チェックを入れる(これを入れないと削除ボタンが押せない)
確認フィールドdelete me と入力

「削除」をクリック。削除完了まで約10〜15分かかります。ステータスが「削除中」から消えるまで待ちます。

注意: 「最終スナップショットを作成」にチェックを入れると、削除後もスナップショットが残り別途保存料金が発生します。必ず外してください。

3. RDS DBサブネットグループを削除する

Aurora and RDS → サブネットグループ → my-rds-subnet-group を選択 → 「削除」

RDSインスタンスが完全に削除されている必要があります。「使用中」エラーが出る場合はRDS削除完了を待ちます。

4. SSM Parameter Storeのパラメータを削除する

Systems Manager → パラメータストア → /my/rds/db-password を選択 → 「削除」

5. セキュリティグループを削除する

EC2 → セキュリティグループ

EC2のSGはRDS SGのソースとして参照されているため、RDS SGから先に削除します。

  1. my-rds-sg を選択 → 「アクション」→「セキュリティグループを削除」
  2. my-rds-ec2-sg を選択 → 「アクション」→「セキュリティグループを削除」

6. ルートテーブルを削除する

VPC → ルートテーブル

まず各ルートテーブルのサブネット関連付けを解除してから削除します。

  1. my-public-rt を選択 → 「サブネットの関連付け」タブ → 「サブネットの関連付けを編集」→ チェックをすべて外す → 「保存」
  2. my-private-rt を選択 → 同様に関連付けを解除
  3. 各ルートテーブルを選択 → 「アクション」→「ルートテーブルの削除」

7. インターネットゲートウェイをデタッチ・削除する

VPC → インターネットゲートウェイ → my-rds-igw を選択

  1. 「アクション」→「VPCからデタッチ」→「デタッチ」
  2. 「アクション」→「インターネットゲートウェイの削除」→「削除」

8. サブネットを削除する(3つ)

VPC → サブネット

my-public-subnetmy-private-subnet-1my-private-subnet-2 を選択 → 「アクション」→「サブネットの削除」

9. VPCを削除する

VPC → お使いのVPC → my-rds-vpc を選択 → 「アクション」→「VPCの削除」

10. IAMロールを削除する

IAM → ロール → my-rds-ec2-role を選択 → 「削除」

11. キーペアを削除する(任意)

EC2 → キーペア → my-rds-mysql-key を選択 → 「アクション」→「削除」


まとめ

ステップ内容
キーペア作成
②③④⑤VPC / サブネット3つ / IGW / ルートテーブルの設定
EC2用SG(HTTP:80・SSH:22)+ RDS用SG(MySQL:3306、SG-to-SG制御
⑦⑧IAMロール + Parameter Store(SecureString)でパスワードを安全に管理
DBサブネットグループ(2AZ必須)の作成
RDS MySQL 8.0 インスタンス作成(約10〜15分)
EC2起動(UserDataでApache自動セットアップ)
EC2 → Parameter Store → RDS MySQL への接続テスト

EC2にDBをインストールする方式との最大の違いは、AWSがOSのメンテナンス・パッチ・バックアップを自動管理してくれる点です。パスワードをParameter Storeで管理し、SG-to-SGでRDSへのアクセスを制御するパターンは、実際のAWS本番環境でも標準的な設計です。

CloudFormationで同じ構成を自動化したい場合は、CloudFormation版ハンズオンを参照してください。コマンド1本で22リソースを一括デプロイできます。

コメント