データベースを作成する
一旦 MySQL でのデータベースを作成する。
- RDS → データベース → 「データベースの作成」クリック
設定(データベース作成方法を選択)
- データベース作成方法を選択:標準作成
設定(エンジンのオプション)
- エンジンのタイプ:MySQL
- エンジンバージョン:8.0 以上
設定(テンプレート)
- テンプレート:本番稼働用 or 開発/テスト(環境に合わせる)
設定(可用性と耐久性)
- デプロイオプション
- マルチ AZ DB クラスター: 企業でやるならこれ。もっと予算があれば Aurora が良いと思う
- マルチ AZ DB インスタンス: 単一の DB インスタンスの約2倍のコスト
- 単一の DB インスタンス: 個人でやるならこれが一番安いのでこれ
設定(設定)
- DB クラスター識別子:分かりやすい名前
- 認証情報の設定
- マスターユーザー名:admin とか root とかなんでも
- 認証情報管理:一旦簡単な「セルフマネージド」を選択しパスワードを設定する
設定(インスタンスの設定)
- DB インスタンスクラス:予算と環境に合わせる。 t クラスが一番安い
設定(ストレージ)
- ストレージタイプ:汎用 SSD (gp3)
- ストレージ割り当て:MySQL の場合ストレージにもお金がかかるので、ちゃんと料金計算する。後で変更できる
- ストレージの自動スケーリング:どちらでも
設定(接続)
- コンピューティングリソース:EC2 コンピューティングリソースに接続しない
- ネットワークタイプ:一旦 IPv4 で
- Virtual Private Cloud (VPC):
- こちら作成してなかったら事前に作成しておく。試すだけとかならデフォルトでいいかも。こちらは「データベースの作成後に、VPC を変更することはできません。」と書いてあるので注意
- DB サブネットグループ:試すだけとかならデフォルトか、なかったら作成するを選択
- パブリックアクセス:AWS だけの構成であれば「なし」
- VPC セキュリティグループ (ファイアウォール)
- こちらも作成してなかったら事前に作成しておく
- 追加設定 - データベースポート:3306
設定(データベース認証)
- データベース認証オプション:一旦パスワード認証で
設定(モニタリング)
- 拡張モニタリングの有効化にチェック
設定(追加設定)
なにかあれば設定しておく。
バックアップやスロークエリログなどはチェックしておくと良いかも。
作成
「データベースの作成」クリック
セキュリティグループの作成
- EC2 → ネットワーク & セキュリティ → セキュリティグループ → 「セキュリティグループを作成」クリック
設定(基本的な詳細)
- セキュリティグループ名:分かりやすい名前
- VPC:作成してなかったら事前に作成しておく。試すだけとかならデフォルトで
設定(インバウンドルール)
- 「ルール追加」クリック
- タイプ:MySQL/Aurora
- ソース:Anywhere-IPv4 or カスタム(「0.0.0.0/0」選択)
設定(アウトバウンドルール)
- 「ルール追加」クリック
- タイプ:MySQL/Aurora
- ソース:Anywhere-IPv4 or カスタム(「0.0.0.0/0」選択)
作成
「セキュリティグループを作成」クリック
EC2 インスタンス側から RDS に接続する
- OS は Amazon Linux 2023
AWS EC2 amazon linux 2023 で MySQL に接続する時は MariaDB サーバーをインストールして行うらしい
MariaDB のインストール
$ dnf search mariadb
$ sudo dnf install -y mariadb105
$ mariadb --version
mariadb Ver 15.1 Distrib 10.5.25-MariaDB, for Linux (x86_64) using EditLine wrapper
接続
- RDS → データベース → データベース選択 → 接続とセキュリティ → エンドポイントをコピー
$ mariadb -P 3306 -h xxxxx.ap-northeast-1.rds.amazonaws.com -u <username> -p
接続できない時
- 同じ VPC か確認
- RDS側のセキュリティグループで 3306 番ポート(インバウンド、アウトバウンド)が解放されているか確認