💡

EC2内にあるMySQLからRDSに移行する

2024/11/14に公開

概要

表題の通りです。

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