当サイトはAWS+WordPress(KUSANAGI)を利用しております。
Webサイトですので、基本的には24時間365日稼働させていますし、あまり止めたくはありません。
また、「テーマのメジャーバージョンアップ」「プラグインの動作確認」「PHPコーディング」など、本番機で直接実施したくない作業も多々あります。
そんな時は、AWS(などのクラウド)ならではの「コピーして開発機を準備」→「確認」→「開発機を削除」ということを行いましょう。
なお、下記のやり方は1つの方法でしかありませんので、環境や手間の度合いに応じて色々とお試しください。
AWSで複製
AMIの作成
AWS > EC2 > インスタンス
複製元のインスタンスにチェックを入れ、アクション > イメージ > イメージの作成
「再起動しない」にチェックを入れないと、複製元のインスタンスが再起動しますのでご注意ください。
作成したAMIを使ってEC2を構築
EC2 > イメージ > AMI
に、上記で指示したイメージのレコードが増えています。
ステータスが「available」になるまで待ちましょう。(状況によっては10分程度かかります。)
「available」となったら、チェックを入れて「起動」しましょう。
インスタンスタイプの設定やネットワークの設定を行い、インスタンスの稼働となります。
ネットワークは本番機とは別のVPCとしておくと安全でしょう。
EC2 インスタンスを起動
作成したインスタンスを起動します。
セキュリティグループのインバウンドルールが「SSH」しか空いていないと思われますので、「HTTP」「HTTPS」も追加しましょう。
合わせて、Elastic IPも紐付けましょう。
これでインターネット経由でサーバにアクセスできます。
テスト利用に向けた微修正
本番ドメインのまま作業をすると事故りそうですので、テスト用ドメインの設定に変更します。
テスト用ドメインは適当なドメイン名を使用します。
(あくまで、自分の端末からしかアクセスしないため)
端末のhostsを利用して接続します。
KUSANAGIの設定変更
以下はKUSANAGIの設定によるかと思いますので、ご参考程度に。
#テストドメインでWordPressにアクセスできるように設定追加(nginx) cd /etc/nginx/conf.d/ vim kusanagi_html_http.conf #以下の行に「テスト用ドメイン」を追記 server_name xxx.xxx テスト用ドメイン; #KUSANAGIのFQDN設定を変更 #SSL証明書を取得する必要はないので、エラーが出ても無視でOK kusanagi setting --fqdn テスト用ドメイン プロビジョニング名(省略可) #KUSANAGI再起動 kusanagi restart
端末hostsの書き換え(Mac)
#【Macで作業】 # ターミナル.app で作業 sudo vim /private/etc/hosts # hostsに以下を追記 # ファイルの末尾でOK EC2のElastic IP アドレス テスト用ドメイン # 作業結果の確認 # IPアドレスがテスト用のElastic IPになっていればOK # ICMPの穴開けはしていないため、応答はTimeoutになるはず。 ping テスト用ドメイン
WordPress設定の変更
本番設定のままではマズい設定を変更します。
外部サービスによっては、ドメイン名を指定しての契約になっていることがあります。
十分ご留意ください。
例)
- Google Analytics設定を解除
- 広告設定を解除
あと、本番機と間違えて作業しないように、WordPress管理画面の背景色を変えておくなど、工夫をしておきましょう。
(WordPress管理画面 > ユーザー > あなたのプロフィール > 管理画面の配色)
後片づけ
確認が終わったら、きちんとゴミ掃除しておきましょう。(忘れると課金され続けます・・・)
EC2の削除
EC2 > インスタンス > インスタンスの状態
停止 → 終了です。
インスタンスの状態が「terminated」となればOKです。
しばらく経過すると、インスタンスの一覧から勝手に行が消えます。
Elastic IPの解放
使用していないElastic IPは課金されます。
EC2 > Elastic IP > 該当のレコード
にて、Actions > Elastic IP アドレスの解放 を行いましょう。
AMIの削除
EC2 > AMI > 該当のレコード
にて、アクション > 登録解除 を実行。
端末hostsのレコード削除
害はなさそうですが、置いておくと忘れてしまいますので削除しておきましょう。
ハマったこと
wordpressの画面が表示されない
ブラウザから「直接IPアドレスで接続」「テスト用ドメインで接続」しても、WordPressのトップページが表示されません。
(そのような設定になっていました。。)
上述の通り、nginxやKUSANAGIの設定を変更して回避します。
mariaDBが起動しない?
ブラウザからWordPressに接続したはずが、「データベース接続確立エラー」。
「複製しただけなのに、何故???」と思いましたが、原因は「ケチさ」にありました。笑
本番機と比べて開発機はメモリの割り当てをケチったため(利用料の問題)、メモリが足りなくてmariaDBが起動できませんでした。
view /var/log/mysql/mysqld.log
>[ERROR] InnoDB: Cannot allocate memory for the buffer pool
>[ERROR] Plugin 'InnoDB' init function returned error.
>[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
設定を見直すのも手間ですので、本番機と同じスペックでEC2を再作成しました。
(ずっと使うわけではないので、誤差レベルの利用料)
絶賛配信中!
メルマガ詳細はこちら >>>
広告を含むご案内のメールをお送りする場合があります。
以下も、ぜひご活用ください^^