2
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Master-Slave Datastoreマイグレーション FAQ

App Engine のMaster-Slave Datastore のマイグレーションについて、分かりにくいことが多いと思うので、FAQを作ってみました。背景は 僕のブログ記事を読んでください。

Master-Slaveを使うアプリは xxx というIDにします。HRDのアプリIDは xxx-hrd とします。

マイグレーションするにはどうすればいいの?

ステップは以下の感じです。それぞれのドキュメントを参照してくでさい。マイグレーションツールについては次の質問もご参考にしてください。

  1. アプリを複製する。アプリの管理画面の「Application Settings」でできます。
  2. 新しいアプリへデプロイする
  3. マイグレーションツールを使ってマイグレーションを行います

マイグレーションするけど、実際に何が行われるの?

マイグレーションは以下のようなことを順番に行います (ドキュメントはこちら)

  1. xxx アプリのデータを一旦 xxx-hrd にコピーする (Incremental Copy)。これは何回も繰り返できます。
  2. コピーが終わったら、xxx を読み込み専用モードにする。これは自動ではなくて自分で「Activate Read-only」ボタンを押す感じです。
  3. 「Finish Migration」で 1 と 2 の間に更新されたデータを xxx-hrd にコピーする (これは終わったら、元に戻せないので注意)。Finish Migrationが終わったら、エイリアスが作られて、 xxx.appspot.com から xxx-hrd のアプイケーションのデータを使って動作します。
  4. xxx.appspot.com (内部は xxx-hrd というアプリ)はちゃんと動作しているのを確認してから、Billing を無効にします。その後は xxx を削除できます。

xxx.appspot.comを使い続けたいけど、可能ですか?

可能です。マイクレーションするために、xxx-hrdみたいな別App IDを作らなくちゃいけないけど、マイグレーションの最後にドメインのエイリアスを作るので、 xxx.appspot.com は使い続けます。

xxx というIDを使い続けないけど、可能ですか?

これは不可能です。マイグレーションの最後にドメインのエイリアスを作るので、 xxx.appspot.com は使い続けますが、xxxのアプリIDは使えなくなります。App Engineの管理画面は xxx-hrd を使うことになります。

  • App Id: xxx-hrd
  • URL: xxx.appspot.com OR xxx-hrd.appspot.com になります。

最終的には、xxx.appspot.comでアクセスできるので、ユーザーのエクピリエンスが変わらないと思います。xxx.appspot.comなのに、管理画面ではxxx-hrdというアプリIDになる分かりにくさだけが残ると思います。

xxx.appspot.com と xxx-hrd.appspot.com から両方アクセスできるのが気持ち悪いんですけど、どうすれば?

もし、xxx-hrd.appspot.comでアクセスを不可能にしたい場合は、アプリ側でHTTPのHostヘッダーを検証するのがベストかなと思います。

xxx から移行したら後に課金されるんですか?

マイグレーションした後に何もしなければ、データの容量に対して課金されます。マイグレーション後に確認した後にxxxのBilling を無効にしなければならない。

xxx はもういらないんだけど、削除できますか?

Billing を無効にしたら、削除できるはず。

最初の Incremential Migration がなかなか終わらないけど、どうすれば?

Incremential Migration をする時に、終わらないケースがあるらしい。 Using the Migration Toolの下の9版をご参考ください。

Read-onlyでIncremental Migrationを行う場合は、終わらないケースを解消するらしい。もし、Incremental Migrationが終わらない場合は、一旦Migrationを止めて、Read-onlyにしてからまたIncremental Migrationを実行するのがいいと思います。

その他

他に質問があると思うんですが、もしここに自分の質問が答えてない場合は、 ここにコメントするか、@IanMLewisに連絡して、できるだけこの記事を更新していきます。あと、#gcpjaというハッシュタグをつけると他のエキスパートの方が回答してくれるかもしれない。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
2
Help us understand the problem. What are the problem?