Master/Slave から HRD への移行
2012年8月24日 Master/Slave Datastore 廃止の正式発表メールあり
2012年8月24日(日本時間)にGAEから Master/Slave Datastore 利用者へ向けて
High Replication Datastore への移行を促すメールが送信されました。
2012年4月4日に詳細は未定ながら、GAEから Master/Slave Datastore の廃止が明言されました。
それによりGAEでは、High Replication Datastore への速やかな移動を推奨しています。
GAEには、Master/Slave applications と、 High Replication Datastore applications の2つのDatastore設定があり
キャラボットサーバで利用されている Datastore は、Master/Slave applications が殆どだと思われます。
※ 自サーバがどちらなのかは、GAE の My Applications を開き、一覧の Storage Scheme に
High Replication の記載が有るか無いかで確認出来ます。無ければ Master/Slave です。
すでにGAEの管理コンソールには、 Master/Slave Datastore から
High Replication Datastore(HRD) への複製及び移行ツールが準備されており
それを使用すれば、現在のサーバ設定やデータが丸ごとHRDサーバに移行されます。
以下に、当方がサーバの複製及び移行ツールを使用した際の手順等を記載しますので
移行する際の参考にして頂ければと思います。
※ 2012年4月時点での、GAEの移行手順書に添って移行した際の記録です。
画像も2012年4月時点のものですので、現在の仕様と違っているかもしれませんが根本は同じだと思います。
現在、諸事情により画像の差し替え等が出来ない状況にあり、古い画像ですみません。
※ HRDサーバ移行後の状況を知りたい方はこちら
最初に
サーバで稼働しているbotを全て一時停止させて下さい。
※ サーバを誰かに貸していて一時停止お願いの連絡等が出来ない場合には
管理コンソールから個別に一時停止させることも出来ます。
出来れば、GAEのシステムにエラー等起きていないか確認を… System Status
ひとつでもエラーがあるときには、後日にした方が無難だと思います。
サーバの複製
GAEの管理画面を開き、赤線部分 Application Settings をクリック

ページが開いたら、Duplicate Application Settings でサーバを複製します。

① 既に、現在のサーバ名に-hrd と付いたサーバ名が欄内に入っていると思いますが
自分の好きな名称に変更することも出来ます
② 名称が使えるかどうか、Check Availability で確認
③ Duplicate Application… をクリックして、サーバを複製します
My Applications 一覧が表示され、Storage Scheme に High Replication と
書かれたサーバが複製されていると思います。

※ 画像では、High Replication と書かれたサーバが2つありますがキャラボ以外の他のアプリケーションです。すみません。
▲!▲ 『 There were errors:developer does not own the app id being forked 』
というエラーが出て複製が出来ないことがあるようです。
時間を置いて解決した場合もあれば、何度やってもエラーになり複製出来ない場合もあるようです。
なぜエラーが出てしまうのか原因は不明のようです。
Googleアカウントの連携に問題がある場合に出るようですが、ハッキリしたことは分かっていません。
解決法は分かりませんが、対処法はこちらを参考にしてみて下さい。→ エラーでGAEサーバの複製が出来ない
もしくは、GAEにキャラボットサーバを立てている友人等に頼んで
デプロイをやってもらうの手順1〜3を参考にサーバへ招待し、複製してもらう手もあります。
※ 上記の方法でダメなとき、頼める人がいないとき、当ログの管理人でよければ、複製のお手伝いが可能です。
@green3mackerel(Twitter)
HRDサーバ(複製されたサーバ)にキャラボットをデプロイ
新しく作成されたHRDサーバ(複製されたサーバ)に、キャラボットをデプロイします。
※ キャラボのファイルをHRDのサーバ名に書き換えるのを忘れずに…。
Datastore Indexes に、インデックスが作成されるのを待ちます。
※ 待っている間にキャラボットのトップページにアクセス出来るようになるかもしれませんが
インデックスが全て Serving に変わるまで待ちます。
30分以上かかる場合もありますが、順調に稼働させるため、根気よく待って下さい。
インデックスが全て Serving に変わったら、移行作業に入ります。
!!! 移行作業後キャラボットが動かないという事例が、確認出来たもので2例ありました。
!!! 動かない原因の特定が出来ていませんが、最初のデプロイに失敗していても
!!! botが動かない原因の1つとなり得ますので、慎重に確認しつつ移行作業を行なって下さい。
移行ツールを使用してデータ移行
再度、現行サーバの管理コンソールに行き、Application Settings を
クリックしてページを開きます。
開いたら、Migrate Application の View Migration Tool… をクリック

HRD Migration というページが開くと思います。

① データを移行するサーバを選択します
② 各プロセス終了時にメールで連絡が届くようにします
③ 移行開始します
確認画面が出る場合があるようですので、出た場合には以下の作業で
注)中止して再開した場合に出ることが多いみたいです…? (デプロイしてあるので出るらしい…?)

① データとアプリの移行を確認します
② 移行開始します
移行が開始されます。

どのくらい時間がかかるか分かりませんので、終了メールが届くまで
ログアウトして、放置してしまって構いません。
※ ログアウトせずに見続ける場合には、定期的にブラウザの【再読み込み(リロード)】を押して下さい。
自動で再読み込みしないので、【再読み込み(リロード)】を押さないと、ずっと開始画面のままです。
移行させるデータ量は、現行サーバの管理コンソール Datastore Indexes から
確認することが出来ます。

データ移行中に、My Applications を見ると

HRDサーバには、書き込みが出来ないようになっています。
終了メールが届いた 《 1通目 》
App Engine HR Migration 現行のサーバ名 to HRDサーバ名: Phase Complete!
というタイトルのメールがGAEから届いたら、メール内のリンクをクリックして現行サーバの管理コンソールに行きます。
(もしくは、Application Settings をクリックしてページを開きます。
開いたら、Migrate Application の View Migration Tool… をクリックします)
Waiting to activate read-only. See below… となっていると思いますので

Launch Incremental Copy をクリックして、取りこぼしの無いようにします。
移行が開始されますので、またメールが届くまでログアウトして待ちます。
※ ログアウトせずに見続ける場合には、定期的にブラウザの【再読み込み(リロード)】を押して下さい。
自動で再読み込みしないので、【再読み込み(リロード)】を押さないと、ずっと同じ画面のままです。

++++++++++
!!! いつまで経っても1通目のメールが届かない !!!
My Applications を確認し

HRDサーバにデータ移行中の表示が出ているのであれば、暫く様子を見て下さい。
移行中の表示が無かったり、気になる場合には Pause Migration をクリックし、作業を一旦停止して
『移行ツールを使用してデータ移行』の最初からやり直してみて下さい。
++++++++++
終了メールが届いた 《 2通目 》
再度、App Engine HR Migration 現行のサーバ名 to HRDサーバ名: Phase Complete!
というタイトルのメールがGAEから届いたら、メール内のリンクをクリックして現行サーバの管理コンソールに行きます。
(もしくは、Application Settings をクリックしてページを開きます。
開いたら、Migrate Application の View Migration Tool… をクリックします)
再度、Waiting to activate read-only. See below… となっていると思いますので
今度は、Activate Read-only をクリックし、読み取り専用にします。

再度移行が開始されますので、またメールが届くまでログアウトして待ちます。
※ ログアウトせずに見続ける場合には、定期的にブラウザの【再読み込み(リロード)】を押して下さい。
自動で再読み込みしないので、【再読み込み(リロード)】を押さないと、ずっと同じ画面のままです。
Activate Read-only をクリックした後に、My Applications を見ると

画像のように、どちらのサーバも書き込みが出来ないようになっています。
終了メールが届いた 《 3通目 》
再々度、App Engine HR Migration 現行のサーバ名 to HRDサーバ名: Phase Complete!
というタイトルのメールがGAEから届いたら、メール内のリンクをクリックして現行サーバの管理コンソールに行きます。
(もしくは、Application Settings をクリックしてページを開きます。
開いたら、Migrate Application の View Migration Tool… をクリックします)

Waiting to alias app. See below… となっていると思いますので
HRDサーバへ行き、移行されたデータの確認をします。

HRDサーバの、Datastore Viewer 等を確認してみて下さい。
確認して、無事に移行されているようでしたら、現行サーバに戻り
Application Settings → Migrate Application → View Migration Tool… から
HRD Migration ページを開き、Finish Migration をクリック
※ 注意 : 確認せずに Finish Migration を押してしまうと、やり直しや取り消しが出来ません。
シッカリ確認してから、 Finish Migration を押すようにして下さい。
移行作業を中止したい時には、Pause Migration をクリックし、作業を取り消して下さい。
やり直す場合には、『移行ツールを使用してデータ移行』の最初からやり直して下さい。

移行が完了します。

移行完了後
移行が完了すると同時に、現行サーバは自動的にエイリアスに切り替わります。
移行完了後に、My Applications を見ると

画像のように、High Replication サーバの書き込み無効は無くなり
旧サーバのみ書き込み無効になっていると思います。
HRDサーバにキャラボットを再度デプロイ
HRDサーバに、キャラボットを再度デプロイします。
※ 移行作業で一度、読み取り専用にしているので、読み書きが正常に機能するよう
再度デプロイする必要があるようです。
リソース消費量削減対策に、Performance を変更(任意)。
HRDサーバのキャラボットページにアクセスし、botの一時停止を解除します。
以上で、移行作業は終了です。
今回移行させたサーバのデータ量は600kb(少な!)で、全体で約3時間
移行作業のみでは、約1時間半かかりました。
移行させるデータ量が多ければ、それだけ時間がかかってくると思います。
↑上記は、2012年4月時点での移行作業にかかった時間です。
現在(2012年8月時点)はもっと早く終了するようです。
移行作業開始直後は結構サーバ負荷が高かったですが、途中から負荷が減り
最終的には、サーバダウンするほどの負荷はありませんでした。
(この辺りの負荷もデータ量に左右されるのかどうかは不明)
また、移行後、すぐにはデータ量など一部は反映されていませんのでご注意下さい。
(移行後、おおよそ半日程度で反映されるようです)
↓【例】移行して数時間後のHRDサーバ・Datastore Indexes

データ量が反映されていません。 (画像提供:T様・ありがとうございます)
旧サーバは新サーバのエイリアスになっていますので、削除せずに残しておけば
これまでのURLでキャラボット編集ページヘのログイン・更新等が行えます。
(旧URLで編集した内容は新サーバに書き込み反映され旧サーバには同内容が表示されます)
が
安定性を考えると、新しいURLのキャラボットトップページからログインし
編集更新等する方が良いと思われます。
旧サーバを残すも、削除するも、各々の判断で行なって下さい。
◎ 移行後の状況 ◎
2012年4月9日に移行後
2012年4月10日23時台〜11日01時台まで、1分間隔〜10分間隔で連投。
他、時報botのツイートの遅延もあり(時報botは、403エラーで連投にならず)。
管理コンソールにて確認したところ、その時間帯にシステムが低下していた模様。
2012年4月13日にもツイートの遅延。ツイートの遅延は割と頻発。
管理コンソールで確認すると、やはり不具合の起きている時間にはシステムが低下。
だいたい平均すると2〜3時間で復帰する模様。
2012年5月に入り、連投すること数回。
数時間で回復しましたが、5分間とか3分とか
連投間隔が短くスイート数も多く困りました…。
2012年6月にも連投すること数回。
原因を考察 》HRDサーバは安定性が売りであるため、サーバを安定させるためのシステムが
botの連投を引き起こすのではないかと…思ったのですが真相は分かりません。
サーバ負荷も1%程度増と思っていたほどでは無く、今のところサーバダウンしてません。
が、データ量もbot稼働量も(botの稼働自体も)少ないサーバなので
データ量、稼働量ともに多いサーバでは負荷が高いかもしれません。
▶ HRDサーバのポスト遅延

HRDサーバの動作確認用に時報botを作成。
日に数回、HRDサーバでは上記画像のようなポスト遅延が発生します。
▷ HRDサーバになると、連投や遅延の頻発・サーバダウン等の懸念事項がM/Sサーバよりも多く発生する可能性があり
現段階では色々と管理面での負担が増え、bot管理が厳しくなる可能性は否めません。
HRDサーバ対応の新Ver.キャラボットリリースの予定もあるようですが、どうなるかは今のところ本当に未知数です。
※ HRDサーバ対応かは不明ですが、Twitterの新APIに対応させた新Ver.(1.6系)は2012年11月にリリースされました。
- 最終更新:2013-04-27 06:38:58