Amazon Bedrock を使用して AWS インフラストラクチャオペレーションを自動化する - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Bedrock を使用して AWS インフラストラクチャオペレーションを自動化する

Ishwar Chauthaiwale と Anand Bukkapatnam Tirumala、Amazon Web Services

概要

クラウドネイティブソリューションでは、一般的なインフラストラクチャオペレーションを自動化することは、効率的で安全で費用対効果の高い環境を維持する上で重要な役割を果たします。オペレーションの手動処理には時間がかかり、人為的ミスが発生しやすくなります。さらに、さまざまなレベルの AWS 専門知識を持つチームメンバーは、セキュリティプロトコルへの準拠を確保しながら、これらのタスクを実行する必要があります。このパターンは、Amazon Bedrock を使用して自然言語処理 (NLP) を通じて一般的な AWS インフラストラクチャオペレーションを自動化する方法を示しています。

このパターンは、組織が複数の環境に生成 AI ベースのインフラストラクチャをデプロイするための再利用可能なモジュール式の安全なコードを開発するのに役立ちます。コードとしてのインフラストラクチャ (IaC) と自動化に重点を置くことで、バージョン管理、一貫したデプロイ、エラーの削減、プロビジョニングの高速化、コラボレーションの改善など、DevOps の主な利点を提供します。

このパターンは、以下 AWS のサービス を含むキーに関連するオペレーションをチームが管理できるようにする安全なアーキテクチャを実装します。

  • Amazon Simple Storage Service (Amazon S3) バケットのバージョニング管理

  • Amazon Relational Database Service (Amazon RDS) スナップショットの作成

  • Amazon Elastic Compute Cloud (Amazon EC2) インスタンス管理

このアーキテクチャは、安全な通信のために Amazon Virtual Private Cloud (Amazon VPC) エンドポイントとプライベートネットワークを採用し、 AWS Lambda プライベートサブネット内のタスクエグゼキュターとして機能します。Amazon S3 はデータ管理を提供し、包括的な AWS Identity and Access Management (IAM) ロールとアクセス許可を実装して、適切なアクセスコントロールを確保します。このソリューションにはチャット履歴機能はなく、チャットは保存されません。

前提条件と制限

製品バージョン

  • Amazon Titan Text Embeddings v2

  • Anthropic Claude 3.5 Sonnet または Claude 3 Haiku

  • Terraform AWS プロバイダーバージョン 4 以降

  • Terraform バージョン 1.5.7 以降

アーキテクチャ

次の図表は、このパターンのアプリケーションのワークフローとアーキテクチャコンポーネントを示しています。

Amazon Bedrock を使用して一般的な AWS インフラストラクチャオペレーションを自動化するワークフロー。

ソリューションアーキテクチャは、自然言語リクエストを処理し、対応する AWS オペレーションを実行するために連携する複数のレイヤーで構成されています。

  1. ユーザーは Amazon Bedrock チャットコンソールからオペレーションリクエストを行います。

  2. チャットボットはリクエスト処理に Amazon Bedrock ナレッジベースを使用します。自然言語処理用の Amazon Titan Text Embeddings v2 モデルを実装しています。

  3. ユーザープロンプトにアクションリクエストが含まれている場合、Amazon Bedrock アクショングループは実行ロジックに Anthropic Claude 3 Haiku または Claude 3.5 Sonnet モデル (選択に応じて) のいずれかを使用し、OpenAPI スキーマを介してオペレーションを定義します。

  4. アクショングループは、安全なサービス通信 AWS PrivateLink のために を使用して Amazon VPC エンドポイントに到達します。

  5. AWS Lambda 関数は、Amazon Bedrock サービスの Amazon VPC エンドポイントを介して到達します。

  6. Lambda 関数は、主要な実行エンジンです。リクエストに基づいて、Lambda 関数は API を呼び出して に対してアクションを実行します AWS のサービス。Lambda 関数は、オペレーションのルーティングと実行も処理します。

  7. Lambda 関数から API リクエスト AWS のサービス を取得すると、対応するオペレーションが実行されます。

  8. Lambda 関数は、Amazon Bedrock によって理解される出力ペイロードを計算します。

  9. このペイロードは、安全なサービス通信のために PrivateLink を使用して Amazon Bedrock に送信されます。Amazon Bedrock で使用される大規模言語モデル (LLM) は、このペイロードを理解し、人間が理解できる形式に変換します。

  10. その後、出力は Amazon Bedrock チャットコンソールにユーザーに表示されます。

このソリューションでは、次のプライマリオペレーションを有効にします。

  • Amazon S3 – バージョン管理のためにバケットのバージョニングを有効にします。

  • Amazon RDS – バックアップ用のデータベーススナップショットを作成します。

  • Amazon EC2 – インスタンスを一覧表示し、インスタンスの開始と停止を制御します。

ツール

AWS のサービス

  • Amazon Bedrock は、主要な AI スタートアップと Amazon からの高性能な基盤モデル (FMs) を統合 API を通じて使用できるようにするフルマネージドサービスです。

  • AWS Command Line Interface (AWS CLI) は、コマンドラインシェルのコマンド AWS のサービス を通じて を操作するのに役立つオープンソースツールです。

  • Amazon Elastic Compute Cloud (Amazon EC2) は、 AWS クラウドでスケーラブルなコンピューティング容量を提供します。必要な数の仮想サーバーを起動することができ、迅速にスケールアップまたはスケールダウンができます。

  • AWS Identity and Access Management (IAM) は、誰を認証し、誰に使用を許可するかを制御することで、 AWS リソースへのアクセスを安全に管理するのに役立ちます。

  • AWS Lambda は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。

  • Amazon OpenSearch Serverless は、Amazon OpenSearch Service のオンデマンドサーバーレス設定です。

  • AWS PrivateLink は、仮想プライベートクラウド (VPCs) から VPC 外のサービスへの一方向のプライベート接続を作成するのに役立ちます。

  • Amazon Relational Database Service (Amazon RDS) は、 でリレーショナルデータベースをセットアップ、運用、スケーリングするのに役立ちます AWS クラウド。

  • Amazon Simple Storage Service (Amazon S3) は、どのようなデータ量であっても、データを保存、保護、取得することを支援するクラウドベースのオブジェクトストレージサービスです。

  • AWS Systems Manager」は、 AWS クラウドで実行されるアプリケーションとインフラストラクチャの管理に役立ちます。これにより、アプリケーションとリソースの管理が簡素化され、運用上の問題を検出して解決する時間を短縮し、 AWS リソースを大規模に安全に管理できます。

  • Amazon Virtual Private Cloud (Amazon VPC) は、定義した仮想ネットワークに AWS リソースを起動するのに役立ちます。この仮想ネットワークは、ユーザー自身のデータセンターで運用されていた従来のネットワークと似ていますが、 AWSのスケーラブルなインフラストラクチャを使用できるという利点があります。

その他のツール

  • Git はオープンソースの分散バージョン管理システムです。

  • Terraform」は、HashiCorpのinfrastructure as code (IaC) ツールで、クラウドとオンプレミスのリソースの作成と管理を支援します。

コードリポジトリ

このパターンのコードは、GitHub aws-samples/infra-ops-orchestrator リポジトリで入手できます。

ベストプラクティス

エピック

タスク説明必要なスキル

リポジトリをクローン作成します。

ローカルマシンでリポジトリのクローンを作成するには、次のコマンドを実行します。

git clone "git@github.com:aws-samples/infra-ops-orchestrator.git" cd infra-ops-orchestrator
AWS DevOps、DevOps エンジニア

環境変数を編集します。

クローンされたリポジトリのルートディレクトリにある terraform.tfvars ファイルを編集します。で示されているプレースホルダーを確認し[XXXXX]、環境に応じて更新します。

AWS DevOps、DevOps エンジニア

インフラストラクチャを作成します。

インフラストラクチャを作成するには、次のコマンドを実行します。

terraform init
terraform plan

実行計画を注意深く確認してください。計画された変更が許容できる場合は、次のコマンドを実行します。

terraform apply --auto-approve
AWS DevOps、DevOps エンジニア
タスク説明必要なスキル

ソリューションにアクセスします。

デプロイが成功したら、以下の手順に従ってチャットベースのインターフェイスを使用します。

  1. Infrastructure Orchestrator Assistant にアクセスするには、Amazon Bedrock アクセス許可を持つ IAM ロール AWS Management Console を使用して にサインインし、https://console.aws.amazon.com/bedrock/ で Amazon Bedrock コンソールを開きます。左側のナビゲーションペインで [エージェント] を選択します。次に、「 エージェント」セクションの「インフラストラクチャオーケストレーターアシスタント」を選択します。

  2. 以下の提案については、ターゲットリソースが AWS 環境に存在することを確認し、次のオペレーション例を試してください。

    • 「RDS インスタンスのスナップショットを作成する [instance-name]」と尋ねて、Amazon RDS インスタンスのスナップショットバックアップを作成します。

    • Amazon S3 バケットでバージョニングを有効にするには、「バケットのバージョニングを有効にする [bucket-name]」と尋ねます。

    • 「すべての Amazon EC2インスタンスを一覧表示する」と尋ねて Amazon EC2 インスタンスを一覧表示します。

    • 「ECAmazon EC2 EC2 インスタンスを起動または停止します。 EC2

    注: 括弧内の値は、 AWS 環境の実際のリソース名または IDsに置き換えてください。

AWS DevOps、DevOps エンジニア
タスク説明必要なスキル

作成したリソースを削除します。

このパターンによって作成されたすべてのインフラストラクチャを削除するには、次のコマンドを実行します。

terraform plan -destroy

破棄計画を慎重に確認してください。計画された削除が許容される場合は、次のコマンドを実行します。

terraform destroy

注: このコマンドは、このパターンによって作成されたすべてのリソースを完全に削除します。コマンドは、リソースを削除する前に確認を求められます。

AWS DevOps、DevOps エンジニア

トラブルシューティング

問題ソリューション

エージェントの動作

この問題の詳細については、Amazon Bedrock ドキュメントの「エージェントの動作のテストとトラブルシューティング」を参照してください。

Lambda ネットワークの問題

これらの問題の詳細については、Lambda ドキュメントの「Lambda でのネットワーク問題のトラブルシューティング」を参照してください。

IAM 許可

これらの問題の詳細については、IAM ドキュメントの「IAM のトラブルシューティング」を参照してください。

関連リソース