
執筆:Jason Gregson、Artem Shchodro
はじめに
DoiTでは日々、形も規模もさまざまなデータベースに向き合っています。技術サポートはもちろん、「どのデータベースを、どこで使うべきか」という判断までお客様をご支援しています。
データベースはあらゆるビジネスにとって極めて複雑かつ重要な要素である――DoiTはそう考えているからこそ、データベースとそれ以外(いわゆるCore)を切り分けて扱うアプローチを取っています。CoreエンジニアリングとDatabaseエンジニアリングには重なる領域も多くありますが、Coreではカバーしきれないデータベース固有の専門領域が存在します。そのため、データベースおよびDatabase Migration Serviceに関するご相談は、すべてデータベース専任チームが対応しています。
万能の正解はなく、それはデータベースでも同じです。お客様のビジネスが成長すれば、要件も変わります。ビジネスモデルやデータの取り方が変われば、最初は正しかった選択も、将来は最適でなくなることがあります。データベースをオンプレミスに置くか、クラウドに置くかも同様です。
多くのアプリケーションは何らかの形でデータベースにデータを格納するため、データベースはお客様プラットフォームの「至宝」とも言える存在です。変化し続ける状況を見極めるには時間がかかり、乗り越えるべき技術的課題も少なくありません。Amazon Web Services(AWS)は、データベースとそれを使うアプリケーションをクラウドへ移行するためのサービスやツールを多数提供しています。要件やビジネスの方向性に応じて、データベース管理システム(DBMS)を変更したり、SQLからNoSQLへとアーキテクチャ自体を切り替えたりすることも可能です。
同じデータベースエンジン同士でデータをサーバー間移行するのは比較的シンプルで、これを**同種(homogeneous)移行と呼びます。たとえば、オンプレミスのMicrosoft SQL ServerからAmazon Relational Database Service(Amazon RDS)上の同じMicrosoft SQL Serverへ移すケースでは、データやスキーマが正しくレプリケートされていること、そしてアプリケーションが「新しい」データベースに接続できるよう接続設定とセキュリティが適切であることを確認するのが主な作業になります。本当に厄介なのは何かしらの変更が伴う場合で、バージョン番号の違いといった一見些細な変更でも、対処すべき要素が次々と表面化することがあります。さらに別エンジンへの移行、すなわち異種(heterogeneous)**移行となると難易度は一気に上がり、アプローチやアプリケーション自体に手を入れる必要も出てきます。
本記事では、2つのデータベースツール、AWS Schema Conversion Tool(AWS SCT)とAWS Database Migration Service(AWS DMS)の概要をご紹介します。
なぜAWSにデータベースを移行すべきなのか?
今日のアプリケーションは、大量データ、高いトランザクションスループット要件、複雑なデータ型やビジネスロジック、ベンダー固有機能など、難易度の異なるさまざまな課題を抱えています。これらのworkloadsをクラウドへ移行することは、多くのAmazon Web Services利用企業にとって重要な目標です。理由はさまざまで、自動化やスケーラビリティを手軽に得てコストを下げられること、独自色の強いDBMS(Microsoft SQL/Oracle/SAP)へのベンダーロックインを緩めてライセンスコストを削減できることなどが挙げられます。さらに、モダンでクラウド中心のやり方でデータシステムをアプリケーションから切り離すことで、イノベーションの可能性を引き出すこともできます。Amazon Auroraストレージエンジンのようなクラウドならではの機能を使えば、データ基盤のモダナイズも進められます。これらは入念な検討と高度な技術的知見なしに踏み出せるステップではありません。だからこそ、最初の相談相手としてDoiTをご活用いただきたいのです。
データベース移行のよくある動機は次のとおりです。

データベースのモダナイズ
レガシーなデータベースエンジンからモダンなエンジンへ移行し、デジタル時代を勝ち抜くビジネスの俊敏性を実現します。

データベース移行
エンタープライズアプリケーションの文脈で、あるプラットフォームから別のプラットフォームへデータを移すこと。

データベースレプリケーション
あるコンピュータ/サーバー上のデータベースから別のデータベースへ、すべての利用者で同じ情報を共有するために高頻度でデータをコピーすること。
AWSでデータベースを移行するメリットは?
リレーショナルデータベースは広く理解された成熟技術であり、オンプレミスサーバーでも高い可用性を日常的に運用できます。NoSQLデータベースは比較的新しい技術ですが、こちらもオンプレミスで高可用性を維持することは通常可能です。とはいえ、データベースのダウンタイムはアプリケーションの停止だけでなく、お客様にタイムリーにサービスを提供する企業の能力にも深刻な影響を及ぼします。レピュテーションへのダメージも大きく、回復は容易ではありません。だからこそ、対話を通じてビジネス要件と技術要件を漏れなく押さえ、移行に伴うこうしたリスクを最小化することが重要なのです。
Amazon Relational Database Service(Amazon RDS)やAmazon DynamoDBといったAWSのデータベース技術は、低コストでスケーラブル、かつ高可用性のソリューションを、シンプルなセットアップと運用で提供します。多くの企業にとって、データベースをクラウドへ移行する(特に別エンジンへ切り替える)ことは、オンプレミスサーバーと比較してダウンタイムとコストの双方の削減につながります。

シンプルで使いやすい
AWS Database Migration Service(AWS DMS)は使い勝手に優れています。ドライバやアプリケーションのインストールは不要で、通常はソースデータベースへの変更も求められません。

ダウンタイムを最小化
AWS DMSなら、ほぼダウンタイムなしでデータベースをAWSへ移行できます。

主要なデータベースエンジンに対応
AWS DMSは、商用・オープンソースを問わず、広く使われているデータベースエンジン間でのデータ移行に対応しています。

低コスト
AWS DMSは、商用・オープンソースを問わず、広く使われているデータベースエンジン間でのデータ移行に対応しています。

素早く簡単にセットアップ
AWS Management Consoleから数分で移行タスクを設定できます。Amazon DMSが移行を実行する際に使うパラメータも、ここで定義します。

高い信頼性
AWS DMSは耐障害性が高く、自己修復機能も備えています。ソースとターゲットのデータベース、ネットワーク接続、レプリケーションインスタンスを継続的に監視します。
どうやってAWSにデータベースを移行するのか?

AWS DMSとAWS Schema Conversion Tool(AWS SCT)を組み合わせれば、AWSへの、あるいはAWSからのデータベース移行を、迅速かつ安全に実行できます。AWS DMSを使えば、移行中もソースデータベースは完全に稼働し続けるため、それに依存するアプリケーションのダウンタイムを最小限に抑えられます。
同じデータベースエンジンへの移行はもちろん、エンジンを切り替えてプラットフォームをモダナイズすることも可能です。ソースとターゲットを同期させるためのデータレプリケーション用途でも利用できます。
たとえば:
オンプレミスのOracleインスタンスから、Amazon RDS for Oracleインスタンスへ移行できます。

あるいは…
オンプレミスもしくはクラウド上のOracleインスタンスを、Amazon RDS for PostgreSQLやAmazon Aurora PostgreSQLといったPostgreSQLデータベースへ移行することもできます。

移行に役立つツールは?

AWS DMS
もっとも基本的なレベルで言えば、AWS DMSはレプリケーションソフトウェアを動かすAWSクラウド上のサーバーです。AWS DMSに「どこから抽出し、どこへロードするか」を伝えるために、ソースとターゲットの接続を作成します。そして、このレプリケーション用サーバー上でデータコピーを実行するタスクをスケジュールします。
ターゲット側にテーブルや関連するプライマリキーが存在しない場合は、AWS DMSが自動で作成します。希望すれば、ターゲット側のテーブルを事前に手動で作成しておくこともできます。あるいはAWS SCTを使って、ターゲットのテーブル、インデックス、ビュー、トリガーなどの一部または全部を作成することも可能です。
AWS SCT
データベースエンジンを切り替えたい場合、AWS SCTは既存のスキーマをターゲットプラットフォーム向けに変換できます。対象はテーブル、インデックス、ビュー、ストアドプロシージャ、さらにはアプリケーションコードまで含まれます。ソースデータベースのスキーマが自動変換できない場合、AWS SCTはターゲットエンジン側で同等のスキーマを作成する方法をガイドしてくれます。自動変換できなかった要素が何かを把握することは非常に重要です。なぜなら、それらは出来上がるデータベースだけでなく、現行アプリケーションがデータベースとどう連携するかにも影響するからです。ここでもDoiTの経験が活きます。何が関係し、どのような変更を検討すべきかの理解を、私たちがサポートします。
移行プロジェクトをどう進めるのか?
AWS DMSとAWS SCTは、移行プロジェクトのどこに位置づけられるのでしょうか。AWSは移行を12のステップに整理することを推奨しています。すべての移行プロジェクトに全ステップが必要なわけではないため、DoiT InternationalではDatabase Engineering部門の移行スペシャリストを各案件にアサインし、お客様固有のユースケースを評価します。初期評価と、お客様のアプリケーション、データベース、インフラ、利用可能なリソース、スキルセットの特性をふまえ、DoiT Internationalがお客様と一緒に移行計画を策定します。

このフェーズでは、物理的な移行そのものではなく、求められるビジネス目標に焦点を当てた論点が見えてきます。「成功とはどういう状態か?」を定義する段階です。たとえば_「現在Database Xを使っており、今後12カ月で1000倍に成長する見込み」_といったケースには、押さえておくべき含意がいくつもあります。ビジネス側の急激なスケーリング要件に対しては、**同種(homogeneous)**移行が最適解とは限りません。
次のステップは?
次の移行プロジェクトに向けてツールの使い方を学びたいエンジニアリング担当の方は、AWSが提供する無料の入門コースに登録してみてください。このトレーニングではスキーマ移行、データ移行、トレーニングとサポートを扱っており、何が必要になるかをより深く理解でき、移行の技術的要素を整理するのに役立ちます。とはいえ、これだけではデータベース移行特有のニュアンスを身につけるための実体験までは得られません。だからこそDoiTが、成功に必要なサポートを提供します。
移行の可能性を見極めたい方へ。DoiT Internationalはお客様のworkloadsのクラウド移行を支援し、その後の継続的なサポートも提供しています。私たちの移行アプローチとDoiT Internationalがどのようにお手伝いできるかについては、こちらをご覧ください。
Q:費用はどれくらいかかりますか?
嬉しいポイントは、DoiTにはお客様支援のためのユニークな価格モデルがあることです。AWSへのデータベース移行サポートも、その対象に含まれます。私たちは追加費用ゼロでご支援し、workloadsのクラウド移行に伴う追加コストは発生しません。
Q:落とし穴はないのですか?
ありません。リセラーであるDoiT経由でAWSの請求をお支払いいただく――それだけです。私たちはAmazonから直接受けられるサービスやサポートに「上乗せ」されるかたちで存在し、AWS請求の支払い窓口となること以外、その関係から何かを取り除くことはありません。請求はDoiTを通じて直接処理されます。費用ゼロという性質上、DoiT自身がデータベース移行作業そのものを実施するわけではない点はご理解ください。私たちはアドバイザーとして、移行の各段階で適切なタイミングに適切な助言を提供し、お客様を支えます。実作業はお客様自身、もしくは外部のサードパーティに依頼して進めていただきます。加えて、DoiTのお客様としての通常の特典もすべてご利用いただけます。
無制限サポート(24時間365日 - Follow the sun体制)
無料のトレーニング
DoiT Cloud Intelligence™へのアクセス
無料のWell Architected Frameworkレビュー(WAfR)
DoiTのFlexsave(柔軟な節約)
DoiTのSpot0(柔軟なSpot価格設定)

Jason
Jason GregsonはDoiT internationalのGlobal Head of AWS Programs and Operationsを務めています。Amazonでの5年間を含め、長年Solution Architectとして活動してきた経験から、最新のAWSサービスでモダンなアプリケーションを構築するお客様の支援に情熱を注いでいます。実務志向のテクノロジストでありエンジニアでもある彼は、コミュニティ主導で技術を学び合い共有することを大切にし、誰もが「可能性のアート」を知ることができる世界を目指しています。Twitter:@JasonGregson。

Artem
Artem ShchodroはDoiT internationalのSenior Cloud Architectです。元Amazonianとして、お客様がクラウドから最大の価値を引き出せるよう支援しています。実務志向で率直、ビジネス価値とテクノロジーをうまく結びつけるのが持ち味です。彼のTwitterはフォローしないでください。
執筆:Jason Gregson、Artem Shchodro
はじめに
DoiTでは日々、形も規模もさまざまなデータベースに向き合っています。技術サポートはもちろん、「どのデータベースを、どこで使うべきか」という判断までお客様をご支援しています。
データベースはあらゆるビジネスにとって極めて複雑かつ重要な要素である――DoiTはそう考えているからこそ、データベースとそれ以外(いわゆるCore)を切り分けて扱うアプローチを取っています。CoreエンジニアリングとDatabaseエンジニアリングには重なる領域も多くありますが、Coreではカバーしきれないデータベース固有の専門領域が存在します。そのため、データベースおよびDatabase Migration Serviceに関するご相談は、すべてデータベース専任チームが対応しています。
万能の正解はなく、それはデータベースでも同じです。お客様のビジネスが成長すれば、要件も変わります。ビジネスモデルやデータの取り方が変われば、最初は正しかった選択も、将来は最適でなくなることがあります。データベースをオンプレミスに置くか、クラウドに置くかも同様です。
多くのアプリケーションは何らかの形でデータベースにデータを格納するため、データベースはお客様プラットフォームの「至宝」とも言える存在です。変化し続ける状況を見極めるには時間がかかり、乗り越えるべき技術的課題も少なくありません。Amazon Web Services(AWS)は、データベースとそれを使うアプリケーションをクラウドへ移行するためのサービスやツールを多数提供しています。要件やビジネスの方向性に応じて、データベース管理システム(DBMS)を変更したり、SQLからNoSQLへとアーキテクチャ自体を切り替えたりすることも可能です。
同じデータベースエンジン同士でデータをサーバー間移行するのは比較的シンプルで、これを**同種(homogeneous)移行と呼びます。たとえば、オンプレミスのMicrosoft SQL ServerからAmazon Relational Database Service(Amazon RDS)上の同じMicrosoft SQL Serverへ移すケースでは、データやスキーマが正しくレプリケートされていること、そしてアプリケーションが「新しい」データベースに接続できるよう接続設定とセキュリティが適切であることを確認するのが主な作業になります。本当に厄介なのは何かしらの変更が伴う場合で、バージョン番号の違いといった一見些細な変更でも、対処すべき要素が次々と表面化することがあります。さらに別エンジンへの移行、すなわち異種(heterogeneous)**移行となると難易度は一気に上がり、アプローチやアプリケーション自体に手を入れる必要も出てきます。
本記事では、2つのデータベースツール、AWS Schema Conversion Tool(AWS SCT)とAWS Database Migration Service(AWS DMS)の概要をご紹介します。
なぜAWSにデータベースを移行すべきなのか?
今日のアプリケーションは、大量データ、高いトランザクションスループット要件、複雑なデータ型やビジネスロジック、ベンダー固有機能など、難易度の異なるさまざまな課題を抱えています。これらのworkloadsをクラウドへ移行することは、多くのAmazon Web Services利用企業にとって重要な目標です。理由はさまざまで、自動化やスケーラビリティを手軽に得てコストを下げられること、独自色の強いDBMS(Microsoft SQL/Oracle/SAP)へのベンダーロックインを緩めてライセンスコストを削減できることなどが挙げられます。さらに、モダンでクラウド中心のやり方でデータシステムをアプリケーションから切り離すことで、イノベーションの可能性を引き出すこともできます。Amazon Auroraストレージエンジンのようなクラウドならではの機能を使えば、データ基盤のモダナイズも進められます。これらは入念な検討と高度な技術的知見なしに踏み出せるステップではありません。だからこそ、最初の相談相手としてDoiTをご活用いただきたいのです。
データベース移行のよくある動機は次のとおりです。

データベースのモダナイズ
レガシーなデータベースエンジンからモダンなエンジンへ移行し、デジタル時代を勝ち抜くビジネスの俊敏性を実現します。

データベース移行
エンタープライズアプリケーションの文脈で、あるプラットフォームから別のプラットフォームへデータを移すこと。

データベースレプリケーション
あるコンピュータ/サーバー上のデータベースから別のデータベースへ、すべての利用者で同じ情報を共有するために高頻度でデータをコピーすること。
AWSでデータベースを移行するメリットは?
リレーショナルデータベースは広く理解された成熟技術であり、オンプレミスサーバーでも高い可用性を日常的に運用できます。NoSQLデータベースは比較的新しい技術ですが、こちらもオンプレミスで高可用性を維持することは通常可能です。とはいえ、データベースのダウンタイムはアプリケーションの停止だけでなく、お客様にタイムリーにサービスを提供する企業の能力にも深刻な影響を及ぼします。レピュテーションへのダメージも大きく、回復は容易ではありません。だからこそ、対話を通じてビジネス要件と技術要件を漏れなく押さえ、移行に伴うこうしたリスクを最小化することが重要なのです。
Amazon Relational Database Service(Amazon RDS)やAmazon DynamoDBといったAWSのデータベース技術は、低コストでスケーラブル、かつ高可用性のソリューションを、シンプルなセットアップと運用で提供します。多くの企業にとって、データベースをクラウドへ移行する(特に別エンジンへ切り替える)ことは、オンプレミスサーバーと比較してダウンタイムとコストの双方の削減につながります。

シンプルで使いやすい
AWS Database Migration Service(AWS DMS)は使い勝手に優れています。ドライバやアプリケーションのインストールは不要で、通常はソースデータベースへの変更も求められません。

ダウンタイムを最小化
AWS DMSなら、ほぼダウンタイムなしでデータベースをAWSへ移行できます。
主要なデータベースエンジンに対応
AWS DMSは、商用・オープンソースを問わず、広く使われているデータベースエンジン間でのデータ移行に対応しています。
低コスト
AWS DMSは、商用・オープンソースを問わず、広く使われているデータベースエンジン間でのデータ移行に対応しています。

素早く簡単にセットアップ
AWS Management Consoleから数分で移行タスクを設定できます。Amazon DMSが移行を実行する際に使うパラメータも、ここで定義します。

高い信頼性
AWS DMSは耐障害性が高く、自己修復機能も備えています。ソースとターゲットのデータベース、ネットワーク接続、レプリケーションインスタンスを継続的に監視します。
どうやってAWSにデータベースを移行するのか?

AWS DMSとAWS Schema Conversion Tool(AWS SCT)を組み合わせれば、AWSへの、あるいはAWSからのデータベース移行を、迅速かつ安全に実行できます。AWS DMSを使えば、移行中もソースデータベースは完全に稼働し続けるため、それに依存するアプリケーションのダウンタイムを最小限に抑えられます。
同じデータベースエンジンへの移行はもちろん、エンジンを切り替えてプラットフォームをモダナイズすることも可能です。ソースとターゲットを同期させるためのデータレプリケーション用途でも利用できます。
たとえば:
オンプレミスのOracleインスタンスから、Amazon RDS for Oracleインスタンスへ移行できます。

あるいは…
オンプレミスもしくはクラウド上のOracleインスタンスを、Amazon RDS for PostgreSQLやAmazon Aurora PostgreSQLといったPostgreSQLデータベースへ移行することもできます。

移行に役立つツールは?

AWS DMS
もっとも基本的なレベルで言えば、AWS DMSはレプリケーションソフトウェアを動かすAWSクラウド上のサーバーです。AWS DMSに「どこから抽出し、どこへロードするか」を伝えるために、ソースとターゲットの接続を作成します。そして、このレプリケーション用サーバー上でデータコピーを実行するタスクをスケジュールします。
ターゲット側にテーブルや関連するプライマリキーが存在しない場合は、AWS DMSが自動で作成します。希望すれば、ターゲット側のテーブルを事前に手動で作成しておくこともできます。あるいはAWS SCTを使って、ターゲットのテーブル、インデックス、ビュー、トリガーなどの一部または全部を作成することも可能です。

AWS SCT
データベースエンジンを切り替えたい場合、AWS SCTは既存のスキーマをターゲットプラットフォーム向けに変換できます。対象はテーブル、インデックス、ビュー、ストアドプロシージャ、さらにはアプリケーションコードまで含まれます。ソースデータベースのスキーマが自動変換できない場合、AWS SCTはターゲットエンジン側で同等のスキーマを作成する方法をガイドしてくれます。自動変換できなかった要素が何かを把握することは非常に重要です。なぜなら、それらは出来上がるデータベースだけでなく、現行アプリケーションがデータベースとどう連携するかにも影響するからです。ここでもDoiTの経験が活きます。何が関係し、どのような変更を検討すべきかの理解を、私たちがサポートします。
移行プロジェクトをどう進めるのか?
AWS DMSとAWS SCTは、移行プロジェクトのどこに位置づけられるのでしょうか。AWSは移行を12のステップに整理することを推奨しています。すべての移行プロジェクトに全ステップが必要なわけではないため、DoiT InternationalではDatabase Engineering部門の移行スペシャリストを各案件にアサインし、お客様固有のユースケースを評価します。初期評価と、お客様のアプリケーション、データベース、インフラ、利用可能なリソース、スキルセットの特性をふまえ、DoiT Internationalがお客様と一緒に移行計画を策定します。

このフェーズでは、物理的な移行そのものではなく、求められるビジネス目標に焦点を当てた論点が見えてきます。「成功とはどういう状態か?」を定義する段階です。たとえば_「現在Database Xを使っており、今後12カ月で1000倍に成長する見込み」_といったケースには、押さえておくべき含意がいくつもあります。ビジネス側の急激なスケーリング要件に対しては、**同種(homogeneous)**移行が最適解とは限りません。
次のステップは?
次の移行プロジェクトに向けてツールの使い方を学びたいエンジニアリング担当の方は、AWSが提供する無料の入門コースに登録してみてください。このトレーニングではスキーマ移行、データ移行、トレーニングとサポートを扱っており、何が必要になるかをより深く理解でき、移行の技術的要素を整理するのに役立ちます。とはいえ、これだけではデータベース移行特有のニュアンスを身につけるための実体験までは得られません。だからこそDoiTが、成功に必要なサポートを提供します。
移行の可能性を見極めたい方へ。DoiT Internationalはお客様のworkloadsのクラウド移行を支援し、その後の継続的なサポートも提供しています。私たちの移行アプローチとDoiT Internationalがどのようにお手伝いできるかについては、こちらをご覧ください。
Q:費用はどれくらいかかりますか?
嬉しいポイントは、DoiTにはお客様支援のためのユニークな価格モデルがあることです。AWSへのデータベース移行サポートも、その対象に含まれます。私たちは追加費用ゼロでご支援し、workloadsのクラウド移行に伴う追加コストは発生しません。
Q:落とし穴はないのですか?
ありません。リセラーであるDoiT経由でAWSの請求をお支払いいただく――それだけです。私たちはAmazonから直接受けられるサービスやサポートに「上乗せ」されるかたちで存在し、AWS請求の支払い窓口となること以外、その関係から何かを取り除くことはありません。請求はDoiTを通じて直接処理されます。費用ゼロという性質上、DoiT自身がデータベース移行作業そのものを実施するわけではない点はご理解ください。私たちはアドバイザーとして、移行の各段階で適切なタイミングに適切な助言を提供し、お客様を支えます。実作業はお客様自身、もしくは外部のサードパーティに依頼して進めていただきます。加えて、DoiTのお客様としての通常の特典もすべてご利用いただけます。
無制限サポート(24時間365日 - Follow the sun体制)
無料のトレーニング
DoiT Cloud Intelligenceへのアクセス
無料のWell Architected Frameworkレビュー(WAfR)
DoiTのFlexsave(柔軟な節約)
DoiTのSpot0(柔軟なSpot価格設定)

Jason
Jason GregsonはDoiT internationalのGlobal Head of AWS Programs and Operationsを務めています。Amazonでの5年間を含め、長年Solution Architectとして活動してきた経験から、最新のAWSサービスでモダンなアプリケーションを構築するお客様の支援に情熱を注いでいます。実務志向のテクノロジストでありエンジニアでもある彼は、コミュニティ主導で技術を学び合い共有することを大切にし、誰もが「可能性のアート」を知ることができる世界を目指しています。Twitter:@JasonGregson。

Artem
Artem ShchodroはDoiT internationalのSenior Cloud Architectです。元Amazonianとして、お客様がクラウドから最大の価値を引き出せるよう支援しています。実務志向で率直、ビジネス価値とテクノロジーをうまく結びつけるのが持ち味です。彼のTwitterはフォローしないでください。