Amazon RDS Custom SQL Server の DB インスタンスの作成と接続 - Amazon Relational Database Service

Amazon RDS Custom SQL Server の DB インスタンスの作成と接続

RDS Custom DB インスタンスを作成し、AWS Systems Manager またはリモートデスクトッププロトコル (RDP) を使用してそのインスタンスに接続できます。

重要

DB インスタンスを作成したり、 RDS Custom for SQL Server の DB インスタンスに接続したりする前に、必ず Amazon RDS Custom for SQL Server の環境設定 のタスクを完了してください。

RDS Custom DBインスタンスの作成時にタグ付けは可能ですが、RDS Custom オートメーションに必要なAWSRDSCustomタグは作成したり変更したりしないでください。詳細については、「RDS Custom for SQL Server リソースのタグ付け」を参照してください。

RDS カスタム for SQL Server の DB インスタンスを初めて作成するときに、「サービスにリンクされたロールが作成中です」というエラーが表示される場合があります。後ほどもう一度試してください。これを実行した場合は、数分間待ってから DB インスタンスの作成を再試行します。

RDS Custom for SQL Server DB インスタンスの作成

AWS Management ConsoleまたはAWS CLIのいずれかを使用して Amazon RDS Custom SQL Server DB インスタンスを作成します。この手順は、Amazon RDS DB インスタンスの作成と似ています。

詳細については、「Amazon RDS DB インスタンスの作成」を参照してください。

RDS Custom SQL Server DB インスタンスを作成するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、データベースを選択します。

  3. [データベースの作成] を選択します。

  4. データベースの作成方法として [スタンダード作成」を選択します。

  5. エンジンオプション」 で、エンジンタイプとして「Microsoft SQL Server」 を選択します。

  6. データベース管理のタイプで、Amazon RDS Customを選択します。

  7. Edition」セクション で、使用したい DB エンジンのエディションを選択します。

  8. (オプション) CEV から DB インスタンスを作成する場合は、[Use custom engine version (CEV)] (カスタムエンジンバージョン (CEV) を使用する) チェックボックスをオンにします。ドロップダウンリストで CEV を選択します。

  9. [データベースのバージョン] は、デフォルト値のままにします。

  10. テンプレート」 では、「作成」 を選択します。

  11. 設定」 で、「DB インスタンス識別子」 の一意の名前を入力します。

  12. マスターパスワードを入力するには、以下の操作を行います。

    1. [設定] セクションで、[認証情報の設定] を開きます。

    2. [Auto generate a password (パスワードの自動生成)] チェックボックスをオフにします。

    3. (オプション) マスターユーザーネーム値を変更し、マスターパスワードおよびパスワードを認証するに同じパスワードを入力します。

    デフォルトでは、新規 RDS Custom DB インスタンスはマスターユーザー用に自動生成されたパスワードを使用します。

  13. DB インスタンスのサイズ」 セクションで、「DB インスタンスクラス」の値を選択します。

    サポートされているクラスについては、RDS Custom for SQL Server の DB インスタンスクラスでのサポートを参照してください。

  14. ストレージ」 設定を選択します。

  15. RDS Custom セキュリティ」 で、以下を実行します。

    1. [IAM インスタンスプロファイル] では、RDS Custom for SQL Server DB インスタンスとして 2 つのインスタンスプロファイルから選択できます。

      1. [新しいインスタンスプロファイルを作成] を選択して、インスタンスプロファイル名のサフィックスを指定します。詳細については、「AWS Management Console を使用したインスタンスプロファイルの自動作成」を参照してください。

      2. 既存のインスタンスプロファイルを選択します。ドロップダウンリストで、AWSRDSCustom で始まるインスタンスプロファイルを選択します。

    2. 「暗号化」で、「キーARNを入力」を選択して、使用可能なAWS KMSキーを一覧表示します。次に、リストからキーを選択します。

      AWS KMSRDS Custom にはキーが必要です。詳細については、「対称暗号化 AWS KMS キーであることを確認します。」を参照してください。

  16. 残りのセクションで、 RDS Custom DB インスタンス設定を指定します。各設定の詳細については、「DB インスタンスの設定」を参照してください。次の設定はコンソールに表示されず、サポート対象外です。

    • プロセッサの機能

    • ストレージのオートスケーリング

    • 可用性と耐久性の高い

    • データベース認証パスワードと Kerberos 認証のオプション (パスワード認証のみサポートされています)

    • 追加設定データベースオプショングループ

    • Performance Insights

    • ログのエクスポート

    • マイナーバージョン自動アップグレードの有効化

    • 削除保護

    バックアップ保持期間はサポートされていますが、0 日は選択できません。

  17. [データベースの作成] を選択します。

    認証情報の詳細の表示ボタンがデータベースページに表示されます。

    RDS Custom DB インスタンスのマスターユーザー名およびパスワードを表示するには、[認証情報の詳細の表示] を選択します。

    マスターユーザーとして DB インスタンスに接続するには、表示されているユーザー名およびパスワードを使用します。

    重要

    マスターユーザーのパスワードを再度表示することはできません。記録していない場合は、変更する必要がある場合があります。RDS Custom DB インスタンスが利用可能になった後にマスターユーザーのパスワードを変更するには、DB インスタンスを変更します。DB インスタンスの変更の詳細については、「Amazon RDS Custom for SQL Server DB インスタンスの管理」を参照してください。

  18. データベースを選択して、RDS Custom DB インスタンスのリストを表示します。

  19. 先ほど作成した RDS Custom DB インスタンスを選択します。

    RDS コンソールに、新規の RDS Custom DB インスタンスの詳細が表示されます。

    • RDS Custom DB インスタンスが作成されて使用できるようになるまで、DB インスタンスのステータスは [作成中] となります。ステータスが [利用可能] に変わると、DB インスタンスに接続できます。インスタンスクラスと割り当てられたストレージによっては、新規の DB インスタンスを使用できるようになるまで数分かかることがあります。

    • ロールにはインスタンス (RDS Custom)という値があります。

    • [RDS カスタムオートメーションモード] には [完全なオートメーション] という値があります。この設定は、DB インスタンスが自動モニタリングとインスタンスの回復を提供することを意味します。

RDS Custom DB インスタンスは、create-db-instance AWS CLI コマンドを使用して作成します。

以下のオプションは必須です。

次の例では、my-custom-instanceという名前の RDS Custom SQL Server DB インスタンスを作成します。バックアップ保持期間は 3 日間です。

注記

カスタムエンジンバージョン (CEV) から DB インスタンスを作成するには、--engine-version パラメータに既存の CEV 名を指定します。例えば、--engine-version 15.00.4249.2.my_cevtest

Linux、macOS、Unix の場合:

aws rds create-db-instance \ --engine custom-sqlserver-ee \ --engine-version 15.00.4073.23.v1 \ --db-instance-identifier my-custom-instance \ --db-instance-class db.m5.xlarge \ --allocated-storage 20 \ --db-subnet-group mydbsubnetgroup \ --master-username myuser \ --master-user-password mypassword \ --backup-retention-period 3 \ --no-multi-az \ --port 8200 \ --kms-key-id mykmskey \ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance

Windows の場合:

aws rds create-db-instance ^ --engine custom-sqlserver-ee ^ --engine-version 15.00.4073.23.v1 ^ --db-instance-identifier my-custom-instance ^ --db-instance-class db.m5.xlarge ^ --allocated-storage 20 ^ --db-subnet-group mydbsubnetgroup ^ --master-username myuser ^ --master-user-password mypassword ^ --backup-retention-period 3 ^ --no-multi-az ^ --port 8200 ^ --kms-key-id mykmskey ^ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance
注記

セキュリティ上のベストプラクティスとして、ここに示されているプロンプト以外のパスワードを指定してください。

describe-db-instances コマンドを使用して、インスタンスの詳細を入手します。

aws rds describe-db-instances --db-instance-identifier my-custom-instance

次の部分出力は、エンジン、パラメータグループ、およびその他の情報を示しています。

{ "DBInstances": [ { "PendingModifiedValues": {}, "Engine": "custom-sqlserver-ee", "MultiAZ": false, "DBSecurityGroups": [], "DBParameterGroups": [ { "DBParameterGroupName": "default.custom-sqlserver-ee-15", "ParameterApplyStatus": "in-sync" } ], "AutomationMode": "full", "DBInstanceIdentifier": "my-custom-instance", "TagList": [] } ] }

RDS Custom サービスにリンクされたロール

service-linked role は、AWS アカウント のリソースへのアクセス権を Amazon RDS Custom に付与します。これにより、必要なアクセス許可を手動で追加する必要がなくなるため、RDS Custom の使用が簡単になります。RDS Custom は、サービスにリンクされたロールのアクセス許可を定義し、別途定義されている場合を除き、RDS Custom のみがそのロールを引き受けることができます。定義されるアクセス許可には、信頼ポリシーやアクセス許可ポリシーなどがあり、そのアクセス許可ポリシーを他の IAM エンティティに添付することはできません。

RDS Custom DB インスタンスを作成すると、Amazon RDS と RDS Custom サービスにリンクされたロールの両方が作成され (まだ存在しない場合)、使用されます。詳細については、「Amazon RDS のサービスにリンクされたロールの使用」を参照してください。

RDS カスタム for SQL Server の DB インスタンスを初めて作成するときに、「サービスにリンクされたロールが作成中です」というエラーが表示される場合があります。後ほどもう一度試してください。これを実行した場合は、数分間待ってから DB インスタンスの作成を再試行します。

AWS Systems Managerを使用して RDS カスタム DB インスタンスに接続する

RDS Custom DB インスタンスを作成した後、AWS Systems Managerセッションマネージャーを使用してインスタンスに接続できます。Session Manager は Systems Manager の機能であり、ブラウザベースのシェルまたはAWS CLI通じて、Amazon EC2 インスタンスの管理に使用できます。詳細については、「AWS Systems Manager Session Manager」を参照してください。

Session Manager を使用して DB インスタンスに接続するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

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

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

  4. リソース ID DB インスタンスの値に注意してください。例えば、リソース ID はdb-ABCDEFGHIJKLMNOPQRS0123456になります。

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

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

  7. EC2 インスタンスの名前を探し、それに関連付けられているインスタンス ID を選択します。例えば、インスタンス ID はi-abcdefghijklm01234になります。

  8. [接続]を選択します。

  9. セッションマネージャーを選択します。

  10. [接続]を選択します。

    セッションのウィンドウが開きます。

AWS CLIを使用して RDS Custom DB インスタンスに接続できます。この方法では、AWS CLIのセッションマネージャープラグインが必要です。プラグインをインストールする方法については、「Install the Session Manager plugin for the AWS CLI」を参照してください。

RDS Custom DB インスタンスの DB リソース ID を見つけるには、describe-db-instancesを使用します。

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

次のサンプル出力は、RDS Custom インスタンスのリソース ID を示しています。プレフィックスはdb-です。

db-ABCDEFGHIJKLMNOPQRS0123456

DB インスタンスの EC2 インスタンス ID を見つけるには、aws ec2 describe-instancesを使用します。次の例ではリソース ID に db-ABCDEFGHIJKLMNOPQRS0123456 を使用しています。

aws ec2 describe-instances \ --filters "Name=tag:Name,Values=db-ABCDEFGHIJKLMNOPQRS0123456" \ --output text \ --query 'Reservations[*].Instances[*].InstanceId'

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

i-abcdefghijklm01234

aws ssm start-sessionコマンドで、--targetパラメータに EC2 インスタンス ID を指定します。

aws ssm start-session --target "i-abcdefghijklm01234"

接続に成功した場合は次のようになります。

Starting session with SessionId: yourid-abcdefghijklm1234 [ssm-user@ip-123-45-67-89 bin]$

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 インスタンスに接続します。

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