【ブログ移行計画②】AWSのWordPressに投稿データを移行してみた
こんにちは、Taikiです。
その構成はこんな感じです。ネットワークはInternet経由、InstanceはEC2(tc2.microの無料枠)です。
今回はドメイン取得とDNS登録し、投稿データを移行の上、サイト公開まで行います。
目次はこちらです。
インスタンスとIPアドレスの対応付け
前回選択したAMIはWordPressのプレインストール版ですが、このAMIの提供者は、先日VMWareが買収したBitnamiです。
このBitnamiについて少し解説を。この会社はYコンビネータというスタートアップを中心としたファンドの出資により立ち上がりました。WordpressやRedmineなどのオープンソースをパッケージ化してクラウドベンダーに提供しています。
一方、VMWareはクラウドやオンプレのマルチクラウドインフラ市場に「VMware vSphere」を提供していますが、今後インフラ市場だけでは生きていけません。KubernetesやAnsible、AMI複製などインフラ屋がいなくても開発者、リテラシーあるユーザーが自力でインフラ構築できる時代です。VMWareもアプリケーションプラットフォームに力をいれるために同社を買収したそうです。
では話を戻します。まずインスタンスにIPアドレスを割り当てるためにElastic IPを使います。
ここではAmazonプールを使用します。もしオンプレリソースとAWSを結びたいなら、ユーザー所有を選び、VPN GatewayやNAT Gatewayを使うことになります。
割り当てられたIPアドレスをEC2インスタンスと関連付けします。
ドメイン取得とDNS登録
新規ドメインの取得はRoute53で行います。お名前.コムなど日系サービスと比較するとドメインの相場はRoute53が高いですね。。xyzドメインですが、年間13ドルほどでした。
次に、DNS登録を行います。DNS登録を行うとドメインとIPを関連付けし、このブログをインターネットに公開できます。
タイプ列の「A」がIPアドレスとドメインの関連付けに必要なレコードです。
WordPressから投稿データの移行
最後にWordPressから投稿データをテキストベースで移行し、WordPress側でそのデータをインポートすれば完了です。アイキャッチ画像やレイアウトなどまだカスタマイズ不十分ですが、テスト移行できました。データ移行の手順はこちらを参考にさせていただきました。
はてなぶろぐからワードプレスへ引っ越し。移行手順を1から説明します。 | トレーダーが漫画を描いています
接続方法と認証情報について
今回AWSでWordPressを立てる上で一番苦戦したことが、AWSやWordPressへの接続の仕方や認証まわりです。どのリソースで何をしたいか、によって、接続方法は異なりますが、その認証情報をどう入手するかを調べるのに時間がかかったため、ここで整理しておきます。
AWSマネジメントコンソール
AWSマネジメントコンソールは、WEBでAWSのサービスやリソースを管理するためのGUIサービスです。AWSのサイトをみると、画面右上のこのボタンです。
サインインに必要な情報は、AWSアカウントとパスワードです。パスワードは、AWSアカウントを作成する時に登録します。このコンソールでは、サービスやリソースの確認や変更、請求金額の確認などあらゆることが管理できます。
AWS CLI
AWS CLIは、黒窓(CLI)でインスタンスの操作や確認ができます。AWS CLIを使用するためには、アクセスキーやシークレットアクセスキーが必要となります。
アクセスキーの作成
アクセスキーやシークレットアクセスキーの認証情報を取得するためには、AWSサービスの1つであるIAM(Identity and Access Management)でユーザーを追加します。
ユーザーに必要な権限を与え、その認証情報からアクセスキーを作成します。ダウンロードしたCSVファイルは厳重に保管しておきましょう。
AWS CLIのインストール
次に、AWS CLIを操作PCにインストールします。インストール手順はこちらです。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-windows.html
AWS CLIの操作
インストール後、DOSやPowershellなどのネイティブなCLIを起動しこちらのコマンドを打ちます。
aws configure
すると、アクセスキーやシークレットアクセスキーが要求されますので、先で入手した値を入力します。region nameとoutput formatは任意でかまいません。
Default region name:
Default output format:
認証が通れば、コマンド操作でインスタンスを起動や停止が可能となります。インスタンス名やリージョン名は、AWS マネジメントコンソールでご確認ください。
▼インスタンス起動コマンド:
aws ec2 start-instances --instance-ids [インスタンス名] -- [リージョン名]
▼インスタンス状態確認コマンド:
aws ec2 describe-instance-status --instance-ids [インスタンス名] --region [リージョン名]
▼インスタンス停止コマンド:
aws ec2 stop-instances --instance-ids [インスタンス名] --region [リージョン名]
AWSにSSHで接続する
BitnamiのWordPressにサインインするために、SSHで接続し、コマンド操作により、そのユーザー名とパスワードを入手する必要があります。今回は、TeraTermでSSH接続しました。そのためには、先のElastic IPで付与されたグローバルIP、AWSアカウント作成時に生成された秘密鍵(pemファイル)、ユーザー名(ubuntu OSではubuntuとなります)とパスワードが必要です。
SSHで接続後、下記のコマンドでWordPressのユーザー名とパスワードを取得します。
cat ./bitnami_credentials
以上でめでたく、WordPressにも接続ができ、データの移行を終えることができました。
まとめ
簡単ですが、今回の設定を図にまとめてみましたので、ご参考ください。詳細な手順は省いていますが、お知りになりたい方はお気軽にお問い合わせください。