MySQLデータベースとPostgreSQLデータベースはトップ2のオープンソースリレーショナルデータベース管理システム(RDBMS)であり、それぞれにいくつかの独自の利点があります。前回の記事「AWSRDSでのMySQLからPostgreSQLへの移行、パート1」では、MySQLに対するPostgreSQLの利点のいくつかについて説明し、MySQLからPostgreSQLへの移行を実行するAWS Database Migration Service(DMS)を紹介しました。まず、DMS用のAWSIAMユーザーを作成しました。この継続チュートリアルでは、RDS上にMySQLデータベースとPostgreSQLデータベースのインスタンスを作成し、それぞれに接続します。このチュートリアルには次のセクションがあります:
- MySQLデータベースとPostgreSQLデータベース用のAWSRDSインスタンスの作成
- データベースとDMS間の接続の構成
- MySQLデータベースへの接続
- PostgreSQLデータベースへの接続
- 結論
MySQLデータベースとPostgreSQLデータベース用のAWSRDSインスタンスの作成
AWS RDSで、ソースデータベースとターゲットデータベース、それぞれMySQLデータベースとPostgreSQLデータベースを作成します。 RDSの使用については、以前のチュートリアルで説明しています。図1に示すように、ソースデータベースであるMySQLデータベースには、MySQLを選択します。
図1: RDSでのMySQLの選択
ProductionまたはDev/ Testを選択します 図2に示すように、展開オプション。[次のステップ]をクリックします。
図2: 展開タイプの選択
DBの詳細を指定します 、そのほとんどには適切なデフォルト設定があります。 DBインスタンスクラス(db.t2.microまたはdb.t1.micro)を選択します。 DBインスタンス識別子(MYSQLDB)を指定します。これは、「MYSQL」などのMySQLデータベースの予約語であってはなりません。マスターユーザー名、マスターパスワード(8文字以上である必要があります)を指定し、[次のステップ]をクリックします。次に、詳細設定を構成します 。 VPCの場合は、新しいVPCを作成を選択します 。 [サブネットグループ]で、[新しいDBサブネットグループの作成]を選択します 。 一般公開の場合 、はいを選択します 。 アベイラビリティーゾーンの場合 、設定なしを選択します 。 VPCセキュリティグループの場合 、[新しいセキュリティグループの作成]を選択します。 「MYSQL」などの予約語であってはならないデータベース名(MYSQLDB)、およびデータベースポート(3306)を含むデータベースオプションを指定します。バックアップのデフォルト設定を保持します。 RDS上のMySQLをDMSソースとして使用するには、自動バックアップが必要です。監視と保守のデフォルト設定を維持し、DBインスタンスの起動をクリックします 。 RDS上のMySQLデータベースが作成されます。
PostgreSQLデータベースの場合、RDSデータベースエンジンを PostgreSQLとして選択します 、図3に示すように。
図3: PostgreSQLデータベースエンジンの選択
開発/テストの展開タイプを選択し、[次のステップ]をクリックします。 DBの詳細を指定します。ほとんどのデフォルト設定が適しています。 DBインスタンス識別子(postgresdb)、マスターユーザー名、マスターパスワードを指定し、[次のステップ]をクリックします。次に、データベース名(postgresdb)、データベースポート(5432)のデータベースオプションなどの詳細設定を構成し、[DBインスタンスの起動]をクリックします。 PostgreSQLデータベースがRDSで起動されます。 RDS上のMySQLデータベースとPostgreSQLデータベースを図4に示します。
図4: RDS上のMySQLおよびPostgreSQLデータベース
データベースとDMS間の接続の構成
デフォルトでは、Database Migration Service(DMS)はRDSDBインスタンスに接続できません。 RDSDBインスタンスのセキュリティグループへの接続を追加する必要があります。 セキュリティグループをクリックします 構成の詳細のリンク 図5に示すように、MySQLRDSDBインスタンスの場合。
図5: RDS上のMySQLのセキュリティグループ
セキュリティグループコンソールで、[インバウンド]タブを選択し、[編集]をクリックします。 (図6を参照)。
図6: セキュリティグループ>編集
インバウンドルールの編集 、タイプを選択します すべてのトラフィックとして 、プロトコル すべてとして 、ポート範囲 0-65535として、ソース どこでもとして 保存をクリックします 、図7に示すように。
図7: すべてのトラフィックを許可するようにインバウンドルールを構成する
図8に示すように、インバウンドルールはすべてのトラフィックを許可するように構成されます。
図8: インバウンド>すべてのトラフィック
アウトバウンド インバウンドルールが設定されている場合、図9に示すように、ルールも[すべてのトラフィック]に設定する必要があります。
図9: アウトバウンド>すべてのトラフィック
同様に、図10に示すように、PostgreSQL RDS DBインスタンスの[セキュリティグループ]リンクをクリックし、すべてのトラフィックを許可するようにインバウンド/アウトバウンドルールを設定します。
図10: すべてのトラフィックを許可するようにPostgreSQLのセキュリティグループを構成する
MySQLデータベースへの接続
RDSでMySQLデータベースインスタンスを移行する場合、システムスキーマとテーブルを含むすべてのスキーマとテーブルを含む完全なデータベースが移行される場合があります。このセクションでは、RDS上のMySQLデータベースに接続し、 dvohraにいくつかのユーザー権限を付与します。 ユーザー。 MySQLデータベースに接続するには、データベースのエンドポイントを取得します RDSダッシュボードから(図11を参照)。
図11: エンドポイントの取得
コマンドシェルで、MySQLデータベースのbinディレクトリ(C:Program FilesMySQLMySQL Server 5.7bin)から次のMySQLコマンドを実行します。これにより、MySQLCLIセッションが開始されます。
mysql -h mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com -u dvohra -p
パスワードの入力:でパスワードを指定します 促す。 SQL> 図12に示すように、コマンドプロンプトが表示されます。
図12: CLIを使用したMySQLデータベースへの接続
次に、RDS上のMySQLデータベースインスタンスの権限をDMSユーザー(dvohra)に付与します。
GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON *.* TO 'dvohra'@'%'; GRANT ALL PRIVILEGES ON awsdms_control.* TO 'dvohra'@'%';
図13に示すように、ユーザー権限が設定されます。
図13: ユーザー権限の追加
PostgreSQLデータベースへの接続
コマンドシェルからRDS上のPostgreSQLデータベースに接続するには、データベースのエンドポイントを取得します 図14に示すように、RDSダッシュボードから。
図14: RDSでPostgreSQLデータベースエンドポイントを取得する
次のコマンドを実行してPostgreSQLデータベースに接続し、コマンドラインインターフェイス(CLI)を起動します。
psql --host=postgresdb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com --port=5432 --username dvohra --password --dbname=postgresdb
図15に示すように、PostgreSQLデータベースのコマンドラインインターフェイス(CLI)が開始されます。
図15: CLIを使用したRDS上のPostgreSQLデータベースへの接続
dnを使用してスキーマを一覧表示します 指図。パブリックスキーマが一覧表示されます(図16を参照)。
図16: スキーマの一覧表示
結論
RDS上のMySQLデータベースインスタンスをAWSDMSを使用してRDS上のPostgresデータベースインスタンスに移行する4つのチュートリアルのこの2番目では、RDS上に2つのデータベースのインスタンスを作成し、データベースインスタンスに接続しました。次のチュートリアルでは、DMS移行を作成します。