RDP を使用した RDS Custom DB インスタンスへの接続 - Amazon Relational Database Service

RDP を使用した RDS Custom DB インスタンスへの接続

RDS Custom DB インスタンスを作成すると、RDP クライアントを使用してこのインスタンスに接続できます。この手順は、Amazon EC2 インスタンスへの接続と同じです。詳細については、「Windows インスタンスに接続する」を参照してください。

DB インスタンスに接続するには、インスタンスに関連付けられているキーペアが必要です。RDS Custom は、キーペアを作成します。ペア名はプレフィックスdo-not-delete-rds-custom-DBInstanceIdentifierを使用します。AWS Secrets Managerはプライベートキーをシークレットとして保存します。

次のトピックのタスクを完了します。

RDP 接続を許可するように DB インスタンスを設定する

RDP 接続を許可するには、VPC セキュリティグループを設定し、ホストでファイアウォールルールを設定します。

VPC セキュリティグループの設定

DB インスタンスに関連付けられた VPC セキュリティグループが、ポート 3389 の送信制御プロトコル (TCP) のインバウンド接続を許可していることを確認してください。VPC セキュリティグループを設定する方法については、「次のように VPC セキュリティグループを設定します。」を参照してください。

ホストでファイアウォールルールを設定する

TCP のポート 3389 でインバウンド接続を許可するには、ホストでファイアウォールルールを設定します。次の例は、その方法を示しています。

次の特定の -Profile の値を使用することをお勧めします。PublicPrivate または DomainAny を使うと、3 つの値すべてを参照します。また、値をカンマで区切って、複数の値を組み合わせて指定することができます。ファイアウォールルールの設定の詳細については、Microsoft のドキュメント「Set-NetFirewallRule」を参照してください。

Systems Manager セッションマネージャーを使用してファイアウォールルールを設定するには
  1. AWS Systems Managerを使用して RDS カスタム DB インスタンスに接続するのように、セッションマネージャーに接続します。

  2. 以下のコマンドを実行します。

    Set-NetFirewallRule -DisplayName "Remote Desktop - User Mode (TCP-In)" -Direction Inbound -LocalAddress Any -Profile Any
Systems Manager CLI コマンドを使用してファイアウォールルールを設定するには
  1. 次のコマンドを使用して、ホストで RDP を開きます。

    OPEN_RDP_COMMAND_ID=$(aws ssm send-command --region $AWS_REGION \ --instance-ids $RDS_CUSTOM_INSTANCE_EC2_ID \ --document-name "AWS-RunPowerShellScript" \ --parameters '{"commands":["Set-NetFirewallRule -DisplayName \"Remote Desktop - User Mode (TCP-In)\" -Direction Inbound -LocalAddress Any -Profile Any"]}' \ --comment "Open RDP port" | jq -r ".Command.CommandId")
  2. 出力で返されたコマンド ID を使用して、前のコマンドのステータスを取得します。以下のクエリを使用してコマンド ID を返すには、jq プラグインがインストールされていることを確認してください。

    aws ssm list-commands \ --region $AWS_REGION \ --command-id $OPEN_RDP_COMMAND_ID

シークレットキーを取得する

AWS Management Consoleまたは、AWS CLIを使用してシークレットキーを取得します。

シークレットキーを取得するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/ を開きます。

  2. ナビゲーションペインで、「データベース」 を選択し、接続したい RDS Custom DB インスタンスを選択します。

  3. [設定] タブを選択します。

  4. DB インスタンスの DB インスタンス ID に注意してください。例えば、my-custom-instance

  5. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  6. ナビゲーションペインで、[インスタンス] を選択します。

  7. EC2 インスタンスの名前を探し、それに関連付けられているインスタンス ID を選択します。

    この例では、インスタンス ID はi-abcdefghijklm01234です。

  8. 詳細キーペア名を探します。ペア名には DB 識別子が含まれます。この例では、ペア名は do-not-delete-rds-custom-my-custom-instance-0d726c です。

  9. インスタンスの概要で、Public IPv4 DNSを探します。この例では、公開 DNS はec2-12-345-678-901.us-east-2.compute.amazonaws.comです。

  10. AWS Secrets Managerコンソールをhttps://console.aws.amazon.com/secretsmanager/で開きます。

  11. キーペアと同じ名前のシークレットを選択します。

  12. [シークレットの値を取得する] を選択します。

プライベートキーを取得するには
  1. aws rds describe-db-instancesコマンドを呼び出し、RDS Custom DB インスタンスのリストを取得します。

    aws rds describe-db-instances \ --query 'DBInstances[*].[DBInstanceIdentifier,DbiResourceId]' \ --output text
  2. サンプルの出力から DB インスタンス識別子を選択します。例えば、do-not-delete-rds-custom-my-custom-instance

  3. aws ec2 describe-instancesコマンドを呼び出し、DB インスタンスの EC2 インスタンス ID を検索します。次の例では、EC2 インスタンス名を使用して DB インスタンスを説明します。

    aws ec2 describe-instances \ --filters "Name=tag:Name,Values=do-not-delete-rds-custom-my-custom-instance" \ --output text \ --query 'Reservations[*].Instances[*].InstanceId'

    次の出力例は、EC2 インスタンス ID を示しています。

    i-abcdefghijklm01234
  4. 以下の例のように EC2 インスタンス ID を指定して、キー名を検索します。

    aws ec2 describe-instances \ --instance-ids i-abcdefghijklm01234 \ --output text \ --query 'Reservations[*].Instances[*].KeyName'

    次の出力例は、プレフィックスdo-not-delete-rds-custom-DBInstanceIdentifierを使用するキー名を示しています。

    do-not-delete-rds-custom-my-custom-instance-0d726c

RDP ユーティリティを使用して EC2 インスタンスに接続します。

Amazon EC2 ユーザーガイド」の「RDP を使用して Windows インスタンスに接続する」の手順に従ってください。この手順では、プライベートキーが含まれる.pem ファイルを作成したことを前提としています。