AWS Database Migration Service (DMS)の新機能「データマスキング」で安全な負荷試験環境を作る

メディア統括本部 サービスリライアビリティグループ(SRG)の鬼海 雄太(@fat47)です。
#SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。
本記事は、AWS DMSの新機能であるデータマスキング機能をつかって、個人情報をマスキングしたMySQL負荷試験環境を構築する方法についてまとめている記事です。
なにかの役に立てば幸いです。
 

AWS Database Migration Serviceに新機能 データマスキング


データマスキング機能は2024年11月25日にリリースされたDatabase Migration Service(DMS)の新機能です。
 
DMSの「データベースの移行タスク」にある「変換ルール」では、他データベースへの移行につかえるようなデータの変換が従来よりおこなうことができました。
 
そこで実行できるアクションが今回のリリースにより以下のものが増えました。
  • 数字のマスキング
  • 数字のランダム化
  • ハッシュマスキング
 

実際にマスキングをしてみる


DB事前準備

まずはRDSの画面から、ソースとなるAuroraクラスタAと、ターゲット用のクラスタBを作成します。
 
クラスタAに接続し、以下のような検証用テーブルを作成します。
personテーブルを作成
personテーブルにレコード追加
 

DMSの作成

次にDMSの画面からデータを中継するためのレプリケーションインスタンスを作成します。
「レプリケーションインスタンス」→「レプリケーションインスタンスの作成」
 
レプリケーションインスンタンスの作成画面で、エンジンバージョンを「」を選択します。
2025年1月現在、デフォルトの選択だと3.5.3になっているので注意しましょう。
 
続いて、「データベース移行タスク」→「データ移行タスクを作成」を選択します。
 
タスク識別子に適当な名前をつけ、
レプリケーションインスタンスには先ほど作成した、中継用インスタンスを選択します。
ソースデータベースにはクラスタAのライターを選択し、ターゲットデータベースにはクラスタBのライターを選択します。
 
下の方に移動し、「新しい選択ルールの追加」を押します。
出てきた「変換ルールの追加」を押します。
以下のようにルールを入力します。
ルールターゲット:列
ソース名:スキーマの入力(test)
ソーステーブル名:person
列名:tel
アクション:数字のマスキング
 
今回はさらに変換ルールを追加して、列名にnameとaddressも指定し、アクションを にしたものも追加します。
これでタスクの作成を完了すると、自動的にクラスタAからクラスタBへのフルロードと変換が開始されます。
 

データを確認してみる

まずはクラスタAに接続してレコード一覧を見てみると、元のデータが確認できます。
 
続いてクラスタBに接続してレコード一覧を確認します。
変換ルールの通り、nameとaddressはハッシュ化されていますし、telの数字はxに置き換えられていることが確認できました。
 
負荷試験用のアプリケーションからの接続は、このクラスタBのエンドポイントにすることで、本番相当のデータ量を扱いつつ個人情報を保護することが可能となります。

終わりに


いままでは、データのマスキングをするための処理をLambdaなりで実装しないといけませんでしたが、このDMSの新機能によってかなり楽に変換処理を実現できるようになりました。
 
安全な負荷試験環境を迅速に構築できるので非常にありがたいですね!
 
SRG では一緒に働く仲間を募集しています。 ご興味ありましたらぜひこちらからご連絡ください。
 
このエントリーをはてなブックマークに追加