DBEngines.comによると、MySQLデータベースとPostgreSQLデータベースはどちらもオープンソースのリレーショナルデータベース管理システム(RDBMS)であり、それぞれ2位と4位にランクされています。どちらもCで実装され(C ++はMySQLデータベースにも使用されます)、XMLサポート、セカンダリインデックス、同時実行性、耐久性、ユーザー定義関数などの同様の機能を提供します。 PostgreSQLデータベースにはいくつかの利点があり、そのいくつかは次のとおりです。
- 多次元配列やユーザー定義型などの高度なデータ型をサポートします
- Common Table Expressions(CTE)とWindow関数は、PostgreSQL 8.4以降で使用できますが、バージョン8.0ではMySQLにのみ追加されています。
- 完全外部結合をサポートします
- クエリで使用できる「定数テーブル」を生成するためのVALUESリストをサポートします
- セット戻り関数generate_seriesをサポートします
- バージョン9.6以降、複数のCPUを使用してクエリに高速に応答する並列クエリをサポートします
- マテリアライズドビューをサポート
MySQLからPostgreSQLデータベースAWSに移行する場合、DMS(Database Migration Service)は、継続的なデータレプリケーションのためのダウンタイムがゼロの信頼性の高いマネージドサービスを提供します。 4つのチュートリアルでは、MySQLデータベースインスタンスをPostgreSQLデータベースに移行する方法について説明します。どちらもAWS Relational Database Service(RDS)で実行されます。このチュートリアルには次のセクションがあります:
- 環境の設定
- DMS用のIAMユーザーの作成
環境の設定
唯一の前提条件は、このリンクで作成できるAWSアカウントです。マスターキーがまだ使用できない場合にDMSで使用するKMSマスター暗号化キーを作成します。 KMSマスターキーは、IAM>暗号化キーから作成されます ダッシュボード。このチュートリアルでは、「dbms」と呼ばれるKMSマスター暗号化キーを使用しました。
MySQLデータベースとPostgreSQLデータベースをローカルマシンにインストールして、クライアントインターフェイスアプリケーションを使用してRDS上のMySQLおよびPostgreSQLデータベースインスタンスに接続します。
DMS用のIAMユーザーの作成
DMSは、データベース用のRDS、IDおよびアクセス管理用のIAM、データ暗号化用のKMS、ロギング用のCloudWatchなど、他のいくつかのAWSサービスと完全に統合されています。 DMSは、移行のターゲットとしてS3(Simple Storage Service)もサポートしています。このセクションでは、MySQLデータベースインスタンスをPostgreSQLデータベースに移行するためにDMSで使用されるIAMユーザーを作成します。 IAMユーザーは次のように作成されます。
- 必要なすべての権限とポリシーステートメントを使用してIAMポリシーを作成します。
- IAMポリシーに基づいてIAMユーザーを作成します。
IAMポリシーを作成するには、[ポリシーの作成]をクリックします 図1に示すように、IAMダッシュボードで。
図1: ポリシーの作成
ポリシーの作成 ウィザードで、独自のポリシーを作成を選択します 、図2に示すように。
図2: [独自のポリシーを作成する]オプションを選択する
レビューポリシー 、ポリシー名を指定します (DMS)。次に、次のポリシードキュメントをポリシードキュメントにコピーします。 フィールドまたは地域。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dms:*", "Resource": "*" }, { "Effect": "Allow", "Action": "s3:*", "Resource": "*" }, { "Effect": "Allow", "Action": "ds:*", "Resource": "*" }, { "Effect": "Allow", "Action": "rds:*", "Resource": "*" }, { "Effect": "Allow", "Action": "kms:*", "Resource": "*" }, { "Effect": "Allow", "Action": "iam:*", "Resource": "*" }, { "Effect": "Allow", "Action": "ec2:*", "Resource": "*" }, { "Effect": "Allow", "Action": "cloudwatch:*", "Resource": "*" }, { "Effect": "Allow", "Action": "aws-marketplace:*", "Resource": "*" }, { "Effect": "Allow", "Action": "logs:*", "Resource": "*" } ] }
ポリシードキュメントには、ロギング用のCloudWatchおよびデータベース用のRDSにアクセスするためのアクセス許可が追加されています。 ポリシーの検証をクリックします また、メッセージが「ポリシーは有効です」の場合は、ポリシーの作成をクリックします。 、図3に示すように。
図3: ポリシーの作成
ポリシーが作成されると、図4に示すメッセージが表示されます。
図4: DMSが作成されました
次に、IAMユーザーを追加します。 ユーザーを選択します IAMダッシュボードで、[ユーザーの追加]をクリックします 、図5に示すように。
図5: ユーザーを追加
ユーザー名を指定します (dvohra)。次に、リストされているアクセスタイプの両方のオプションを選択します (図6を参照)。
図6: ユーザー詳細の追加
カスタムパスワードを選択します コンソールパスワードのオプション 、パスワードを指定して、[次へ:権限]をクリックします 、図7に示すように。
図7: アクセスタイプの設定
次に、ユーザーの権限を設定します。 既存のポリシーを直接添付するをクリックします 、図8に示すように。
図8: 既存のポリシーを直接添付する
ポリシータイプ フィルタして、前に作成したポリシーである「DMS」を検索します。図9に示すようにDMSポリシーを選択し、[次へ]をクリックします。
図9: DMSポリシーの選択
レビュー 、DMSポリシーは管理ポリシーとしてリストされている必要があります 権限で まとめ。 ユーザーの作成をクリックします 、図10に示すように。
図10: ユーザーを作成
IAMユーザーが作成されます(図11を参照)。
図11: IAMユーザーが作成しました
IAMユーザーはIAM>ユーザーに一覧表示されます 図12に示すように、ダッシュボード。
図12: IAMユーザー
IAMユーザーが作成したものとしてログインするには、ユーザーのリンクをクリックし、セキュリティクレデンシャルを選択します タブをクリックし、コンソールログインリンクをコピーします 、図13に示すように。
図13: コンソールログインリンク
以降のセクションでは、コンソールログインリンクを使用して作成したIAMユーザーとしてログインします。
結論
RDS上のMySQLデータベースインスタンスをRDS上のPostgresデータベースインスタンスに移行するための4つのチュートリアルの最初のチュートリアルでは、移行を実行するためのIAMユーザーを作成しました。