

# RDP を使用した RDS Custom DB インスタンスへの接続
<a name="custom-creating-sqlserver.rdp"></a>

RDS Custom DB インスタンスを作成すると、RDP クライアントを使用してこのインスタンスに接続できます。この手順は、Amazon EC2 インスタンスへの接続と同じです。詳細については、「[Windows インスタンスに接続する](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/connecting_to_windows_instance.html)」を参照してください。

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

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

1. [RDP 接続を許可するように DB インスタンスを設定する](#custom-creating-sqlserver.rdp.port).

1. [シークレットキーを取得する](#custom-creating-sqlserver.rdp.key).

1. [RDP ユーティリティを使用して EC2 インスタンスに接続します。](#custom-creating-sqlserver.rdp.connect).

## RDP 接続を許可するように DB インスタンスを設定する
<a name="custom-creating-sqlserver.rdp.port"></a>

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

### VPC セキュリティグループの設定
<a name="custom-creating-sqlserver.rdp.port.vpc"></a>

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

### ホストでファイアウォールルールを設定する
<a name="custom-creating-sqlserver.rdp.port.firewall"></a>

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

次の特定の `-Profile` の値を使用することをお勧めします。`Public`、`Private` または `Domain`。`Any` を使うと、3 つの値すべてを参照します。また、値をカンマで区切って、複数の値を組み合わせて指定することができます。ファイアウォールルールの設定の詳細については、Microsoft のドキュメント「[Set-NetFirewallRule](https://docs.microsoft.com/en-us/powershell/module/netsecurity/set-netfirewallrule?view=windowsserver2019-ps)」を参照してください。

**Systems Manager セッションマネージャーを使用してファイアウォールルールを設定するには**

1. [AWS Systems Managerを使用して RDS カスタム DB インスタンスに接続する](custom-creating-sqlserver.ssm.md)のように、セッションマネージャーに接続します。

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

   ```
   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")
   ```

1. 出力で返されたコマンド ID を使用して、前のコマンドのステータスを取得します。以下のクエリを使用してコマンド ID を返すには、jq プラグインがインストールされていることを確認してください。

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

## シークレットキーを取得する
<a name="custom-creating-sqlserver.rdp.key"></a>

AWS マネジメントコンソールまたは、AWS CLIを使用してシークレットキーを取得します。

### コンソール
<a name="custom-creating-sqlserver.rdp.key.CON"></a>

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

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/) を開きます。

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

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

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

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

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

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

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

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

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

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

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

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

### AWS CLI
<a name="custom-creating-sqlserver.rdp.key.CLI"></a>

**プライベートキーを取得するには**

1. `aws rds describe-db-instances`コマンドを呼び出し、RDS Custom DB インスタンスのリストを取得します。

   ```
   aws rds describe-db-instances \
       --query 'DBInstances[*].[DBInstanceIdentifier,DbiResourceId]' \
       --output text
   ```

1. サンプルの出力から DB インスタンス識別子を選択します。例えば、`do-not-delete-rds-custom-my-custom-instance`。

1. `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
   ```

1. 以下の例のように 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 インスタンスに接続します。
<a name="custom-creating-sqlserver.rdp.connect"></a>

「*Amazon EC2 ユーザーガイド*」の「[RDP を使用して Windows インスタンスに接続する](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/connecting_to_windows_instance.html#connect-rdp)」の手順に従ってください。この手順では、プライベートキーが含まれる.pem ファイルを作成したことを前提としています。