🧱

OpenAI APIのmockサービス part3: AWSサービスの設定詳細

2023/07/21に公開

OpenAI APIのmockサービスの設定詳細

前回の投稿でOpenAI APIのmockサービスであるopenai-mockのアーキテクチャの概要を解説しました。
https://zenn.dev/kiyoka/articles/openai-mock-1
https://zenn.dev/kiyoka/articles/openai-mock-2

今回は、AWSの各サービスの設定内容を解説します。

全体構成

これが、mockサービスの静的コンテンツと動的コンテンツを一つにまとめたシステム構成です。
api.openai-mock というドメイン名にリファレンスマニュアルとWebAPIをホスティングしています。

詳細な構成図

image.png

各サービスの設定内容

サービスの設定内容を解説します。

Amazon CloudFront

動的なコンテンツ(WebAPI)は、APIゲートウェイに流し、静的なコンテンツ(リファレンス・マニュアル)はS3で配信するよう設定しています。

  • オリジンの設定

cloudfront3.png

  • ビヘイビアの設定

/chat/* /v1/* /beta/* というパスは API Gatewayへ、 /* は S3へ転送するようにしています。
image.png

Amazon S3

詳細は省略しますが、リファレンスマニュアルのコンテンツを置いています。
Slateで生成した静的コンテンツ(HTML/CSSなど)を、そのまま配置しています。
リファレンスマニュアル
image.png

上記リファレンスマニュアルのコンテンツはSlateというドキュメントシステムで書いています。
SlateのGitHubページ

Amazon API Gateway

API Gatewayには、2つのLambdaを統合しています。
ひとつは本番バージョンのプログラム、もうひとつはベータバージョンのものです。
ベータバージョンは、本番を壊さずに不安定なバージョンを試せるよう、/beta/*というパスでホスティングしています。
image.png

AWS Lambda

OpenAIのmockサービスのコア部分です。詳細は省略します。

最後に

以上が、今回開発したmockサービスの設定の詳細です。
API GatewayとLambdaの統合を使ったごく普通の構成です。
この記事が皆さんのプロジェクトに役立つようであれば幸いです。

Discussion