4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon Bedrock × Cloudflare AI Gateway ハンズオン用資料(AWS側設定編)

Last updated at Posted at 2024-07-09

概要

今回の記事はこちらの勉強会用の資料になります。

Amazon Bedrock × Cloudflare AI Gateway ハンズオンを行う予定ですが、本記事はAWS側のお話をメインとさせていただいておりますので、
Cloudflare側の操作に関しては kameoncloud様の記事を参照してください。

本ハンズオンは、Amazon Bedrockで多少の課金が発生いたします。ご了承ください。

また、今回のハンズオンの構成図は以下の通りです。
image.png

Amazon BedrockとCloudflareのAI Gatewayについて

まず最初に軽く、二つのサービスの概要に触れたいと思います。

Amazon Bedrockについて

Amazon Bedrockは、AWSが提供する完全マネージド型の生成系AIサービスです。複数の基盤モデル(Foundation Models)を単一のAPIで利用できる点が特徴です。主な特徴は以下の通りです:

  1. 多様なモデル:Anthropic、AI21 Labs、Stability AI、Amazon Titan等、様々なプロバイダーのモデルを利用可能
  2. セキュリティとプライバシー:データはAWS内で処理され、外部に送信されない
  3. カスタマイズ機能:一部モデルでは、自社データでファインチューニングすることが可能
  4. 使いやすさ:単一のAPIで複数のモデルにアクセス可能
  5. コスト効率:従量課金制なので、無駄なコストを抑えることが出来る

Amazon Bedrockを使用することで、開発者は複雑なMLインフラストラクチャの管理なしに、高度なAI機能をアプリケーションに統合できます。

また、料金に関してですが、Amazon Bedrockは使用したモデルに応じて加算される料金単価が違います。

Cloudflare AI Gatewayについて

生成AIのアプリケーションの運用には、ログの分析だったり、コスト・パフォーマンスの管理や最適化、エラー処理などを考えていく必要があるかと思います。CloudflareのAI Gatewayは、これらの課題感を少なめなコード量で適応できるものになっています。

主な特徴をまとめると:

  • 分析: リクエスト数、トークン数、実行コストなどのメトリクスを表示し、アプリケーションの使用状況を可視化できる。
  • リアルタイムログ: リクエストやエラーの詳細をリアルタイムで確認できる。
  • キャッシュ: リクエストをCloudflareのキャッシュから提供することで、速度を向上させ、コストを削減できる。
  • レート制限: 一定時間内に受け取るリクエスト数を制限し、アプリケーションの負荷を管理できる。
  • リクエスト再試行とフォールバック: エラー発生時に自動でリクエストを再試行し、代替モデルにフォールバックする機能もある。

という感じです。現在対応しているモデルは以下を参照してください。

ハンズオンの流れ

  1. AWSアカウントの作成と管理者権限を持つIAMユーザーの作成
    (ハンズオンで使用可能なコンソール操作用のIAMユーザーを所持している方は不要)
  2. Amazon Bedrockの設定
  3. IAMユーザーの作成
  4. Cloudflare側へ
  5. お片付け

0. AWS側でやることの一覧

  • Amazon Bedrockで、Amazon Titan Text G1 - Expressのモデルを許可しておく
  • AWS IAMでAmazonBedrockFullAccessのポリシーを持っているIAMユーザー(マネコン不要)を作成して、アクセスキーとシークレットアクセスキーをメモする

以上になります。上記のことがすんなりできる方は、kameoncloud様の記事に飛んでください。

1. AWSアカウントの作成と管理者権限を持つIAMユーザーの作成

既にハンズオンで使用可能なコンソール操作のIAMユーザーを所持している方はこのステップを飛ばしてください。

クリックすると手順の詳細が展開されます。

1-1 AWSアカウントの作成

サインアップまでの手順は公式のほうで説明されておりますので、こちらを参照していただければと思います。

https://aws.amazon.com/jp/register-flow/

1-2 管理者権限を持つIAM ユーザーの作成

rootユーザーでの作業は安全性の観点から推奨されません。そこで、管理者権限を持つ IAM ユーザーを作成し、以降の作業はこのユーザーで行います。

  1. AWSマネジメントコンソールに rootユーザーでログインします。
    png1.png

  2. 画面上部の検索バーで「IAM」と入力し、表示されたサービスの「IAM」をクリックします。
    image.png

  3. 左側のメニューから「ユーザー」を選択し、「ユーザーの作成」をクリックします。

  4. ユーザー名を入力します(例:「admin-user」)。

  5. 「AWS マネジメントコンソールへのユーザーアクセスを提供する」にチェックを入れ、「パスワードの設定」で「自動生成されたパスワード」または「カスタムパスワード」を選択します。

  6. 「次へ」をクリックします。

  7. 「ポリシーを直接アタッチする」を選択し、検索バーに「AdministratorAccess」と入力します。表示された「AdministratorAccess」ポリシーにチェックを入れ、「次へ」をクリックします。
    image.png

  8. 設定内容を確認し、「ユーザーの作成」をクリックします。

  9. 「.csv ファイルのダウンロード」をクリックし、認証情報をダウンロードします。このファイルは安全な場所に保管してください。

  10. 「ユーザーリストに戻る」をクリックしてユーザー作成プロセスを完了します。

1-3 新しい管理者ユーザーでログイン

  1. AWSマネジメントコンソールからサインアウトします。
  2. ログイン画面で、先ほどダウンロードした .csv ファイルに記載されている「コンソールサインイン URL」をクリックします。
  3. ユーザー名とパスワードを入力してログインします。
  4. 初回ログイン時にパスワードの変更を求められるので、新しいパスワードを設定します。

これで、管理者権限を持つ IAMユーザーの作成とログインが完了しました。以降の手順は、このユーザーを使用して実行してください。

セキュリティのため、rootユーザーの認証情報は安全に保管し、日常的な操作には使用しないでください。また、多要素認証(MFA)を有効にすることを強くお勧めします。

2. Amazon Bedrockの設定について

Amazon Bedrockを利用するための設定手順を説明します。

2-1 Amazon Titan Text G1 - Expressを有効にする

まず、Amazon Titan Text G1 - Expressのモデルを有効にします。

  1. AWSマネジメントコンソールにログインします。

  2. リージョンは「東京」を選択してください。

  3. 画面上部の検索バーで「Bedrock」と入力し、選択します。
    image.png

  4. 左側のメニューから「モデルアクセス」を選択してください。

  5. 「Enable specific models」をクリックし「Amazon Titan Text G1 - Express」を選択し「Next」、「Submit」を押してください。
    image.png

  6. アクセスが許可されます。
    image.png

2-2 modelIDを確認する

今回Cloudflare AI Gatewayとの連携にAmazon Bedrockのエンドポイントの情報が必要になります。エンドポイントの形式は、
https://bedrock-runtime.<region>.amazonaws.com/model/<modelID>/invoke
となるため、使用するmodelIDの情報が必要となります。その確認方法は以下の手順です。

  1. Bedrockコンソールの左側メニューから「ベースモデル」を選択し、検索窓にTitanを入力し、検索窓下に表示される「モデル名 = Titan Text G1 - Express」選択してください。
    image.png

  2. 表示されたモデル名をクリックし詳細画面へ遷移します。
    image.png

  3. 画面下部の「API リクエスト」内の「modelId」を確認します。
    image.png

2-3 モデルをちょっとだけ試してみる。

  1. Bedrockコンソールの左側メニューから「プレイグラウンド」の「チャット」をクリックしてください。
  2. 「モデルを選択」を押して、Titan Text G1 - Expressを選択して「適用」を押してください。
    image.png
  3. あとは何か入力して試してみてください。
    image.png

3. IAMユーザーの作成について

Cloudflare AI GatewayとAmazon Bedrockを連携するために、IAMユーザーを作成します。このユーザーには、Bedrockのモデルを呼び出すための権限を付与します。

3-1 IAMユーザーの作成手順

  1. AWSマネジメントコンソールにログインし、「IAM」サービスを選択します。

  2. 左側のメニューから「ユーザー」を選択し、「ユーザーを作成」をクリックします。

  3. ユーザー名を入力します。

    cloudflare-handson-20240712
    
  4. 今回はマネジメントコンソールへのアクセスは必要ないので、そのまま「次へ」をクリックします。

  5. 「ポリシーを直接アタッチする」を選択し、AmazonBedrockFullAccessを検索してチェックを入れ、「次へ」をクリックします。
    image.png

  6. 「ユーザーの作成」をクリックします。

  7. ユーザーが作成されたら、ユーザー名を選択し「セキュリティ認証情報」をクリックし「アクセスキーの作成」を行います。
    image.png

  8. ユースケースに「コマンドラインインターフェイス (CLI)」を選択し、「上記のレコメンデーションを理解し、アクセスキーを作成します。」にチェックをつけ「次へ」をクリックします。

  9. 説明タグは任意で入力可能ですが、今回はそのまま入力せずに「アクセスキーを作成」をクリックします。

  10. 表示された認証情報(アクセスキーとシークレットアクセスキー)をダウンロードまたはメモしてください。
    *これらの認証情報は非常に重要です。安全に保管してください。

補足情報
ポリシー的にはInvokeModelをAllowしておけばいいので、AmazonBedrockFullAccessを使用したくない場合はこちらを利用してください。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "BedrockInvokeModelPolicy",
            "Effect": "Allow",
            "Action": "bedrock:InvokeModel",
            "Resource": "arn:aws:bedrock:*::foundation-model/*"
        }
    ]
}

4. Cloudflare AI Gatewayとの連携に必要な情報の整理

Cloudflare AI Gatewayとの連携に必要な情報は以下の通りです。

IAMユーザーの アクセスキー:

形式: 20文字の英数字(例:AKIAOAOSAIKOUEXAMPLE)
場所: ユーザー作成時にダウンロードしたCSVファイル、または認証情報画面に表示

IAMユーザーの シークレットアクセスキー:

形式: 40文字の英数字(例:wJalrXUtnHOGE/DEMOENG/uHbRfiCYEXAMPLEKEY)
場所: ユーザー作成時にダウンロードしたCSVファイル、または認証情報画面に表示

Amazon Bedrockのモデルを許可したAWSのリージョン:

形式: us-east-1、ap-northeast-1など
確認方法: AWSマネジメントコンソールの右上に表示されているリージョンを確認
備考: 今回は東京の「ap-northeast-1」を使用

Amazon Bedrockのエンドポイント:

形式: https://bedrock-runtime.<region>.amazonaws.com/model/<modelID>/invoke
確認方法: モデルIDに関しては、Bedrockコンソールの「ベースモデル」から、使用するモデルを選択し確認できます。または、以下のページを参照してください。

エンドポイントに関しては下記を参照してください。

備考:今回は、Amazon Titan Text G1 - Expressを使用するので、

https://bedrock-runtime.ap-northeast-1.amazonaws.com/model/amazon.titan-text-express-v1/invoke

こちらになります。

以上で、AWS側の設定手順は完了です。次に、Cloudflare AI Gatewayの設定手順に進みましょう。

5. Cloudflare側へ

こちらのURIに飛んでください。

6. お片付け

  • 作成したIAMユーザーのcloudflare-handson-20240712を削除
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?