views4GCPのストレージサービスについてまとめてみた。Exp:47127ニチアサ好きの本サイト管理マン。TweetShareHatena注意この記事は2017年11月8日に更新されたもので、内容が古い可能性がありますのでご注意ください。今回は、GAE上のWordPressの移設方法について紹介します。Aリージョンで作成したWordpressを別のリージョンに移したいAプロジェクトで作成したWorspressを、Bプロジェクトへ移動したい複数プロジェクトでそれぞれ管理していたWordPressを1つのプロジェクトにまとめたいなど、Wordpress環境をゼロから作り直す事なく、DBやコンテンツを移行する事ができます。コンテンツの移行が面倒なのでは...と思うかもしれませんが、そんな事はありません!少しのコマンドを使えばあっという間にコピーが可能です。みなさんも是非試してみてください。移行先のプロジェクトを用意し、移行元のサービスアカウントをプロジェクトの編集者メンバーとして追加しておく。WordPressファイル一式を用意GAEにアップするファイル類をローカルに準備します。※もし、テーマファイル内のファイル等でメディア参照をしていて、GCSのストレージ名を記載の場合、URLを移行先のストレージ名に変更しておきます。wp-config.php内のDB名、ユーザー名、パスワード、インスタンス名を移行先のものに変更する。ここから移行作業になります。3つの作業に分かれます。メディアのコピーDB情報の移行WordPressファイルをアップロード順番に見ていきましょう。Storage(GCS)にあるメディアのコピーGAEでWordPressを利用の場合、画像等のメディアは、GCSに保管されます。ローカルにメディアがある場合、手動でアップし直す等の手段もありますが、GCS→GCSへ簡単にコンテンツのコピーが可能です。Shellを起動します。メディアコピーのコマンドを入力します。gs://bbb-bucketnameコンテンツの移行後、移行先のバケット内にコンテンツがコピーされた事を確認し、さらにコマンドを入力します。gs://bbb-bucketname/*.jpg(メディアに合わせて拡張子を変更して下さい)このコマンドにより、バケット内のコンテンツが一般公開されるようになります。(バケット内のコンテンツの横のチェックボックスにチェックを入れ、画面上部の【一般公開で共有する】をクリックする、という一連の動作と同じ事がこのコマンドで可能です!)移行先のバケットにファイルがコピーされている事を確認したらメディアコピーの作業は完了です。※拡張子を決めず、一括で公開処理も行えます。その場合は一括で(*.jpg→*.*)変換してもOKです。Engine(GCE)を使用します。利用した事がない方は、VMインスタンスを作成して下さい。項目を参照して下さい。移行先のプロジェクトのSQL→アクセス制御→承認→ネットワークを追加の欄に、作成したVMインスタンスの外部IPを追加して下さい。この後実行するコマンドが通りません。VMインスタンスを起動してバックアップファイルを作成VMインスタンスの画面に入り、作成したインスタンスのSSHをクリックし、起動した画面で下記コマンドを入力し、移行元のDBよりデータのエクスポートを行います。-p赤文字の部分を手元の情報に合わせて以下の通り変更して下さい。移行元のインスタンスのIPを入れます。作成するバックアップファイルにつける任意の名前をつけます。部分には移行元のDB名を入れます。2003が出た場合→この上の、準備の項目を参照して、移行先のプロジェクトのネットワークにVMインスタンスの外部IPを追加して下さい。1045が出た場合→DB接続パスワードが違う場合があります。第1世代のSQLを利用の場合、localhostと%(すべてのホスト)、1つの名前で2つのユーザーが作成されますが、2つのパスワードが同じかどうかを確認しましょう。文字列の置換ファイル内に移行元のバケット名があるので、それをコピー先のバケット名に置換します。Backupname.bkupとコマンドを入れ、でファイルを展開します。打ち込み、ファイルを上書きして終了です。例)コード:%s/cloudace-bucket-name/cloudace-media-bucket\.appspot\.com/g※バケット名に.(ドット)が含まれる場合、エスケープさせる事を忘れないでください。ドメインの置換や、GCSのバケット名等を変更します。インポート置換したバックアップファイルを移行先DBにインポートします。置換後に引き続き、下記コマンドを利用して実行します。Backupname.bkup赤文字の部分を手元の情報に合わせて変更して下さい。移行先のIPDBNAMEにはconfig.phpに記載の移行先のDB名をそれぞれ記載します。GAEにWordPressファイルをアップロードプロジェクト名、バージョン名を変更している事を確認し、移行先のプロジェクトにアップします。DB名が、インポート時に指定した名前と一緒である事を確認してください。--no-promoteと入力します。付けてない場合はデフォルトバージョンが自動的に今回デプロイしたバージョンに切り替わります。入力後、Enterを押し、(Y/N)の選択肢がでたら、Yを入力し、進めます。アップ完了後、GCPのコンソール画面に入り、GAE→バージョンから、アップしたWordPressにアクセスしてDBに接続出来ているか、WordPressが表示されているか確認します。移行元のサービスアカウントを移行先のIAMにプロジェクト編集者メンバーとして追加しておく。移行先のプロジェクトのSQL→アクセス制御→承認→ネットワークを追加の欄に、作成したVMインスタンスの外部IPを追加の項目を確認してください。注意点アイキャッチ画像(サムネイル画像)やを記事中・ページ内に画像を設定している場合、GCSのアドレス変更により、アイキャッチ画像が表示されなくなったり、管理画面内の、メディア一覧画面にて、画像が表示されない事があります。これは、GAEのプラグインの動きのようです。GAEのプラグインが、GCSの機能を使い、画像配信用のURL(https://lh3.~から始まるもの)を生成し、DBに書き込みます。記事やアイキャッチ画像に用いられるURLが、移行してきたDB内の配信用のURLと一致しないため、画像が表示されない、という現象が見られるようです。アイキャッチ画像や、記事中・ページ中の画像が表示されない、といった場合、手作業で再度画像を再設定する必要があります。記事やページの編集画面にて、画像を再アップロードし、アイキャッチ画像や記事中・ページ中に入れる画像を再度設定して下さい。弊社でもこの現象が発生したりしなかったり、という状況なので、どのような状況下で発生するのか、引き続き検証等行っていきたいと思います。まとめいかがでしょうか。コマンドに不慣れな方でも、この記事を見ながら実行して、コマンドに触れて少しずつ慣れていってもらえると嬉しいです。いうコマンドがあります。バケットの作成から、ファイルのアップロード、ダウンロード等、GCSに関する操作がコマンドで簡単にできます。大量のファイルに一括で何か操作を行いたいという場合はコマンドを使うと便利ですよ。公式にドキュメントがありますのでこちらを参照してくださいね。関する開発については、クラウドエースへご相談下さい。無料相談会も行っております。お気軽にお問い合わせ下さい。