AWS RDS データベースの作成から Amazon Linux 2023 での接続まで

データベースを作成する

一旦 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

接続

  • RDS → データベース → データベース選択 → 接続とセキュリティ → エンドポイントをコピー
$ mariadb -P 3306 -h xxxxx.ap-northeast-1.rds.amazonaws.com -u <username> -p

接続できない時

  • 同じ VPC か確認
  • RDS側のセキュリティグループで 3306 番ポート(インバウンド、アウトバウンド)が解放されているか確認