#ゴール
- ①ロリポップのDBの中身をRDSに移動
- ②ロリポップのFTPに置いてあるファイルをEC2のインスタンスに移動
###①でやるべきこと
⑴ロリポップのDBにログインしてdumpファイルを取得
⑵AWSのVPCの構築
⑶RDSを作成して設定を行う
⑷MysqlWorkbenchでdumpファイルをインポート
###②でやるべきこと
⑴ロリポップにFTPでアクセスしファイルを取得してローカルに保存
⑵EC2インスタンスを立てる
⑶ELBの設定
⑷Route53の設定
##前提条件
-
AWSのアカウントを持っている
-
MySQLWorkbenchがインストールされている
##①の実装
####⑴ロリポップのDBにログインしてdumpファイルを取得
ロリポップのデータベースにログインしてエクスポートを押してdumpファイルをローカルで取得(ex: hoge.sql)
####⑵VPCの設定
今回はデフォルト(AWS作成時に作られる)のVPCを使用します。
#####フロー
- デフォルトVPCを確認
デフォルトVPCはAWSのVPCのコンソールのVPC一覧の中身の"デフォルトVPC"の欄で確認できます。
- プライベートサブネットを作成
VPCの作成時にパブリックのサブネットが作成されているので、プライベートのサブネットを作成していきます。
このサブネットにはDBサーバーを配置します。
DBサーバーはインターネットからアクセスされたくないですが、 データ取得やデータ書き込みの際にEC2からのアクセスを許可して、インターネットへのアウトバウンドを行わなければならないのでここではNATゲートウェイを使います。
NATゲートウェイではパブリックサブネットとElastic IPを入力(割り当てるElastic IPがない場合は作成)して、プライベートサブネットからインターネットへの通信を可能にします。
Natゲートウェイを作成したらサブネットを作り、そのルートテーブルのターゲットにNatゲートウェイIDを追加します。
インターネットゲートウェイの作成は既にパブリックサブネットのルートテーブルに書かれているので必要ないです。
####[豆知識]
プライベートのサブネットとパブリックサブネットの違いはルートテーブルのルールにインターネットゲートウェイとの接続の有無で決まります。明示的な違いはないです。
####⑶RDSを作成して設定を行う
#####フロー
- サブネットグループを作成
DBインスタンスを配置するサブネットを指定します。
RDS作成時に指定することになるので先に作っておきましょう。
- セキュリティグループの作成
RDS用のセキュリティグループ を作成します。
今回はEC2からのアクセスしかないので、インバウンドをMySQL/Aurora 3306ポートに設定します。
- RDSでデータベースを作成
データベースを作成します。
エンジンはMySQLと互換性があるAuroraエンジンを選択し、マスタユーザー名、マスターパスワードを入力します。
パブリックアクセス可能はしたくないですがMySQLWorkbenchからのアクセスを簡略化するために一時的に、許可する設定にします。
これを許可していれば、EC2を踏み台にせずにMySQLにログインすることが可能です。
- MysqlWorkbenchでdumpファイルをインポート
フロー
- MySQLWorkbenchでRDSのDB(writer)とコネクトを始める
MySQLでDB名、マスターユーザ、マスターパスワードを入力してアクセスします。
- dumpファイルをエクスポート
エクスポートが終わったらRDSの設定でパブリックアクセスを無効にしましょう。
これで①の実装が終わりました。
次回は②(ロリポップのFTPに置いてあるファイルをEC2のインスタンスに移動)をやっていきます!