🎉

RDSを構築してデータベースを作成し、データを投入してみた

2023/07/24に公開

はじめに

今回は、RDSを構築して、データベースを作成し、データを投入してみたいと思います。
以前、SAAの勉強をしていた際にRDSの動画学習をしておりました。
1回作成してみたもののほとんど忘れてしまったので、定着させようと思ったのが今回のきっかけです。

作成の流れ

VPCとサブネットの設定をまとめてしていきます。設定は以下の通り。

作成されました。

RDSを作成する前にサブネットグループを作成します。
サブネットグループは、作成するデータベースエンジンの展開するサブネット先(AZ先)を指定するものです。
どこのAZに展開するかを先にサブネットグループを作成しておく必要があります。
以下設定内容になります。

RDSを作成していきます。
今回は「標準作成」を選択します。(データベースの構成方法を理解するため)
「簡単に作成」とは、AWS側で最適な構成を設定してくれて、名前のみ設定すれば自動的にデータベースを作成できるようになっています。

スクロールしていくと「簡単作成のデフォルト設定を表示」というものがあり、ユーザ側が指定をしなくても以下のような構成を使っています、と示してくれています。

次にエンジンのオプションについてです。
今回はMySQLを選択します。

EC2を先に作成していなかったのでこのタイミングで作成します。

作成するRDSにEC2を接続します。

作成完了しました。

RDSがEC2に接続されていることも確認できました。

データベースに接続していきます。
teratermを使い、パブリックサブネットにあるインスタンスから操作していきます。

sudo su -でrootユーザに切り替えます。

mysqlのコマンドが使用できるようにするため、パッケージをインストールしていきます。

インストールできました。

「mysql -h <作成したRDSのエンドポイント> -u <ユーザ名> -p」を入力、パスワードを入力します。RDSのエンドポイントは以下赤枠部分です。

接続しようとしたところ、


認証プラグインがsha256_passwordとなっていることが原因だそうです。
調べてみると、「MySQLに接続して」認証プラグインを確認している記事が散見されました‥MySQLに接続できないことが問題だからどうすればいいんだ?となり、ずーっと苦戦をしていて、色々探っていると‥

接続できました!

何が問題だったかというと‥ユーザ名が「cloudtech」(マスターユーザ名)が正しいところ、「cloudtech-rds-1」(DB識別子)と入力してしまっていました。(以下赤枠部分)
初心者がつまずきそうなところかもしれないですよね‥

接続できたので、「testdb」という名前のデータベースを作成します。

「testdb」という名前のデータベースを選択します。

データベースの中にテーブルを作成していきます。

テーブルが作成されたことを確認しました。

サンプルデータベースに対し、任意のデータを投入します。

RDSにデータが投入されたことを確認しました。

最後に

過去にやっているのにMySQLに接続できないという思わぬところでつまずいてしまいましたが、何とかやりたいところまで出来ました。
また、MySQLのコマンドを忘れてしまっていました。今後もし作成する際はこの記事を見返すことで思い出せるので作成して良かったです。

参考資料

https://qiita.com/CyberMergina/items/f889519e6be19c46f5f4

Discussion