Amazon RDS Custom for Oracle DB インスタンスの設定 - Amazon Relational Database Service

Amazon RDS Custom for Oracle DB インスタンスの設定

RDS Custom for Oracle の DB インスタンスを作成し、セキュアシェル (SSH) またはAWS Systems Managerを使用してそれに接続できます。

マルチテナントアーキテクチャの考慮事項

Oracle マルチテナントアーキテクチャ (custom-oracle-ee-cdb または custom-oracle-se2-cdb エンジンタイプ) で Amazon RDS Custom for Oracle DB インスタンスを作成する場合、データベースはコンテナデータベース (CDB) になります。Oracle マルチテナントアーキテクチャを指定しない場合、データベースは custom-oracle-ee または custom-oracle-se2 エンジンタイプを使用する従来の非 CDB になります。非 CDB には、プラグ可能なデータベース (PDB) を含めることはできません。詳細については、「Amazon RDS Custom for Oracle のデータベースアーキテクチャ」を参照してください。

RDS Custom for Oracle  CDB インスタンスを作成するときには、次の点を考慮してください。

  • マルチテナントデータベースは、Oracle Database 19c CEV からのみ作成できます。

  • CDB インスタンスを作成できるのは、CEV が custom-oracle-ee-cdb または custom-oracle-se2-cdb エンジンタイプを使用している場合のみです。

  • Standard Edition 2 を使用して CDB インスタンスを作成する場合、CDB には最大 3 つの PDB を含めることができます。

  • デフォルトでは、CDB には Oracle System ID (Oracle SID) と同じ RDSCDB という名前が付けられます。別の名前を選択できます。

  • CDB には初期 PDB が 1 つだけ含まれています。PDB のデフォルト名は、ORCL です。初期 PDB に別の名前を選択できますが、Oracle SID と PDB の名前を同じにすることはできません。

  • RDS Custom for Oracle は PDB 用の API を提供していません。追加の PDB を作成するには、Oracle SQL コマンド CREATE PLUGGABLE DATABASE を使用してください。RDS Custom for Oracle では、作成可能な PDB 数に制限はありません。一般に、オンプレミスデプロイと同様、PDB の作成と管理はお客様の責任となります。

  • RDS API を使用して PDB を作成、変更、削除することはできません。Oracle SQL ステートメントを使用する必要があります。Oracle SQL を使用して PDB を作成した場合は、ポイントインタイムリカバリ (PITR) を実行する必要がある場合に備えて、手動でスナップショットを取ることをお勧めします。

  • Amazon RDS API を使用して既存の PDB の名前を変更することはできません。また、modify-db-instance コマンドを使用して CDB の名前を変更することはできません。

  • CDB ルートのオープンモードは、プライマリデータベースでは READ WRITE、マウントされたスタンバイデータベースでは MOUNTED です。RDS Custom for Oracle は、CDB を開く際にすべての PDB を開こうとします。RDS Custom for Oracle がすべての PDB を開くことができない場合は、イベント tenant database shutdown が発行されます。

RDS Custom for Oracle DB インスタンスを作成する

AWS Management ConsoleまたはAWS CLIのいずれかを使用して、Amazon RDS Custom for Oracle DB インスタンスを作成します。この手順は、Amazon RDS DB インスタンスの作成手順と似ています。詳細については、「Amazon RDS DB インスタンスの作成」を参照してください。

CEV マニフェストにインストールパラメータを含めた場合、DB インスタンスは Oracle ベース、Oracle ホーム、指定した UNIX/Linux ユーザーとグループの ID と名前を使用します。この oratab ファイルは、インストール中に Oracle Database によって作成され、シンボリックリンクではなく、実際のインストール先を指しています。RDS Custom for Oracle がコマンドを実行するときには、デフォルトユーザーの rdsdb ではなく、設定された OS ユーザーとして実行します。詳細については、「ステップ 5: CEV マニフェストを準備する」を参照してください。

RDS Custom DB インスタンスの作成、または接続を試行する前に、 Amazon RDS Custom for Oracle の環境設定 のタスクを完了してください。

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

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

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

  4. [Choose a database creation method] (データベース作成方法を選択) で [Standard Create] (スタンダード作成) を選択します。

  5. [エンジンオプション] セクションで、次の操作を行います。

    1. [エンジンのタイプ] で、[Oracle] を選択します。

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

    3. [アーキテクチャ設定] で、以下のいずれかを実行します。

      • [マルチテナントアーキテクチャ] を選択して、コンテナデータベース (CDB) を作成します。作成時には、CDB には 1 つの PDB シードと 1 つの初期 PDB が含まれています。

        注記

        [マルチテナントアーキテクチャ] 設定は、Oracle Database 19c でのみサポートされています。

      • [マルチテナントアーキテクチャ] をクリアして、非 CDB を作成します。非 CDB には、PDB を含めることはできません。

    4. [エディション] で、[Oracle Enterprise Edition] または [Oracle Standard Edition 2] を選択します。

    5. [カスタムエンジンバージョン] で、既存の RDS Custom カスタムエンジンバージョン (CEV) を選択します。CEV の形式は major-engine-version.customized_string のようになっています。識別子の例は19.cdb_cev1のとおりです。

      前のステップで [マルチテナントアーキテクチャ] を選択した場合は、custom-oracle-ee-cdb または custom-oracle-se2-cdb エンジンタイプを使用する CEV のみを指定できます。コンソールは、異なるエンジンタイプで作成された CEV を除外します。

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

  7. [設定] セクションで、以下の手順を実行します。

    1. [DB インスタンス識別子] として、DB インスタンスの一意の名前を入力します。

    2. [マスターユーザー名] で、ユーザー名を入力します。この値は後でコンソールから取得できます。

      非 CDB に接続する場合、マスターユーザーは非 CDB のユーザーです。CDB に接続する場合、マスターユーザーは PDB のユーザーです。CDB ルートに接続するには、ホストにログインして SQL クライアントを起動し、SQL コマンドを使用して管理ユーザーを作成します。

    3. [パスワードの自動生成] をオフにします。

  8. [DB インスタンスクラス] を選択します。

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

  9. [Storage] (ストレージ) セクションで、以下の操作を行います。

    1. [ストレージタイプ] には、SSD タイプ (io1、gp2、または gp3) を選択します。次の追加オプションがあります。

      • io1 または gp3 の場合は、[プロビジョンド IOPS] のレートを選択します。デフォルトは、io1 が 1000、gp3 が 12000 です。

      • gp3 の場合は、[ストレージスループット] のレートを選択します。デフォルトは 500 MiBps です。

    2. [割り当てられたストレージ] で、ストレージサイズを選択します。デフォルトは 40 GiB です。

  10. [接続] で、[Virtual Private Cloud (VPC)][DB サブネットグループ][VPC セキュリティグループ (ファイアウォール)] を指定します。

  11. RDS カスタムセキュリティ」 で、以下を実行します。

    1. IAM インスタンスプロファイルで、RDS Custom for Oracle DB インスタンスのインスタンスプロファイルを選択します。

      IAM インスタンスプロファイルは、AWSRDSCustomで始まる必要があります。例えば、AWSRDSCustomInstanceProfileForRdsCustomInstanceです。

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

      AWS KMSRDS Custom にはキーが必要です。詳細については、「ステップ 1: 対称暗号化 AWS KMS キーを作成または再利用する」を参照してください。

  12. [データベースオプション] で、次の操作を行います。

    1. (オプション) [システム ID (SID)] に、Oracle SID の値を入力します。これは CDB の名前でもあります。SID は、データベースファイルを管理する Oracle データベースインスタンスの名前です。この場合、「Oracle データベースインスタンス」という用語は、システムグローバルエリア (SGA) と Oracle バックグラウンドプロセスのみを指します。SID を指定しなかった場合、値はデフォルトで RDSCDB に設定されます。

    2. (オプション) [最初のデータベース名] に名前を入力します。デフォルト値は ORCL です。マルチテナントアーキテクチャでは、最初のデータベース名は PDB 名です。

      注記

      SID と PDB 名は異なる必要があります。

    3. [オプショングループ] で、オプショングループを選択するか、デフォルトを受け入れます。

      注記

      RDS Custom for Oracle でサポートされているオプションは Timezone のみです。詳細については、「Oracle のタイムゾーン」を参照してください。

    4. [バックアップ保持期間] で、値を選択します。[0 日] は選択できません。

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

      • プロセッサの機能

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

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

      • Performance Insights

      • ログのエクスポート

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

      • 削除保護

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

    重要

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

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

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

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

    重要

    コンソールでマスターユーザーパスワードを再度表示することはできません。記録していない場合は、変更する必要がある場合があります。RDS Custom DB インスタンスが使用可能になった後にマスターユーザーパスワードを変更するには、データベースにログインして、ALTER USER コマンドを実行します。コンソールで [変更] を使用してパスワードをリセットすることはできません。

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

  15. 先ほど作成した 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 コマンドを使用して作成します。

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

  • --db-instance-identifier

  • --db-instance-class (サポートされている DB インスタンスクラスのリストについては、「RDS Custom for Oracle での DB インスタンスクラスのサポート」を参照してください)

  • --engine engine-type (engine-typecustom-oracle-eecustom-oracle-se2custom-oracle-ee-cdb、または custom-oracle-se2-cdb)

  • --engine-version cev (cevCEV の作成で指定したカスタムエンジンバージョンの名前です)

  • --kms-key-id my-kms-key

  • --backup-retention-period days (days0 より大きい値です)

  • --no-auto-minor-version-upgrade

  • --custom-iam-instance-profile AWSRDSCustomInstanceProfile-us-east-1 (region は DB インスタンスを作成する AWS リージョン です)

以下の例では、my-cfo-cdb-instance という名前の RDS Custom DB インスタンスを作成します。データベースは、デフォルト以外の MYCDB という名前の CDB です。デフォルト以外の PDB 名は MYPDB です。バックアップ保持期間は 3 日間です。

Linux、macOS、Unix の場合:

aws rds create-db-instance \ --engine custom-oracle-ee-cdb \ --db-instance-identifier my-cfo-cdb-instance \ --engine-version 19.cdb_cev1 \ --db-name MYPDB \ --db-system-id MYCDB \ --allocated-storage 250 \ --db-instance-class db.m5.xlarge \ --db-subnet-group mydbsubnetgroup \ --master-username myuser \ --master-user-password mypassword \ --backup-retention-period 3 \ --port 8200 \ --kms-key-id my-kms-key \ --no-auto-minor-version-upgrade \ --custom-iam-instance-profile AWSRDSCustomInstanceProfile-us-east-1

Windows の場合:

aws rds create-db-instance ^ --engine custom-oracle-ee-cdb ^ --db-instance-identifier my-cfo-cdb-instance ^ --engine-version 19.cdb_cev1 ^ --db-name MYPDB ^ --db-system-id MYCDB ^ --allocated-storage 250 ^ --db-instance-class db.m5.xlarge ^ --db-subnet-group mydbsubnetgroup ^ --master-username myuser ^ --master-user-password mypassword ^ --backup-retention-period 3 ^ --port 8200 ^ --kms-key-id my-kms-key ^ --no-auto-minor-version-upgrade ^ --custom-iam-instance-profile AWSRDSCustomInstanceProfile-us-east-1
注記

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

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

aws rds describe-db-instances --db-instance-identifier my-cfo-cdb-instance

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

{ "DBInstanceIdentifier": "my-cfo-cdb-instance", "DBInstanceClass": "db.m5.xlarge", "Engine": "custom-oracle-ee-cdb", "DBInstanceStatus": "available", "MasterUsername": "admin", "DBName": "MYPDB", "DBSystemID": "MYCDB", "Endpoint": { "Address": "my-cfo-cdb-instance.abcdefghijkl.us-east-1.rds.amazonaws.com", "Port": 1521, "HostedZoneId": "A1B2CDEFGH34IJ" }, "AllocatedStorage": 100, "InstanceCreateTime": "2023-04-12T18:52:16.353000+00:00", "PreferredBackupWindow": "08:46-09:16", "BackupRetentionPeriod": 7, "DBSecurityGroups": [], "VpcSecurityGroups": [ { "VpcSecurityGroupId": "sg-0a1bcd2e", "Status": "active" } ], "DBParameterGroups": [ { "DBParameterGroupName": "default.custom-oracle-ee-cdb-19", "ParameterApplyStatus": "in-sync" } ], ...

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 Custom for Oracle DB インスタンスを初めて作成するときに、「サービスにリンクされたロールが作成中です」というエラーが表示される場合があります。後ほどもう一度試してください。」 表示された場合は、数分間待ってから DB インスタンスの作成を再試行します。

Session Manager を使用して RDS Custom DB インスタンスに接続する

RDS Custom DB インスタンスを作成した後、AWS Systems Manager Session Manager を使用してインスタンスに接続できます。DB インスタンスが一般にアクセスできない場合に推奨される方法です。

Session 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. DB インスタンスのリソース IDに注意してください。例えば、リソース 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 を見つけるには、aws rds 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]$

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

セキュアシェルプロトコル (SSH) は、セキュリティで保護されていないネットワーク上での暗号化通信をサポートするネットワークプロトコルです。RDS Custom DB インスタンスを作成すると、SSH クライアントを使用してこのインスタンスに接続できます。詳細については、「SSH を使用した Linux インスタンスへの接続」を参照してください。

SSH 接続方法は、DB インスタンスがプライベートかどうか、つまりパブリックインターネットからの接続を受け付けないかどうかによって異なります。この場合、SSH トンネリングを使用して ssh ユーティリティをインスタンスに接続する必要があります。この方法では、既存の SSH セッション内の専用データストリーム (トンネル) を使用してデータを転送します。SSH トンネリングは AWS Systems Manager を使用して設定できます。

注記

プライベートインスタンスへのアクセスにはさまざまな戦略がサポートされています。踏み台ホストを使用して SSH クライアントをプライベートインスタンスに接続する方法については、「AWS での Linux 踏み台ホスト」を参照してください。ポート転送を設定する方法については、「AWS Systems Manager Session Manager を使用したポート転送」を参照してください。

DB インスタンスがパブリックサブネットにあり、パブリックに利用可能な設定になっている場合は、SSH トンネリングは必要ありません。パブリック Amazon EC2 インスタンスと同じように SSH で接続できます。

SSH クライアントを DB インスタンスに接続するには、次のステップを完了します。

ステップ 1: SSH 接続を許可するように DB インスタンスを設定する

DB インスタンスが SSH 接続を受け入れるには、次の手順を実行します。

  • DB インスタンスのセキュリティグループが TCP のポート 22 でインバウンド接続を許可していることを確認します。

    DB インスタンスのセキュリティグループを設定する方法については、「セキュリティグループによるアクセス制御」を参照してください。

  • SSH トンネリングを使用する予定がない場合は、DB インスタンスがパブリックサブネットにあり、パブリックにアクセス可能であることを確認してください。

    コンソールでは、データベース詳細ページの [接続とセキュリティ] タブで関連するフィールドが一般公開されています。CLI で設定を確認するには、次のコマンドを実行します。

    aws rds describe-db-instances \ --query 'DBInstances[*].{DBInstanceIdentifier:DBInstanceIdentifier,PubliclyAccessible:PubliclyAccessible}' \ --output table

    DB インスタンスのアクセシビリティ設定を変更するには、「Amazon RDS DB インスタンスを変更する」を参照してください。

ステップ 2: SSH シークレットキーと EC2 インスタンス ID を取得する

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

AWS Management Console または AWS CLI を使用して SSH シークレットキーを取得します。インスタンスにパブリック DNS があり、SSH トンネリングを使用する予定がない場合は、DNS 名も取得してください。公開接続の DNS 名を指定します。

シークレット SSH キーを取得するには
  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 を選択します。例えば、EC2 インスタンス ID はi-abcdefghijklm01234です。

  8. 詳細で、キーペア名を見つけます。ペア名には DB インスタンスリソース ID が含まれます。例えば、ペア名はdo-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726cのようになります。

  9. EC2 インスタンスがパブリックの場合は、パブリック 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. [シークレットの値を取得する] を選択します。

  13. SSH プライベートキーをテキストファイルにコピーし、.pem 拡張子を付けてファイルを保存します。例えば、ファイルを /tmp/do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem として保存します。

SSH プライベートキーを取得して.pem ファイルに保存するには、AWS CLI を使用できます。

  1. aws rds describe-db-instances を使用して RDS Custom DB インスタンスの DB リソース ID を見つけます。

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

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

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

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

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

    i-abcdefghijklm01234
  3. キー名を見つけるには、EC2 インスタンス ID を指定します。次の例では、EC2 インスタンス i-0bdc4219e66944afa について説明しています。

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

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

    do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c
  4. プライベートキーは、aws secretsmanager を使用してキーの名前を付けた .pem ファイルに保存します。次の例では/tmpディレクトリのファイルを読み取ります。

    aws secretsmanager get-secret-value \ --secret-id do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c \ --query SecretString \ --output text >/tmp/do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem

ステップ 3: SSH ユーティリティを使用して EC2 インスタンスに接続します

接続方法は、プライベート DB インスタンスに接続するか、パブリックインスタンスに接続するかによって異なります。プライベート接続では、AWS Systems Manager による SSH トンネリングを設定する必要があります。

SSH ユーティリティを使用して EC2 インスタンスに接続するには
  1. プライベート接続の場合は、コマンドを AWS Systems Manager Session Manager にプロキシするように SSH 設定ファイルを変更してください。公開接続の場合は、ステップ 2 に進みます。

    ~/.ssh/config に次の行を追加します。これらの行は、前が i- または mi- で始まるホストの SSH コマンドをプロキシします。

    Host i-* mi-* ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
  2. .pem ファイルを含むディレクトリに移動します。chmodを使用して、許可を400に設定します。

    cd /tmp chmod 400 do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem
  3. .pem ファイルと、パブリック DNS 名 (パブリック接続用) または EC2 インスタンス ID (プライベート接続用) を指定して ssh ユーティリティを実行します。ユーザー ec2-user としてログインします。

    次の例では、DNS 名 ec2-12-345-678-901.us-east-2.compute.amazonaws.com を使用してパブリックインスタンスに接続します

    ssh -i \ "do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem" \ ec2-user@ec2-12-345-678-901.us-east-2.compute.amazonaws.com

    次の例では、EC2 インスタンス ID i-0bdc4219e66944afa を使用してプライベートインスタンスに接続します。

    ssh -i \ "do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem" \ ec2-user@i-0bdc4219e66944afa

RDS Custom for Oracle データベースに SYS としてログインします。

RDS Custom DB インスタンスを作成すると、SYSDBA 権限が付与される、ユーザー SYS として Oracle データベースにログインできます。次のログイン方法があります。

  • Secrets Manager から SYS パスワードを取得し、このパスワードを SQL クライアントで指定します。

  • OS 認証を使用してデータベースにログインします。この場合、パスワードは必要ありません。

RDS Custom for Oracle データベースの SYS パスワードの検索

SYS または SYSTEM として、または API コールでマスターユーザー名を指定することにより、Oracle データベースにログインできます。SYSSYSTEM のパスワードは Secrets Manager に保存されます。シークレットには do-not-delete-rds-custom-resource_id-uuid という命名形式を使用します。パスワードは、AWS Management Console で検索できます。

Secrets Manager でデータベースの SYS パスワードを確認するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/ を開きます。

  2. RDS コンソールで、以下の手順を実行します。

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

    2. RDS Custom for Oracle DB インスタンスの名前を選択します。

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

    4. [リソース ID] の下の値をコピーします。例えば、リソース ID が db-ABC12CDE3FGH4I5JKLMNO6PQR7 とします。

  3. Secrets Manager のコンソール (https://console.aws.amazon.com/secretsmanager/) を開きます。

  4. Secrets Manager コンソールで、以下の手順を実行します。

    1. 左側のナビゲーションペインで [サーバー] を選択します。

    2. ステップ 5 でコピーしたリソース ID でシークレットをフィルタリングします。

    3. do-not-delete-rds-custom-resource_id-uuid という名前のシークレットを選択します。ここで、resource_id は、ステップ 5 でコピーしたリソース ID です。例えば、リソース ID が db-ABC12CDE3FGH4I5JKLMNO6PQR7 の場合、シークレットは、do-not-delete-rds-custom-db-ABC12CDE3FGH4I5JKLMNO6PQR7 という名前になります。

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

    5. [キー/値] で、[パスワード] の値をコピーします。

  5. DB インスタンスに SQL*Plus をインストールし、データベースに SYS としてログインします。詳細については、「ステップ 3: SQL クライアントを Oracle DB インスタンスに接続する」を参照してください。

OS 認証を使用して RDS Custom for Oracle データベースにログインする

OS ユーザー rdsdb は Oracle データベースのバイナリを所有しています。rdsdb ユーザーに切り替えて、パスワードなしで RDS Custom for Oracle データベースにログインできます。

  1. AWS Systems Manager を使って DB インスタンスに接続します。詳細については、「Session Manager を使用して RDS Custom DB インスタンスに接続する」を参照してください。

  2. ウェブブラウザで、https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html に進みます。

  3. ウェブページに表示される最新のデータベースバージョンについては、Instant Client Basic Package と SQL*Plus Package の .rpm リンク (.zip リンクではない) をコピーします。例えば、次のリンクは Oracle Database バージョン 21.9 用です。

    • https://download.oracle.com/otn_software/linux/instantclient/219000/oracle-instantclient-basic-21.9.0.0.0-1.el8.x86_64.rpm

    • https://download.oracle.com/otn_software/linux/instantclient/219000/oracle-instantclient-sqlplus-21.9.0.0.0-1.el8.x86_64.rpm

  4. SSH セッションで、wget コマンドを実行して、前のステップで取得したリンクから .rpm ファイルをダウンロードします。次の例では、Oracle Database バージョン 21.9 の .rpm ファイルをダウンロードします。

    wget https://download.oracle.com/otn_software/linux/instantclient/219000/oracle-instantclient-basic-21.9.0.0.0-1.el8.x86_64.rpm wget https://download.oracle.com/otn_software/linux/instantclient/219000/oracle-instantclient-sqlplus-21.9.0.0.0-1.el8.x86_64.rpm
  5. 以下の yum コマンドを実行してパッケージをインストールします。

    sudo yum install oracle-instantclient-*.rpm
  6. rdsdb ユーザーに切り替えます。

    sudo su - rdsdb
  7. OS 認証を使用してデータベースにログインします。

    $ sqlplus / as sysdba SQL*Plus: Release 21.0.0.0.0 - Production on Wed Apr 12 20:11:08 2023 Version 21.9.0.0.0 Copyright (c) 1982, 2020, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.10.0.0.0

RDS Custom for Oracle DB インスタンスに追加のソフトウェアコンポーネントをインストールする

新しく作成された DB インスタンスでは、データベース環境には Oracle バイナリ、データベース、およびデータベースリスナーが含まれます。DB インスタンスのホストオペレーティングシステムに追加のソフトウェアをインストールしたい場合があります。例えば、Oracle Application Express (APEX)、Oracle Enterprise Manager (OEM) エージェント、または Guardium S-TAP エージェントをインストールしたい場合があります。ガイドラインと大まかな手順については、詳細な AWS ブログ記事「Amazon RDS Custom for Oracle に追加のソフトウェアコンポーネントをインストールする」を参照してください。