【AWS Summit Japan 2022】商用データベースから Amazon Aurora へ移行する際に知っておきたいポイント(AWS-07)

AWS

2022.5.26

Topics

こんにちは。ColdAirflow です。
本記事は、AWS Summit Japan 2022 のセッション「商用データベースから Amazon Aurora へ移行する際に知っておきたいポイント」のレポート記事です。

セッション概要

タイトル

商用データベースから Amazon Aurora へ移行する際に知っておきたいポイント(AWS-07)

スピーカー

AWS 技術統括本部 ソリューションアーキテクト 浅井 ももこ 氏

概要

昨今データベースを AWS へ移行されるお客様が増加しており、商用データベースから Amazon Aurora へと異種データベースの移行をする事例も増えています。
一方、データベースの移行作業は長い時間を要する場合が多く、進め方や課題になりうるポイントの理解が重要です。本セッションでは、商用データベースから Amazon Aurora への移行ステップや考慮すべきポイントを、アプリケーション観点を含めてご紹介します。

レポート

セッション内容

  • 商⽤データベースから Amazon Aurora への移⾏ステップと、考慮すべきポイントについて、課題になることの多いアプリケーション観点を含めてご紹介
  • Amazon Aurora の仕組み詳細や独⾃機能の説明はしません

セッション対象者

  • 商⽤データベースから Amazon Aurora への異種データベース間移⾏を予定されている / ご検討されている 開発者や DBA の⽅

セッション Agenda

  • AWS へのデータベース移⾏の勢い
  • 商⽤データベースから Amazon Aurora への移⾏の進め⽅
  • データベース移⾏を⽀援する各種プログラム
  • まとめ

AWS へのデータベース移⾏の勢い

  • AWS Database Migration Service (DMS)を使⽤して 500,000 を超えるデータベースが AWS へ移⾏されている

データベースの移行 – ユースケース別クラウドソリューション | AWS

Amazon Aurora

Aurora の簡単なご紹介

クラウド向けに再設計された MySQL, PostgreSQL と互換性のある RDBMS コマーシャルデータベースの性能と可⽤性を低コストで実現

  • 優れた性能と拡張性
    • 標準的な MySQL / PostgreSQL と⽐べてスループットを向上するアーキテクチャリードレプリカを最⼤ 15 個追加してスケールアウト可能
  • ⾼可⽤性と耐久性
    • 耐障害性、⾃⼰修復機能を兼ね備えたストレージ 3 つの AZ にわたり、6 個のコピーを保持 Amazon S3 への継続的なバックアップ
  • ⾼い安全性
    • ネットワーク分離、保管時/通信の暗号化
  • フルマネージド
    • ハードウェアのプロビジョニング、ソフトウェアのパッチ適⽤、セットアップ、構成、バックアップといった管理タスクからの解放

Amazon RDS と Aurora をアーキテクチャーで⽐較

  • RDS
    • マルチ AZ 構成は、データベースにエンタープライズグレードの⾼可⽤性ソリューションを提供
    • 各データベースは、データの完全なコピーの Amazon EBS ボリュームを個別に管理
  • Aurora
    • 3AZ に 6 つのデータのコピーが作成され、プライマリインスタンスもリーダーも同じクラスターボリュームを利⽤
    • ストレージの障害からは透過的に復旧
    • ストレージは容量に合わせて⾃動スケール

さらなる詳細は下記の記事でご紹介されているのでご覧ください。

Amazon RDS Online Seminar 第 1 回 「Amazon Aurora と RDS Proxy」 資料・動画及び QA 公開 | Amazon Web Services ブログ

Amazon Aurora への移⾏でデータベース管理の運⽤負荷を軽減

データベース管理者は、時間のかかるデータベース管理タスクや、複雑なライセンス管理から解放され、アプリケーションやビジネスに集中できる

  • データベース管理タスクを AWS へオフロード
    • サーバプロビジョニング
    • パッチ適⽤
    • バックアップ
    • フェイルオーバー
    • 拡張性や可⽤性担保の仕組み化

Aurora への移行する理由としてやはり、フルマネージドに当たるため、オンデマンドのときと比べて管理コストが軽減されることが大きな要因として考えられます。

さらに、MySQL や PostgreSQL など無償版のデータベースに移行することでライセンス費用や管理から解放されることは大きなメリットと言えます。

データベースの移⾏作業は⻑い時間を要する場合が多い

  • 経験や知⾒が不⾜している中でのデータベース移⾏計画の作成
  • トラブルによる⼿戻りの発⽣
  • 移⾏情報の収集
  • 利⽤するツール選定

移⾏の進め⽅や課題になりうるポイントの理解、移⾏サービス・ツール・プログラムの活⽤で移⾏作業を効率化

データベース移行は、頻繁に行うことではない上に、異種間のデータベース移行となるとトラブルが起きないことのほうが難しいと思います。
AWS では、上記の課題を解決するソリューションやサービスが多く取り揃えられています。

商⽤データベースから Amazon Aurora への移⾏の進め⽅

データベース移⾏の標準的なステップ

  • Assessment&PoC
    • サイジング実施
    • スキーマや SQL 移⾏の難易度の調査
    • PoC 実施
  • Schema conversion
    • スキーマの変換
  • Code conversion
    • SQL やプロシージャーの変換
  • Data migration
    • データの移⾏
  • Validation
    • データ移⾏の正常性をテスト

商⽤データベースから Amazon Aurora への移⾏

商⽤データベースから Amazon Aurora への移⾏も同様に標準的なステップで実施を行う。

データベースエンジンを変更するため、互換性の無いオブジェクト (スキーマや関数など) や SQL の変換が必要

AWS Schema Conversion Tool (SCT)

異種データベース移⾏の変換作業する上で役に立つ AWS サービス
AWS Schema Conversion Tool とは – AWS Schema Conversion Tool

  • AWS SCT の使⽤⽤途
    • アセスメントレポートの作成
    • スキーマの自動変換
    • アプリケーションソースコード内の SQL 移行

Database Migration Playbook の利用のすすめ

互換性・移⾏ベストプラクティスの詳細集

AWS Database Migration Service のリソース

  • 移⾏対象のトピックごとにどのようにデータ ベース、DWH を AWS のデータベースサービスに移⾏するかのベストプラクティスが記載されたガイドブック
  • AWS SCT での変換有無も記載
  • データベース固有の機能と様々なデータベースオブジェクトを網羅
    • Oracle to Amazon Aurora PostgreSQL
    • Oracle to Amazon Aurora MySQL
    • Oracle to Amazon Redshift
    • SQL Server to Aurora MySQL
    • SQL Server to Aurora PostgreSQL

Database Migration Playbook を見てみましたが、移行の覚書としてだけでなく、
データベースについてまとまっているためクリックリファレンスガイドとしても利用できるかなと思いました。

さらに、どれも 400 ページを超えるほどの内容盛りだくさんです、読み解くにはかなりの労力が必要だと思いますが、互換性レベルや自動化レベルといった指標があるため、移行する際はレベルの高いものから見れば良いと思います。

Database Migration Playbook が公開されました! | Amazon Web Services ブログ

変換箇所・ポイントをご紹介

事例の多い Oracle から Aurora PostgreSQL へ移⾏する場合のパターンに絞り Database Migration PlayBook の情報を交えつつこれまでの知⾒をご紹介

  • NULL と空⽂字の扱い仕様差異
    • Oracle で空文字を挿入して NULL 値として扱っている箇所は、空文字挿入箇所を明示的に NULL へ置き換え、該当カラムに空文字を許容しない CHECK 制約の定義、または、 NULL との⽐較演算をしている箇所は、空⽂字の⽐較演算も同時に実施することを検討
  • トランザクションの仕様差異
    • バッチ処理で物理削除後に大量の INSERT を実施している等、トランザクション内で DDL を実行している箇所は、DDL 実行前後に COMMIT を明示するか、トランザクション粒度の見直しを検討
    • エラー発生時にロールバックをしたくない更新処理がある場合はトランザクションを分離する、または、SAVEPOINT を活用したロールバックポイントの作成を検討
  • マテリアライズドビューの仕様差異
    • Materialized View Log を利⽤した差分での⾼速リフレッシュ(FAST REFRESH)を実施している箇所は、Aurora PostgreSQL での完全リフレッシュで速度やパフォーマンスが許容できないかの確認、トリガーを使ったマテリアライズドビューの更新処理やアプリケーションでの差分適⽤の仕組みを構築できるかを検討
  • シーケンスの仕様差異
    • 最大値を取得して処理を実施している場合は、セッション単位でのカウントとなる仕様が許容可能かを確認し、状況に応じて sequence cache =1の設定、SERIAL のデータ型を利用することを検討

NULL と空⽂字の扱い仕様差異については、この間 AWS DataBase ブログで解説されている記事が公開されていました。
Handle empty strings when migrating from Oracle to PostgreSQL | AWS Database Blog
NULL については、各データベースで全くと言っていいほど仕様が異なるため移行をする場合かなり躓くポイントではないでしょうか。

他にも移行をする場合に参考になりそうな記事が AWS からはたくさんでているのでぜひご覧ください。

オンプレミスの Oracle データベースから Aurora PostgreSQL にデータを移行する – AWS Prescriptive Guidance
Oracle から Amazon RDS for PostgreSQL または Amazon Aurora PostgreSQL への変換 – AWS Schema Conversion Tool
Amazon.com における Oracle から PostgreSQL への移⾏

データベース移⾏を⽀援する各種プログラム

  • Assessment&PoC
    • DatabaseFreedomWorkshop(無償)で⽀援
  • Schema conversion
    • Database Migration Accelerator(有償)で⽀援
  • Code conversion
    • Database Migration Accelerator(有償)で⽀援
  • Data migration
    • AWS Professional Service やパートナー様のサービスで⽀援
  • Validation
    • AWS Professional Service やパートナー様のサービスで⽀援

Database Freedom Workshop

アセスメント部分に関して AWS から⽀援することが可能

  • ワークロードレポートの分析、サイジング
  • SCT アセスメントレポートの分析
  • 移⾏先データベースの選定、移⾏先データベースに関する Dive Deep セッションの提供
  • データ移⾏⽅式について実現性の検討
  • 移⾏リスク、PoC すべき点の抽出の⽀援

AWS Database Freedom

Amazon Database Migration Accelerator 特徴

  • AWS のコード変換のエキスパート
    • 無数のワークロードを移⾏した経験を持つ AWS のエキスパートに頼る
  • 固定、競争力のある価格
    • Database Migration Accelerator ではいくつかの複雑度のレベルに応じた固定の価格を提⽰
  • リファクタリングされた DB やアプリケーション
    • 機能豊富な最新のデータベースを活⽤
  • スピード
    • 変換時間を短縮し、価値を⽣み出すまでの時間を短縮

Amazon Database Migration Accelerator のご紹介 | Amazon Web Services ブログ

まとめ

  • 商⽤データベースから Amazon Aurora へ移⾏する場合の進め⽅
  • AWS Schema Conversion Tool や Database Migration Playbook を活⽤して⾃動変換の実施や考慮すべきポイントの把握を⾏う
  • 必要に応じ、データベース移⾏をサポートする AWS ドキュメント/サービス/プログラムの活⽤を検討
  • Database Freedom Workshop Specialist Solution Architect によるアセスメントの⽀援 (無償)
  • Database Migration Accelerator 商⽤データベースから固定料⾦で移⾏出来るプログラム (有償)
  • AWS Professional Service やパートナー様の各種プログラム

感想

異種間のデータベースが抱える問題に対して AWS サービスを使ったソリューションの解決について理解を深めることができたセッションです。

中でも、異種間データベースの変換箇所・ポイントで具体的例があり、知っていたものもあれば知らないものあったので、勉強になりました。
他にも知らないことがたくさんあるので、Database Migration Playbook を読み込もうと思いました。

Cold-Airflow

2021年新卒入社。インフラエンジニアです。RDBが三度の飯より好きです。 主にデータベースやAWSのサーバレスについて書く予定です。あと寒いのは苦手です。

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら