Posted at

ロリポップからAWSへWordpressのサイトを移行してみる①

AWS ロリポップ.png


ゴール


  • ①ロリポップの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を使用します。

aws簡略図.png


フロー


  • デフォルトVPCを確認

デフォルトVPCはAWSのVPCのコンソールのVPC一覧の中身の"デフォルトVPC"の欄で確認できます。



  • プライベートサブネットを作成

VPCの作成時にパブリックのサブネットが作成されているので、プライベートのサブネットを作成していきます。

具体的にはデフォルトVPCでサブネットを作成します。

nat-gateway簡略図.png

このサブネットには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のインスタンスに移動)をやっていきます!