記事
チュートリアル
インタラクティブ ガイド
Atlassian ImageLabeller の概要
Image Labeller は、機械学習を使用して画像にラベルを添付するシンプルなデモ アプリケーションです。AWS Lambda、AWS DynamoDB、AWS S3、AWS SageMaker、AWS API Gateway、AWS CloudWatch、AWS CloudFormation を使用して、Go と Python で記述されています。このガイドでは、Atlassian Open DevOps ツールを使用して、これらのコンポーネントのサブセットをデプロイして監視する方法について説明します。
ImageLabeller のアーキテクチャ
仕組み
ユーザーが AWS Lambda SubmitImage を呼び出して、有効な画像 URL をパラメーターとして渡します。SubmitImage は画像をダウンロードして、AWS S3 バケット open-devops-images-
AWS Lambda InvokeLabeller には、AWS DynamoDB イベント トリガーがあります。InvokeLabeller は open-devops-images-
ユーザーは AWS Lambda GetImageLabel を呼び出して、イメージ ID トークンをパラメータとして渡します。GetImageLabel は ImageLabels 内のイメージ ID トークンに関連付けられたラベルを検索して、結果をユーザーに返します。AWS SageMaker モデルが画像の処理を完了していない場合は、ユーザーは NOT_Classified ラベルを取得します。
Image Labeller は 5 つの環境にデプロイされます。us-west-1 のテスト環境、us-east-2 のステージング環境、そして us-west-2、us-east-1、ca-central-1 の 3 つの本番環境の計 5 つです。
コンポーネント
ImageLabeller の一部である AWS S3 バケットと AWS DynamoDB テーブルは、AWS CloudFormation テンプレートを使用してデプロイされます。このガイドでは、AWS S3 バケットをデプロイする方法に関する CI/CD 設定情報を提供します。AWS DynamoDB テーブルをデプロイするプロセスはほぼ同じで、自分で行える演習として用意されています。
ImageLabeller プロジェクトには、SubmitImage、InvokeLabeller、GetImageLabel の 3 つの AWS Lambda があります。このガイドでは、SubmitImage をデプロイする方法に関する CI/CD の設定情報を提供します。GetImageLabel をデプロイするプロセスはほぼ同じで、自分で行える演習として用意されています。
InvokeLabeller は Python ベースの AWS Lambda で、公開する前にマイナー アップデートが必要です。具体的には、InvokeLabeller は AWS コンソールを介して実行される AWS SageMaker の設定に依存します。
ImageLabeller プロジェクトに含まれるシステム テストは、ImageLabeller 全体をテストします。ImageLabeller のコンポーネントが存在しないか、期待どおりに動作していない場合、テストは失敗します。SubmitImage、GetImageLabel、InvokeLabeller のデプロイは、それぞれの CI/CD パイプラインの一部としてシステム テストをすべて実行します。
SubmitImage、GetImageLabel、InvokeLabeller の初期デプロイでは、システム テストの実行ステップをコメント アウトする必要があります。デプロイが 1 回正常に実行された後は、システム テストの実行ステップのコメントを解除して再デプロイできます。
コンポーネントをデプロイする順序
AWS SageMaker 事前トレーニング済みモデルを AWS コンソールから手動でデプロイする
AWS インフラストラクチャ リポジトリをデプロイする
- s3_infra
- dynamodb_infra
AWS Lambda をデプロイする
- SubmitImage
- GetImageLabel
- InvokeLabeller
システム テストをデプロイする
CloudWatchAlarms をデプロイする
この記事を共有する
次のトピック
おすすめコンテンツ
次のリソースをブックマークして、DevOps チームのタイプに関する詳細や、アトラシアンの DevOps についての継続的な更新をご覧ください。