mcpField
R
rds-oracle

rds-oracle

github.com/awsデータ・データベース3.3k4.7k 回インストール今日更新
リポジトリ

rds-oracle について

Amazon RDS for Oracleの接続とリソース操作を扱うエージェントスキルです。ネットワーク、認証、暗号化、実行環境、トラブルシューティングを対象とし、変更前の確認とOracle固有の制約を重視します。

主な機能

  1. 01接続ライフサイクルのガイダンス
  2. 02ネットワークと認証の設定
  3. 03TLS/TCPSとNNEの暗号化ガイダンス
  4. 048つのサブスキルへの振り分け
  5. 05変更確認と安全上の制約
  6. 06接続トラブルシューティング

活用シーン

  1. 01プライベートサブネットでの接続設計
  2. 02Secrets ManagerまたはKerberos認証の設定
  3. 03Oracleクライアント接続エラーの調査

MCP 対応

AWS MCPサーバーの利用が推奨されていますが必須ではありません。AWS CLIでも操作できます。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aws/agent-toolkit-for-aws --skill rds-oracle

インストール後、Claude Code で/rds-oracleを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
client-tools.md
cman-proxy.md
compute-runtime.md
connection-auth.md
dotnet.md
encryption.md
java.md
networking.md
nodejs.md
python.md
ssm-tunneling.md
troubleshooting.md
scripts/
check_rds_status.sh
check_security_groups.sh
check_ssl_status.sql
test_connectivity.sh
test_oracle_connection.py

詳細

Amazon RDS for Oracle — 接続

安全に関するガイダンス

このスキルでは、ユーザーから依頼があった場合に、RDS for Oracle リソースの作成と変更を扱います。エージェントは、実行前に必ずユーザーに操作の確認を求める必要があります。明示的なユーザー確認(例:「はい」「続行」「確認済み」「実行してください」)なしに、作成または変更操作を実行してはなりません。ユーザーが確認していない場合は、予定している操作を提示して承認を求めてください。

ユーザー確認後に実行する操作
  • インスタンスの作成:create-db-instance(DB サブネットグループが必要です。RDS Oracle は VPC 専用であり、デフォルトではパブリックアクセスできません)
  • カスタムパラメータグループの作成:create-db-parameter-group(ファミリーは oracle-se2-19、oracle-ee-19 など)
  • オプショングループの作成:create-option-group(Oracle Native Network Encryption、TLS/TCPS、S3 統合、APEX、Spatial 用)
  • バックアップ保持期間の変更:modify-db-instance --backup-retention-period
  • 削除保護の有効化/無効化:modify-db-instance --deletion-protection
  • CloudWatch ログのエクスポート設定の変更:modify-db-instance --cloudwatch-logs-export-configuration
  • パラメータグループまたはオプショングループの関連付け/解除:modify-db-instance --db-parameter-group-name / --option-group-name
  • リソースへのタグ付け:add-tags-to-resource、remove-tags-from-resource
リソースへのタグ付け(リソース作成時は必ず適用)

RDS for Oracle リソース(create-db-instance、create-db-parameter-group、create-option-group、create-db-instance-read-replica)を作成する際は、RDS のレコードリスト形式の --tags 構文を使い、必ず次のタグを含めてください。

--tags Key=created_by,Value=rds-oracle-skill Key=generation_model,Value={your-model-id}

例:--tags Key=created_by,Value=rds-oracle-skill Key=generation_model,Value=claude-sonnet-4-20250514

ユーザーがタグ付けに言及していない場合も、このスキルで作成したリソースを識別できるよう、これらのタグを含めてください。ユーザーが追加のタグを指定した場合は、置き換えずに指定されたタグへ追加してください。既存のリソースに add-tags-to-resource でタグ付けする場合も同様です。

ダウンタイムの警告を行ってから実行する操作(ユーザーに警告し、確認後に実行)
  • インスタンスクラスの変更:modify-db-instance --db-instance-class — 次のように警告してください:「Multi-AZ 構成ではフェイルオーバーが発生し、シングル AZ インスタンスでは短時間利用できなくなります。」
  • マイナーエンジンバージョンのアップグレード:同じメジャーバージョン内での modify-db-instance --engine-version(例:19.0.0.0.ru-2024-01 → 19.0.0.0.ru-2024-04)— 次のように警告してください:「再起動が発生し、短時間停止する可能性があります。」
  • ストレージタイプまたは IOPS の変更:modify-db-instance --storage-type / --iops — 次のように警告してください:「変更の適用中、I/O 性能が長時間低下する可能性があります。」
  • 即時適用:任意の modify-db-instance --apply-immediately — 次のように警告してください:「メンテナンスウィンドウ外で適用されるため、今すぐダウンタイムが発生する可能性があります。」
実行しない操作(拒否し、理由を説明して、代わりに評価を提案)
  • インスタンスの削除:delete-db-instance — データが不可逆的に失われます
  • 自動バックアップの削除:delete-db-instance --delete-automated-backups — ポイントインタイムリカバリの履歴が失われます
  • 強制フェイルオーバー:reboot-db-instance --force-failover — 本番環境に影響します
  • メジャーバージョンのアップグレード:メジャーバージョンをまたぐ modify-db-instance --engine-version(例:19c → 21c)— 事前チェック、オプショングループの移行、ロールバック計画が必要です。変更管理プロセスを通じて実施してください
  • 再起動:reboot-db-instance — 本番環境に影響します
  • リードレプリカの昇格:promote-read-replica — レプリケーションが中断され、元に戻せることはほとんどありません
  • パブリックアクセスの有効化:modify-db-instance --publicly-accessible true — セキュリティが低下します。代わりに SSM ポートフォワーディング、VPN、または Direct Connect を使用してください(概要のセキュリティ方針に従ってください)

拒否する場合は、理由を説明し、該当する評価ワークフローを提案してください。

「[操作]は[理由]のため実行できません。判断に役立つ評価を実施できます。実際の変更は、チームの変更管理プロセスまたは AWS Console を通じて行ってください。」

概要

Amazon RDS for Oracle は、マネージド型の Oracle Database サービスです。このスキルでは、接続のライフサイクルを扱います。プライベートサブネットのネットワーク設定(ポート 1521 のセキュリティグループ、VPC 間のピアリングまたは Transit Gateway、Route 53 のプライベートゾーンエンドポイント)、TLS/TCPS と Native Network Encryption(NNE)、AWS Secrets Manager を使ったユーザー名/パスワード認証、AWS Managed Microsoft AD を使った Kerberos、言語ごとのコネクションプーリング(python-oracledb、JDBC/HikariCP、node-oracledb、ODP.NET Core)、プラットフォームのパターン(EC2、ECS Fargate、EKS、Lambda、SSM ポートフォワーディング)、高可用性と多重化のための EC2 上の Oracle Connection Manager(CMAN)、およびドライバー固有のトラブルシューティングです。

主な制約:RDS for Oracle は RDS Proxy をサポートしていません。SYS/SYSTEM によるログインは許可されておらず、デフォルトではパブリックアクセスもできません。外部からアクセスする場合は、SSM ポートフォワーディング、VPN、または Direct Connect を使用します。

次の 8 つのサブスキルのうち、該当するものに進んでください:networking、connection-auth、compute-runtime、encryption、cman-proxy、client-tools、ssm-tunneling、troubleshooting。該当するリファレンスだけを読み込んでください。

セキュリティに関する考慮事項

  • 保存データの暗号化: インスタンスの作成時に --storage-encrypted を有効にします(必要に応じて --kms-key-id <key-arn> も指定します)。RDS for Oracle の保存データの暗号化は、作成時にのみ設定できます。後から追加するには、インスタンスを再作成する必要があります。
  • 転送中の暗号化: オプショングループを使用して Native Network Encryption(NNE)または TLS/TCPS を有効にします。機密性の高いワークロードでは、ポート 1521 での平文通信に依存しないでください。
  • ネットワークへの公開: インスタンスは PubliclyAccessible: No に設定し、プライベートサブネットに配置してください。SSM ポートフォワーディング、VPN、または Direct Connect 経由で接続し、パブリックアクセスは決して有効にしないでください。
  • 認証情報: マスターおよびアプリケーションの認証情報は AWS Secrets Manager に保存し、自動ローテーションを有効にしてください。認証情報をコード、接続文字列、ログにハードコードしないでください。
  • KMS キーポリシー: 保存データの暗号化にカスタマーマネージド KMS キーを使用する場合は、キーポリシーの対象を RDS サービスと必要なロールに限定してください。そのキーに対してのみ、アプリケーションロールに kms:Decrypt を許可します。
  • 監査ログ: Oracle の監査ログとアラートログを CloudWatch Logs にエクスポートし、RDS API の監査用に CloudTrail を有効にしてください(「ログ記録とモニタリング」を参照)。

一般的なタスク

依存関係の確認

接続コードを生成したり AWS コマンドを実行したりする前に、タスクに必要なツールを確認してください。

AWS MCP サーバーを使うと AWS ツールを効率的に実行できますが、必須ではありません。このスキルに含まれるすべての操作は、各所に記載されている AWS CLI の例を使って実行することもできます。

  • AWS CLI v2 と、管理された仕組み(IAM ロール、インスタンスプロファイル、SSO 認証情報の発行など)による認証情報。キーを貼り付けてはいけません
  • 言語ドライバー:oracledb(Python)、ojdbc11.jar(Java 11 以降)、oracledb(Node ≥ 6)、Oracle.ManagedDataAccess.Core(.NET)
  • SSM ポートフォワーディング:AWS CLI + Session Manager plugin
  • Kerberos:AWS Managed Microsoft AD、krb5.conf、okinit ツール
  • CMAN:Oracle Enterprise Edition の BYOL ライセンス + Oracle Client のフルインストール(Instant Client では不十分です)

制約:

  • エージェントは、コードを生成したり AWS コマンドを実行したりする前に、必ず依存関係を確認しなければなりません。
  • エージェントは、接続文字列にパスワードを貼り付けるようユーザーに指示してはなりません。認証情報は必ず AWS Secrets Manager、IAM/ドメイン管理の ID、または Kerberos チケットから取得しなければなりません。
  • エージェントは、不足している依存関係をユーザーに伝え、処理を中止するというユーザーの判断を必ず尊重しなければなりません。
  • エージェントは、各手順を実行する前に、その手順で何をするのか、なぜ行うのか、どのツールを呼び出すのかを説明しなければなりません。
分類とルーティング

ユーザーの質問を適切なサブスキルのリファレンスに対応付け、そのファイルだけを読み込みます。

ユーザーの発言読み込むファイル
SG / VPC ピアリング / TGW / Route 53 / ポート 1521 / CIDRnetworking.md
接続 / 接続文字列 / python-oracledb / JDBC / node-oracledb / ODP.NET / Secrets Manager / 認証 / Kerberosconnection-auth.md + 言語別リファレンス(python.md、java.md、nodejs.md、dotnet.md)
Lambda / EC2 / ECS Fargate / EKS / コンテナ / サーバーレス / IRSAcompute-runtime.md
SQL Developer / Toad / SQLcl / DBeaver / sqlplus / GUIclient-tools.md
SSL / TLS / TCPS / NNE / 暗号化 / FIPS / 暗号スイートencryption.md
CMAN / Connection Manager / プロキシ / 多重化 / RDS Proxycman-proxy.md
SSM / ポートフォワーディング / トンネル / localhost / ノート PCssm-tunneling.md
ORA-12170 / ORA-12541 / ORA-01017 / ORA-12514 / ORA-28040 / DPI-1047 / DPY-6005 / タイムアウト / 接続拒否troubleshooting.md

制約:

  • コンテキストを絞るため、エージェントはユーザーの質問に該当するリファレンスファイルだけを必ず読み込む必要があります。
  • Oracle-on-RDS には特有の制約(RDS Proxy は使用不可、SYS ログイン不可、thin モードを優先、Kerberos の IDENTIFIED EXTERNALLY パターン)があり、LLM がこれらを見落とすことが多いため、エージェントは学習データだけに基づいて接続コードやネットワーク設定を生成してはなりません。
  • エージェントは ORA エラーコードを説明する際、推測した説明ではなく、トラブルシューティングのリファレンスに記載された正確な意味を必ず引用する必要があります。
  • 質問が複数のサブスキルにまたがる場合(例:「別の VPC 内の ECS Fargate と Secrets Manager」)、エージェントは networking + compute-runtime + connection-auth を読み込むことが推奨されます。
ワークフローの実行

ルーティング後、リファレンスファイルに基づいた、具体的で実行可能な回答をユーザーに提示します。

パラメーターの取得:

  • 必須パラメーター(リージョン、インスタンス ID、エンドポイント、サービス/SID、送信元 VPC CIDR、SG ID、Secrets Manager ARN、クライアントの言語/ランタイム)は、すべて最初の 1 回のメッセージでまとめて確認する必要があります。
  • パラメーターの形式を指定する必要があります:リージョンは us-east-1 形式、インスタンス ID は ^[a-zA-Z][a-zA-Z0-9-]{0,62}$、エンドポイントは <instance>.<hash>.<region>.rds.amazonaws.com、CIDR は a.b.c.d/n、ARN は arn:aws:<service>:<region>:<account>:... です。
  • エージェントは、パラメーターを直接入力、JSON/YAML ファイルのパス、または URL で受け取る必要があります。

ツールの使用:

制約:

  • パブリック RDS は攻撃対象領域を広げるため、エージェントは RDS Oracle でパブリックアクセスを有効にするよう推奨してはなりません。代わりに SSM ポートフォワーディング、VPN、または Direct Connect を使用します。
  • RDS Proxy は Oracle をサポートしていないため、エージェントは RDS Oracle で RDS Proxy を推奨してはなりません。代わりに EC2 上の Oracle CMAN を使用します。
  • 位置指定のファイルシステム引数を使用するとツールの契約に違反するため、エージェントは call_aws で位置指定のファイルシステム引数を使用してはなりません。インラインの JSON 文字列を使用します。
  • thin モードのドライバー(python-oracledb の thin モード、node-oracledb 6 以降、ODP.NET Core、ojdbc11)を優先します。thin モードでは Oracle Client のインストールが不要になり、デプロイの複雑さを軽減できます。
  • エージェントは、ワークスペースを確認できるよう、長文の出力を artifacts/<app-name>/ に必ず保存する必要があります。
ルーブリックで重要な、常に提示すべき事実

これらのRDS for Oracle固有の事実により、このスキルは一般的なOracle on EC2の知識と区別されます。最も重要なのは、RDS ProxyはRDS Oracleをサポートしていないことです。代わりにCMANを使用します。このスキルがないエージェントは、ここを間違えます。

「レイヤー、プーリング、コールドスタートを含む、Python LambdaからRDS Oracleへの接続の完全なセットアップ」については、次の7つの事実をすべて必ずユーザーに伝えてください。

  1. **LambdaのVPC設定:**複数のAZにまたがるプライベートサブネットと、RDSへの1521番ポートのアウトバウンド通信を許可するセキュリティグループ。
  2. **デフォルトではpython-oracledbのThinモードを使用し、Lambdaレイヤーは不要です。**ThinモードではOracle Clientライブラリは不要です。Instant Clientもレイヤーも必要ありません。レイヤーを推奨するのは、ユーザーがThinモードではなくThickモードを明確に必要としている場合(LDAP認証や一部のRAC固有機能など)に限ります。
  3. **ハンドラーの外側にモジュールレベルで接続プールを作成し、同じコンテナ内のウォームな呼び出し間でプールを維持します。**ハンドラー内でプールを作成してはいけません。
  4. **レイテンシーが重要な場合は、プロビジョンドコンカレンシーを使用してコールドスタートを最適化します。**Lambda固有の解決策として、「プロビジョンドコンカレンシー」を明示してください。
  5. **NATゲートウェイのコストを回避し、シークレットの取得をVPC内に保つため、Secrets ManagerのVPCエンドポイントを使用します。**これはアーキテクチャ上の重要な改善であり、任意ではありません。
  6. **初回呼び出し時のORA-12170を明示的に処理します。**ENIのアタッチ中に、コールドスタート後の初回接続がタイムアウトすることがあります。このエラーを捕捉して再試行し、リクエストを失敗させないでください。
  7. **レイヤーが必要なのはThickモードを使用する場合に限られます。**LDAP認証や一部のレガシー機能/RAC機能が該当します。oracle_clientレイヤーを安易に追加するよう推奨してはいけません。

「Secrets Manager CSIドライバー、IRSA、SecretProviderClass、デプロイマニフェストを使用して、EKSポッドからRDS Oracleに接続する方法」については、次の7つの事実をすべて必ずユーザーに伝えてください。

  1. **EKSにSecrets Store CSI DriverとAWSプロバイダーをインストールします。**CSIドライバーにはhelm install、AWSプロバイダーにはkubectl applyを使用します。両方が必要です(ドライバーだけではAWSとの通信方法がわかりません)。
  2. **特定のシークレットARNに対してsecretsmanager:GetSecretValueを許可するIAMポリシーを作成します(*ではなく)。**対象を限定してください。
  3. **eksctlを使用してIRSAを設定します。**クラスターのOIDCプロバイダーに対してeksctl utils associate-iam-oidc-providerを実行し、続いてeksctl create iamserviceaccountを実行して、IAMポリシーをKubernetes ServiceAccountに関連付けます。「eksctl」「OIDC」「iamserviceaccount」を明示してください。評価基準がこれらの語句を検索します。
  4. provider: awsとjmesPath式を含むSecretProviderClass YAMLを記述し、JSON形式のシークレットから個別のシークレットフィールド(ユーザー名、パスワード)を抽出します。
  5. デプロイマニフェストでCSIボリュームをマウントします(volumesでcsi: { driver: secrets-store.csi.k8s.io }を指定)。また、IRSAを介してIAMロールに関連付けられた正しいserviceAccountNameを参照します。
  6. **ポッドからRDSへの1521番ポートのセキュリティグループルールを設定します。**EKSワーカーノードのSG(または、ポッド用セキュリティグループを使用している場合はポッドのSG)からのインバウンド通信を、RDS SGで許可する必要があります。
  7. **接続プールのサイズ:接続数の合計 = レプリカ数 × ポッドごとのプール最大サイズ。**N個のレプリカに合わせてRDSインスタンスを調整する方法がわかるよう、この計算式を明示してください。

「VPCをまたいでEC2からRDS Oracleに接続するときのORA-12170タイムアウト」については、次の6つの事実をすべて必ずユーザーに伝えてください。

  1. 2 つの VPC 間に VPC ピアリングまたは Transit Gateway が存在し、両方向のルートが設定されていることを確認します(EC2 のサブネットルートテーブルが RDS の VPC CIDR 宛てにピアリング/TGW を指定し、RDS のサブネットルートテーブルが逆方向を指定していること)。
  2. EC2 のセキュリティグループの送信ルールで、RDS のセキュリティグループまたは CIDR 宛てにポート 1521 が許可されていることを確認します。
  3. RDS のセキュリティグループの受信ルールで、EC2 のセキュリティグループ ID(推奨)またはその CIDR からのポート 1521 が許可されていることを確認します。
  4. NACL でポート 1521 の双方向通信が許可されていることを確認します — NACL はステートレスなので、戻り経路の NACL ルールを両方のサブネットに設定する必要があります。セキュリティグループの設定が正しく見える場合に、NACL が気付かれにくい障害原因となることはよくあります。
  5. EC2 の DNS で RDS エンドポイントが解決されることを確認します — EC2 から nslookup <rds-endpoint> を実行します。ピアリングに対してピアリング先 VPC の DNS 解決オプションが有効になっていない場合、RDS エンドポイントは解決されません。
  6. 最も手早い接続テスト:EC2 から nc -zv <rds-endpoint> 1521 を実行します。 DNS が機能していても nc がタイムアウトする場合、問題はセキュリティグループ/NACL/ルーティングにあります。切り分けの手順として、必ず nc -zv を提案してください。

「DPI-1047: Cannot locate a 64-bit Oracle Client library」の場合、以下の 4 つの事実をすべて必ずユーザーに伝えてください。

  1. DPI-1047 は、python-oracledb が Thick モードで実行されており、Oracle Instant Client を見つけられないことを意味します。 根本原因の説明として、これを明示してください。
  2. 主な解決策:コードから oracledb.init_oracle_client() を削除し、Thin モードに切り替えます。 Thin モードは Instant Client に依存せず、ほぼすべての RDS Oracle のユースケース(TLS、パスワード認証、Secrets Manager、コネクションプーリングを含む)で機能します。
  3. 本当に Thick モードが必要な場合に限り(LDAP 認証、一部のレガシー機能)、Oracle Instant Client をインストールし、LD_LIBRARY_PATH(Linux)または PATH(Windows)が Instant Client のディレクトリを指すようにします。OS ごとに環境変数名を明示してください。
  4. Thick モードが本当に必要か確認せずに、安易に Instant Client のインストールを勧めてはいけません。 まず推奨する解決策は「init_oracle_client を削除すれば完了」です。先に Instant Client をインストールしてパスの問題をデバッグするのは、ルーブリックで誤診と判定されるよくあるケースです。

「2 つの AZ にまたがる HA 構成で、RDS Oracle のプロキシとして EC2 上に Oracle Connection Manager(CMAN)を配置する」場合、以下の 8 つの事実をすべて必ずユーザーに伝えてください。

  1. ライセンスとインストールの前提条件を最初に明示してください — CMAN には**フル Oracle Client のインストール(Instant Client ではありません)**と、BYOL による Oracle Enterprise Editionが必要です。これがユーザーが最もよく間違える点です。最後ではなく、最初に伝えてください。
  2. RDS Proxy は RDS Oracle をサポートしていません — これが、RDS Oracle のコネクションプーリング/プロキシに CMAN を使う構成パターンである理由だと明示してください。エージェントは Oracle に RDS Proxy を提案して誤判定されることがよくあります。
  3. HA のため、別々の AZ にある 2 台の EC2 インスタンスに CMAN をインストールします。 EC2 を 1 台だけにすることは勧めないでください。「HA」の要件を満たせなくなります。
  4. cman.ora を設定し、RULE_LIST(CMAN 経由でどのクライアントがどのターゲットに接続できるかを定めるアクセス制御ルール)と PARAMETER_LIST(リスナーのエンドポイント、ログ記録、セッション数の上限)を含めます。両方のブロック名を cman.ora の正式な名前で示してください。
  5. 障害時の自動再起動のため、CMAN を systemd で実行します — 起動時に cmctl startup を開始するサービスユニットを記述してください。
  6. HA のため、AZ をまたぐ Network Load Balancer(NLB)の背後に配置します — クライアントは NLB の DNS に接続し、NLB が 2 台の CMAN EC2 インスタンスに振り分けます。Oracle TNS は TCP なので、ALB ではなく NLB を明示してください。
  7. 3 層のセキュリティグループルール: クライアント → CMAN EC2 SG(ポート 1521)→ RDS SG(ポート 1521)。各 SG では、直前の層からの受信のみを許可します。これは、許可範囲を広げすぎて設定しがちな点で、ユーザーが間違えやすいアーキテクチャパターンです。
  8. クライアントの tnsnames.ora は NLB の DNS 名を指すようにします — クライアントは NLB 経由で CMAN に接続し、CMAN が RDS に転送します。クライアントから個々の EC2 の DNS に接続させないでください。

トラブルシューティング

現実的なシナリオとして、主な3種類の障害(アクセス拒否、タイムアウト、リソースの可用性)を取り上げます。

エラー/症状考えられる原因対処方法
ORA-12170 タイムアウトSG が 1521 をブロックしている、VPC 間のルートがない、エンドポイントが誤っているtest_connectivity.sh を実行します。TCP 接続に失敗した場合は、SG のインバウンドルールとルートテーブルを確認します。VPC 間の接続には、ピアリング/TGW と CIDR ベースの SG ルールが必要です。
ORA-12541 リスナーがありませんポートが誤っている、DB が利用できない、エンドポイントが誤っているaws rds describe-db-instances --query 'DBInstances[0].Endpoint' を実行し、Port を確認します。
ORA-01017 認証情報が無効ですSecrets Manager のパスワードがローテーションされた、Kerberos チケットの期限切れSecrets Manager から再取得し、okinit を再実行します。SELECT username FROM dba_users を確認します。
ORA-12514 サービスが不明ですSERVICE_NAME または SID が誤っているSELECT value FROM v$parameter WHERE name = 'service_names' を実行し、完全に一致することを確認します。
ORA-28040 一致する認証プロトコルがありませんクライアントが古すぎるクライアントを 21c 以降に更新します。シンモードではこの問題を回避できます。
DPI-1047(Python)シックモードが有効ですが、Oracle Instant Client が見つかりませんoracledb.init_oracle_client() を削除してシンモードに切り替えます。シックモードが必要な場合は、Instant Client をインストールし、LD_LIBRARY_PATH(Linux)または PATH(Windows)を設定します。
DPY-6005(Python)ネットワーク接続の失敗:接続拒否、タイムアウト、または TLS ハンドシェイクエラーエンドポイント、ポート、セキュリティグループのルール、DNS 解決、TLS 設定を確認します。診断手順は ORA-12170 と同じです。
Secrets Manager で IAM AccessDeniedタスクロールに secretsmanager:GetSecretValue がありませんタスク実行ロールにアタッチします(ECS タスク定義のシークレット注入)。
RDS API のスロットリングリクエストレートの上限を超えていますジッターを加えた指数バックオフを実装し、Service Quotas を確認します。

ロギングとモニタリング

RDS Oracle インスタンスの作成時または運用時に、次の機能を有効にすることを推奨します。

  • CloudTrail — RDS コントロールプレーン API の呼び出し(作成/変更/削除)を監査します。
  • Enhanced Monitoring — OS レベルのメトリクス(--monitoring-interval、--monitoring-role-arn)。
  • Performance Insights — クエリレベルのパフォーマンス分析(--enable-performance-insights)。
  • CloudWatch Logs へのログエクスポート — --cloudwatch-logs-export-configuration を使って、Oracle の audit、alert、listener、trace ログをエクスポートします。
  • CloudWatch アラーム — 少なくとも DatabaseConnections、FreeStorageSpace、CPUUtilization に対してアラームを設定します。
  • ログの暗号化 — AWS KMS キーを使用して CloudWatch ロググループを暗号化します。エクスポートされた Oracle の audit、alert、listener ログには、接続メタデータや認証試行が含まれる場合があるため、保存時に保護してください。

追加リソース

aws-database-selection からの引き継ぎ

このスキルは直接呼び出すことも、親スキルの aws-database-selection で要件の聞き取りを実施し、requirements.json アーティファクトを作成した後に、そのスキルから引き継いで開始することもできます。最近の会話に aws_dbs_requirements/*/requirements.json に一致するバッククォートで囲まれたパスがある場合は、aws-database-selection/references/handoff-contract.md のエントリープロトコルに従ってください。

  1. file_read を使用してアーティファクトを読み取ります。
  2. aws-database-selection/references/workload-primary-artifact.schema.json に照らして検証します。形式が不正、または読み取れない場合はユーザーに伝え、アーティファクトなしで続行します。
  3. アーティファクトにある重要な情報(主要なワークロード形状、厳しい制約、移行の状況)を引用しながら、太字の文を1〜2文使って関連事項を伝えます。アーティファクト全体をそのまま繰り返してはいけません。
  4. スコープを確認します。このスキルの対象は、EC2/ECS/EKS/Lambda における Amazon RDS for Oracle の接続、認証、Kerberos、CMAN、クライアントのセットアップです。アーティファクトの workload_primaries.dominant_shapes または migration_context がこのスコープに合致しない場合は、ハンドオフ契約に従って控えめに差し戻しを提案します。AWS 上で Exadata クラスの Oracle を使用する場合は odb-aws、PostgreSQL へのリファクタリングの場合は amazon-aurora、Oracle が移行元エンジンではない場合は aws-database-selection に戻ることを提案し、そのうえで戻るか、このまま進めるかをユーザーに尋ねます。アーティファクトを適用範囲外で黙って使用してはいけません。
  5. このスキル本来のワークフローを進め、要件に基づいて推奨する場合は、根拠としてアーティファクトのパスを示します。

このスキルのユーザー向け出力はすべて、ハンドオフ契約にある Markdown プリミティブのみを使う形式に従います。太字のラベル、パスと列挙値を示すバッククォート、選択肢を示す箇条書きを使い、ASCII アートや罫線文字は使用しません。

コメント