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

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

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

Amazon Web Services、Ishwar Chauthaiwale、Anand Bukkapatnam Tirumala

概要

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

本パターンは、複数の環境に生成 AI ベースのインフラストラクチャをデプロイする、再利用可能なモジュール式の安全なコードを開発するのに役立ちます。Infrastructure as Code (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 or 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 が提供する高パフォーマンスな基盤モデル (FM) を、統合 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 は、仮想プライベートクラウド (VPC) から他の VPC 内のサービスへの単方向のプライベート接続の確立に役立ちます。

  • Amazon Relational Database Service (Amazon RDS) を使用して、 AWS クラウドでリレーショナルデータベース (DB) をセットアップ、運用、スケーリングできます。

  • 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 file. を編集します。[XXXXX] に示されたプレースホルダーを確認し、お使いの環境に応じて更新します。

AWS DevOps、DevOps エンジニア

インフラストラクチャを作成する

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

terraform init
terraform plan

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

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

ソリューションにアクセスする

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

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

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

    • 次の質問をして、Amazon RDS インスタンスのスナップショットを作成する: 「RDS インスタンス [インスタンス名] のスナップショットを作成して」

    • 次の質問をして、Amazon S3 バケットでバージョニングを有効にする:「バケット [バケット名] のバージョニングを有効にして」

    • 次の質問をして、Amazon EC2 インスタンスを一覧表示する: 「すべての EC2 インスタンスを一覧表示して」

    • 次の質問をして、Amazon EC2 EC2 インスタンスを起動または停止する: 「EC2 インスタンス [インスタンス ID] を起動して」または「EC2 インスタンス [インスタンス ID] を停止して」

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

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

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

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

terraform plan -destroy

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

terraform destroy

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

AWS DevOps、DevOps エンジニア

トラブルシューティング

問題ソリューション

エージェントの動作

この問題の詳細については、Amazon Bedrock ドキュメントの「Test and troubleshoot agent behavior」を参照してください。

Lambda ネットワークの問題

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

IAM アクセス許可

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

関連リソース