データベースを移行する前にすべき5つの質問とその答え

<font color="Grey">*[5 good questions to ask before migrating your database (and answers too)[](https://aiven.io/blog/5-good-questions-to-ask-before-moving-your-database)の翻訳です。*</font>

2022年5月13日

# データベースを移行する前にすべき5つの質問とその答え

オンプレミスからマネージドクラウドサービスへのデータベースの移行がどこで始まっても、大きな疑問はよく似ている。まずはここから考えてみよう。

ここにいらっしゃるということは、お使いのデータベース環境がニーズに合わなくなっている可能性があります。データや機能を別の場所に移す方法を研究しているのかもしれません。もっと柔軟性が必要なのでは？稼働時間が思うように伸びない？メンテナンスの負荷がチームにかかっていませんか？理由は何であれ、新しいマネージド・データベースが必要だという結論に達したのでしょう。私たちもそう思います！


しかし、少し落ち着いてください。データベースの移行は複雑なプロセスです。データが正しく複製されていることを確認するだけではありません。また、重要なアプリケーションのダウンタイムを最小限に抑える必要もあります。


## クラウドへの移行に関する5つの質問


このブログですべてのデータベース移行ツールを比較することはできません。これから取り上げる5つの質問は、あなたが調査し、あなたの目標を達成する移行を計画する際に役立つはずだ。


### 1.移行元と移行先は？


同種移行（同じソースとターゲットのデータベース）ですか、異種移行（異なるソースとターゲットのデータベース）ですか？これは、プロセスに必要なエンジニアリングとテストの量に影響します。


異種移行の場合、SQLの修正、コードの移行、スキーマの変換が必要になることがあり、これらはすべて実際のデータ移行に加えて行われます。


### 2.ダウンタイムに対応できるか？


ダウンタイムをゼロにした移行はできない。それは当然のことだ。しかし、計画を立て、タイミングを微調整することで、ダウンタイムの長さを短くし、その影響を軽減することができます。


大規模なダウンタイムが許されないのであれば、[ブルーグリーン戦略](https://stackoverflow.com/questions/45259589/whats-the-difference-between-red-black-deployment-and-blue-green-deployment)を計画しましょう。旧データベースインスタンスと新データベースインスタンスがしばらくの間並行して稼働します。新しいデータベースが期待通りに動作することを確認するために十分なテストを行う。そして、すべての準備が整ったら、ソースデータベースへの既存の接続を閉じ、ターゲットデータベースへの新しい接続を作成する。この切り替えはほとんど瞬時に行われる。


前文の「ほとんど」とは、一部の顧客が問題を経験するかもしれないことを意味する。もしこのことが気になるのであれば、2つのデータベースを維持するための追加的なインフラストラクチャー・コストを念頭に置いてください。もちろん、そもそも切り替える理由もある！


大幅なダウンタイムを許容できるのであれば、2つのデータベースを同時に稼働させることなく切り替えることもできます。例えば、データの修正が不要な場合があります。スキーマの変更も必要ないかもしれません。この場合、追加のデータ・インフラ・コストをかけずに切り替えることができます。


### 3.アプリケーション・コードに変更が必要ですか？


移行後のターゲットデータベースの状態がソースデータベースと同じかどうかを検討する。そうでない場合、アプリケーションコードの変更に多くの時間と労力を費やすことになります。


特に異種データベースの移行では、移行元と移行先のデータベースでスキーマが異なります。そのため、アプリケーションのクエリを変更する必要があります。このための時間をあらかじめ予算化しておくようにしましょう。


### 4.移行ツールキットにはどのようなサポートがありますか？


利用可能なデータベース移行ツールのオプションはさまざまでしょう。あるツールの成熟度と提供されるサポートの量はどの程度ですか？


物事がうまくいかない可能性がある場合（そしておそらくそうなる）、あなたは火と戦うためにいくつかの助けが必要になることを覚えておいてください。


この助けにはさまざまな形がある。それは、移行ツールキットのための確かなドキュメントを見つけることかもしれません。あるいは、電話を取って、マネージド・サービスのサポートとトラブルシューティングをすることかもしれません。


データベース移行の専門知識のレベルに合ったツール（および関連サポート）を選択してください。


### 5.移行ツールキットは安全ですか？


移行プロセス中、そのツールがどのようにデータ・セキュリティを扱うかを検討する。移行中のデータは暗号化されているか？


また、すべてが完了したら、移行元データベースのデータを安全に破棄する方法は？この重要なステップを忘れないでください。


## ヒント: PostgreSQLデータベースを移動するためのオープンソースツール


Aivenでは、PostgreSQLデータベースを簡単に移行するためのオープンソースツールを作成しました。AWS RDSのような他のデータベースサービスプロバイダ、またはオンプレミスのデータセンターからAivenへの移行に役立ちます。[Aiven DB Migrate](https://github.com/aiven/aiven-db-migrate)をご覧ください。


ただし、**このツールはAivenのサービスに限定されません** - PGデータベース移行のすべてのニーズにご自由にお使いください！


## まとめ


別のプロバイダー（できれば[Aiven](https://console.aiven.io/signup/email)）に移行する準備ができたなら、この記事では考慮すべきいくつかの要素を挙げました。安全で効果的な移行ができることを願っています！


すでにデータベースの移行プロセスを経験された方で、いくつかのヒントを共有したい方は、[ツイートでお知らせください](https://twitter.com/aiven_io)！


--


まだAivenのサービスをご利用になっていませんか？<https://console.aiven.io/signup>から無料トライアルにお申し込みください！


また、[changelog](https://aiven.io/changelog)や[blog](https://aiven.io/blog)のRSSフィード、または[LinkedIn](https://www.linkedin.com/company/aiven/)や[Twitter](https://twitter.com/aiven_io)のアカウントをフォローしてください。


また、Aivenと私たちのサービスに関する最新ニュースや、オープンソースに関するさまざまな情報を入手するには、[月刊ニュースレターを購読](https://aiven.io/newsletter)してください！