レプリケーションとは
レプリケーションとは、「複製(レプリカ)を作る」という意味です。別の場所に、リアルタイムでデータをコピーする技術のことを指します。
今回は、RDSレプリケーションの仕組みが理解出来るように、MySQLで解説します。
用途
1. データベース移行
オンプレミスからクラウドへの移行
オンプレミスのデータベースをAWSのクラウド環境(例えば、Amazon RDSやAmazon Aurora)に移行する際に使用します。
クラウド間の移行
AWS内の異なるリージョン間や異なるクラウドプロバイダー間でデータベースを移行する際に使用します。
2. データベースの統合
データの統合
複数のデータベースを一つのデータベースに統合する際に使用します。
レプリケーションとバックアップの違い
項目 | レプリケーション | バックアップ |
---|---|---|
目的 | データの可用性と信頼性の向上、負荷分散、災害復旧 | データの保護と復旧、災害復旧 |
データの複製方法 | データをリアルタイムまたは定期的に複製し、複数の場所に保存 | データのスナップショットを定期的に取得し、バックアップファイルとして保存 |
データの一貫性 | 高い(特に同期レプリケーションの場合) | 一貫性は低い(バックアップ時点のデータのみ) |
パフォーマンス | リアルタイムレプリケーションはパフォーマンスに影響を与えることがある | バックアッププロセス中にパフォーマンスに影響を与えることがある |
データの復旧時間 | 短い(データが常に最新の状態であるため) | 長い(バックアップファイルからの復旧が必要) |
データの保存場所 | 複数のサーバーやデータセンター | 専用のバックアップストレージ(オンプレミスまたはクラウド) |
使用例 | データベースレプリケーション、ファイルシステムレプリケーション、クラウドサービス | データベースバックアップ、ファイルシステムバックアップ、クラウドストレージ |
コスト | 高い(複数のサーバーやデータセンターが必要) | 低い(専用のバックアップストレージのみが必要) |
メンテナンス | 継続的な監視と管理が必要 | 定期的なバックアップスケジュールの設定と管理が必要 |
どんな手順で実現するのか?
1.ターゲットとなるデータベースを作成する
2.レプリケーションするインスタンスを作成する
3.ソースエンドポイントを作成する
4.ターゲットエンドポイントを作成する
5.レプリケーションタスクを作成し実行する
ターゲットとなるデータベースを作成する
レプリケーションするインスタンスを作成する
接続とセキュリティ
パブリックアクセス可能: チェックボックスをオンにする。
このオプションを選択すると、AWS DMS によってレプリケーションインスタンスにパブリック IP アドレスが割り当てられるため、お客様の VPC の外部のデータベースに接続できるようになります。
ソースエンドポイントを作成する
エンドポイント設定
設定項目 | 設定値 |
---|---|
エンドポイントタイプ |
ソースエンドポイント を選択する。 |
エンドポイント識別子 | 例source-endpoint と入力する。 |
ソースエンジン |
MySQL を選択する。 |
エンドポイントデータベースへのアクセス |
アクセス情報を手動で提供する を選択する。 |
サーバー名 | 例DBServerDNSName を入力する。 |
ポート |
3306 と入力する。 |
ユーザー名 |
XXXX と入力する。 |
パスワード |
XXXXXX と入力する。 |
Secure Socket Layer (SSL) モード |
none を選択する。 |
ターゲットエンドポイントを作成する
エンドポイント設定
設定項目 | 設定値 |
---|---|
エンドポイントタイプ |
ターゲットエンドポイント を選択する。 |
RDS DB インスタンスの選択 | チェックボックスをオンにする。 |
RDS インスタンス | 作成した RDS インスタンスを選択する。 |
エンドポイント識別子 | 例target-endpoint と入力する。 |
ターゲットエンジン |
MySQL を選択する。 |
エンドポイントデータベースへのアクセス |
アクセス情報を手動で提供する を選択する。 |
ユーザー名 |
XXX と入力する。 |
パスワード |
XXXXXXXX と入力する。 |
残りの設定 | すべてデフォルト値のままにする。 |
レプリケーションタスクを作成し実行する
タスク設定、テーブルマッピング設定、および移行タスクのスタートアップ設定の各項目とその設定値
タスク設定
設定項目 | 設定値 |
---|---|
タスク識別子 | 例replication-cdc
|
レプリケーションインスタンス | 例replication-instance
|
ソースデータベースエンドポイント | 例source-endpoint
|
ターゲットデータベースエンドポイント | 例target-endpoint
|
移行タイプ | 移行と複製 |
編集モード | ウィザード |
ソーストランザクションのカスタム CDC 停止モード | カスタム CDC 停止モードを無効にする |
ターゲットテーブル準備モード | 何もしない |
フルロードの完了後にタスクを停止する | 停止しない |
LOB column settings | 制限付き LOB モード |
最大 LOB サイズ (KB) | 例32
|
検証の有効化 | チェックボックスをオンにする。 |
CloudWatch ログの有効化 | チェックボックスをオンにする。 |
残りの設定 | すべてデフォルト値のままにする。 |
テーブルマッピング
設定項目 | 設定値 |
---|---|
編集モード | ウィザード |
Selection rules |
Selection rules をクリックし、新しい選択ルールの追加 を選択する。 |
スキーマ | ドロップダウンリストから スキーマの入力 を選択する。 |
ソース名 | 元となる データベース名 を入力する。 |
移行タスクのスタートアップ設定
設定項目 | 設定値 |
---|---|
Start migration task |
作成時に自動的に行う を選択する。 |
タスクの作成
タスクの作成
をクリックします。
Status
が ロード完了、レプリケーション進行中
に変わるまで待機します。
タスクの実行中の確認
タスクの実行中は、その詳細を表示し、テーブルとレプリケーションした行数に関する情報を確認できます。この処理は数分で完了します。[Status] が ロード完了、レプリケーション進行中 に変わるまで待機します。
仲間を募集しています!
ARIではエンジニア・ITコンサルタント・PM職全方位で仲間を募集しております。
カジュアル面談、随時受付中です!
ご興味ある方はこちらをご覧ください。