💡
EC2内にあるMySQLからRDSに移行する
概要
表題の通りです。
EC2内にMySQLを置く形でWebアプリケーションの構築をしていたが、
DBデータやログデータが増えてくるにつれてEC2内の容量が少なくなっていった。
RDSに移行することでEC2内への負担を少なくしたいというところ。
ちなみにEC2のインスタンスタイプはt2.micro...
手順
db作成
セキュリティ設定
疎通確認
リストア
の手順になる
RDSにてデータベースを作成する
RDSにてMySQLをエンジンをオプションにして作成する。
ちなみに簡単に作成ってのもある。
- テンプレートは無料枠
- 認証情報管理はセルフマネージド(独自のパスワードを作成するか、RDS に自分で管理するパスワードを作成してもらいます。)
AWS Secrets Managerとやらを使用すると追加料金が適用とあったのでとりあえず。 - パスワード認証
などなどなるべく少なめスタートで - VPCはEC2と同じものを選択
- セキュリティグループ (ファイアウォール)は独自て作っておいた
セキュリティグループについて
EC2からのアクセスを許可するのと、RDSからのアウトバウンドをOKにしておく
つまりは下記のような感じ。
RDSの方
インバウンドにこんな感じでEC2のセキュリティグループをアタッチする
EC2の方
アウトバウンドはこんな感じ
疎通確認
hogehoge.ap-northeast-1.rds.amazonaws.com
ここに関しては各々そのRDSを入れてください。
mysql -h hogehoge.ap-northeast-1.rds.amazonaws.com -u アドミン名 -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 60
Server version: 8.0.39 Source distribution
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
リストアする
今回はdumpデータはEC2の直下のところに入れました。
mysqldump -u ユーザ名 -p データベース名 > /home/ec2-user/backup.sql
まずRDSの方にテストのデータベースを作ります。
mysql -h hogehoge.ap-northeast-1.rds.amazonaws.com -u アドミン名 -p
CREATE DATABASE `test_database`;
そしたらリストア
mysql -h hogehoge.ap-northeast-1.rds.amazonaws.com -u アドミン名 -p test_database < /home/ec2-user/backup.sql
乗っかっているアプリケーションは稼働中なので、影響ないようにテストコマンドとかで接続確認を行おうかなぁと言ったところです。
Discussion