aws-setup について
OpenSearch の運用担当者向けに、AWS でのドメインや Serverless コレクションのプロビジョニングと検索設定のデプロイを支援するスキルです。ターゲット選択のルールと手順を示し、対応する場合はエージェント型検索も設定します。
主な機能
- 01ドメインとコレクションの構築
- 02検索設定のデプロイ
- 03検索方式に応じたターゲット選択
- 04エージェント型検索の設定
- 05検索 UI の起動
活用シーン
- 01OpenSearch 検索設定のデプロイ
- 02ドメインと Serverless の選択
- 03対応ターゲットでのエージェント型検索の設定
MCP 対応
AWS API 呼び出しに awslabs.aws-api-mcp-server、ドキュメント検索に aws-knowledge-mcp-server、OpenSearch API アクセスに opensearch-mcp-server を使用します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ opensearch-project/ opensearch-agent-skills --skill aws-setupインストール後、Claude Code で/aws-setupを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
reference.mdaos/domain-01-provision.mddomain-02-deploy-search.mddomain-03-agentic-setup.mdaoss/serverless-02-deploy-search.mdserverless-04-agentic-setup.mdaoss/aoss-nextgen-provisioning/ADVANCED.mdDEPROVISION.mdERRORS.md詳細
OpenSearch AWS デプロイ
OpenSearch の AWS デプロイを専門としています。ユーザーによる Amazon OpenSearch Service ドメインおよび Serverless コレクションのプロビジョニングと設定を支援し、その後、検索設定をデプロイします。
前提条件
- AWS 認証情報が設定されていること(IAM ロール、アクセスキー、または AWS プロファイル)
uvがインストールされていること(ヘルパースクリプトの実行用)- デプロイする検索設定があること(通常は
opensearch-launchpadスキルで作成)
必須の MCP サーバー
{
"mcpServers": {
"awslabs.aws-api-mcp-server": {
"command": "uvx",
"args": ["awslabs.aws-api-mcp-server@latest"],
"env": { "FASTMCP_LOG_LEVEL": "ERROR", "AWS_SDK_UA_APP_ID": "opensearch-agent-skills" }
},
"aws-knowledge-mcp-server": {
"command": "uvx",
"args": ["fastmcp", "run", "https://knowledge-mcp.global.api.aws"],
"env": { "FASTMCP_LOG_LEVEL": "ERROR" }
},
"opensearch-mcp-server": {
"command": "uvx",
"args": ["opensearch-mcp-server-py@latest"],
"env": { "FASTMCP_LOG_LEVEL": "ERROR" }
}
}
}
awslabs.aws-api-mcp-server— ドメイン、コレクション、IAM ロールをプロビジョニングするための AWS API 呼び出し。aws-knowledge-mcp-server— AWS ドキュメントの検索。opensearch-mcp-server— OpenSearch API への直接アクセス。AOS/AOSS 用の SigV4 認証を処理します。
AWS 用 opensearch-mcp-server の設定
Amazon OpenSearch Service(AOS)の場合:
{
"opensearch-mcp-server": {
"command": "uvx",
"args": ["opensearch-mcp-server-py@latest"],
"env": {
"OPENSEARCH_URL": "<endpoint_url>",
"AWS_REGION": "<region>",
"AWS_PROFILE": "<profile>",
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
Amazon OpenSearch Serverless(AOSS)の場合:
{
"opensearch-mcp-server": {
"command": "uvx",
"args": ["opensearch-mcp-server-py@latest"],
"env": {
"OPENSEARCH_URL": "<endpoint_url>",
"AWS_REGION": "<region>",
"AWS_PROFILE": "<profile>",
"AWS_OPENSEARCH_SERVERLESS": "true",
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
重要なルール(必ず従ってください)
- NextGen ではない Serverless ではエージェント型検索を利用できません — エージェント型検索(フローエージェントと会話型エージェントの両方)は、NextGen ではない Serverless(v1/クラシック)にはデプロイできません。ユーザーから NextGen ではない Serverless でのエージェント型検索を求められた場合は、必ず断り、フローエージェントには Serverless NextGen、会話型エージェントにはマネージドドメインを推奨してください。
- クラシック Serverless はゼロまでスケールしません — Amazon OpenSearch Serverless(NextGen ではない/クラシック)は、常に最小 OCU 容量を維持します。クラシック Serverless がゼロまでスケールすると説明してはいけません。注:Serverless NextGen はゼロまでのスケールに対応しています。
- 最初に認証情報を検証してください — プロビジョニングまたはデプロイ操作の前に、必ず最初の手順として
aws sts get-caller-identityを実行してください。 - エージェント型検索のワークフロー全体を、最初から最後まで連結して実行してください — エージェント型検索をデプロイする場合、完全なワークフローに次のすべての手順を順番どおりに含める必要があります:(1)認証情報の検証、(2)インフラストラクチャのプロビジョニング(暗号化ポリシー → ネットワークポリシー →
--generation NEXTGENを指定したコレクショングループ → コレクション)、(3)4 つすべての ResourceType(collection、index、model、agent)へのアクセスを許可するデータアクセスポリシー、(4)model_id を返す Bedrock コネクターによるモデル登録、(5)その model_id を使用したエージェントの作成、(6)その agent_id を使用した agentic_query_translator による検索パイプラインの作成、(7)テストクエリ、(8)逆順でのプロビジョニング解除。各手順の出力を次の手順に引き継ぐ必要があります。
主なルール
- Serverless NextGen がサポートするのは フローエージェント のみです。会話型エージェントには マネージドドメイン が必要です。
- Serverless の機能がすべて マネージドドメイン と同等だと想定せず、AWS ドキュメントで確認してください。
- 必ず作業を開始する前に AWS 認証情報を検証してください:
aws sts get-caller-identity - 使用状況の帰属(必須): シェルで実行するすべての AWS CLI コマンドの先頭に
AWS_SDK_UA_APP_ID=opensearch-agent-skillsを付けてください(例:AWS_SDK_UA_APP_ID=opensearch-agent-skills aws <service> <command> ...)。サービス(opensearch、opensearchserverless、iam、sts、s3 など)にかかわらず適用します。コマンドごとに指定し、グローバルにexportしないでください。これにより、クラウドへのリクエストをこのスキルに帰属させるため、呼び出しの User-Agent ヘッダーにapp/opensearch-agent-skillsが付与されます。awslabs.aws-api-mcp-serverを介した AWS 呼び出しは、上記の MCPenvブロックにあるAWS_SDK_UA_APP_IDエントリーによってすでに帰属設定されています。 - デプロイ状態は、ワークスペースのルートにある
.opensearch-deploy-state.jsonで追跡してください。 - 手順が失敗した場合は、エラーを提示して指示を待ってください。
デプロイ先の選択
会話型エージェント検索以外のすべての戦略では、デフォルトのデプロイ先は Serverless NextGen です。ユーザーが 会話型エージェント検索(RAG とメモリを使用するステートフルな検索)を必要としている場合、またはマネージドドメインを明示的にリクエストしている場合は、マネージドドメインを使用してください。Serverless V1 は、ユーザーが明示的にリクエストした場合、または開発/テスト用に StandbyReplicas=DISABLED が必要な場合にのみ使用してください。
| 戦略 | ターゲット | コレクションタイプ | 理由 |
|---|---|---|---|
bm25 | Serverless NextGen | SEARCH | シンプルで、ML モデルは不要です |
neural_sparse | Serverless NextGen | SEARCH | セマンティック拡張が自動で組み込まれています |
dense_vector | Serverless NextGen | VECTORSEARCH | GPU アクセラレーション対応の kNN で、Bedrock コネクターをサポートします |
hybrid | Serverless NextGen | VECTORSEARCH | BM25 とベクトルを GPU アクセラレーションで組み合わせます |
agentic(フロー、ベクトルなし) | Serverless NextGen | SEARCH | BM25 のみでクエリを計画し、埋め込みモデルは不要です |
agentic(フロー、ベクトルあり) | Serverless NextGen | VECTORSEARCH | エージェントが knn_vector フィールドを使用してニューラル/ハイブリッドクエリを生成します |
agentic(会話型) | Domain | — | RAG とメモリを使用するステートフルな、複数ターンの会話です |
| 任意(NextGen 以外をリクエスト) | Serverless | — | 標準 SDK を使用し、開発/テスト用に StandbyReplicas=DISABLED を設定します |
ワークフロー
ローカルでの反復後に launchpad から呼び出された場合は、再度質問せず、そこで決定済みの内容(検索戦略、データ型)を使用してください。
上の表にリンクされているガイドに、記載順に従ってください。
Step 1 — インフラストラクチャのプロビジョニング
| ターゲット | ガイド |
|---|---|
| Serverless コレクション | aoss/aoss-nextgen-provisioning/SKILL.md |
| マネージドドメイン | aos/domain-01-provision.md |
Step 2 — 検索設定のデプロイ
| ターゲット | ガイド |
|---|---|
| Serverless コレクション | aoss/serverless-02-deploy-search.md |
| マネージドドメイン | aos/domain-02-deploy-search.md |
Step 3 — エージェント検索の設定(該当する場合)
| ターゲット | ガイド |
|---|---|
| 会話型エージェント検索 | aos/domain-03-agentic-setup.md |
| フローエージェント検索 | aoss/serverless-04-agentic-setup.md |
Step 4 — 検索 UI の起動
uv run python scripts/opensearch_ops.py launch-ui \
--index <index-name> \
--endpoint <endpoint> \
--aws-region <region> \
--aws-service <es|aoss>
Step 5 — アクセス情報の提供
ユーザーに以下を提供してください:エンドポイント URL、ARN、Dashboards URL、認証情報、サンプルクエリ、Search Builder UI URL。
参考情報
料金の見積もり、セキュリティのベストプラクティス、HA 設定、モニタリング、トラブルシューティングについては、reference.md を参照してください。