Close

Atlassian ImageLabeller の概要


Image Labeller は、機械学習を使用して画像にラベルを添付するシンプルなデモ アプリケーションです。AWS LambdaAWS DynamoDBAWS S3AWS SageMakerAWS API GatewayAWS CloudWatchAWS CloudFormation を使用して、GoPython で記述されています。このガイドでは、Atlassian Open DevOps ツールを使用して、これらのコンポーネントのサブセットをデプロイして監視する方法について説明します。

ImageLabeller のアーキテクチャ

図

仕組み

ユーザーが AWS Lambda SubmitImage を呼び出して、有効な画像 URL をパラメーターとして渡します。SubmitImage は画像をダウンロードして、AWS S3 バケット open-devops-images- にアップロードし、新しいタプルを AWS DynamoDB テーブル ImageLabels に挿入して、画像 ID トークンをユーザーに返します。画像 ID トークンは、open-devops-images- 内の画像と ImageLabels のタプルを相関させるために使用されます。

AWS Lambda InvokeLabeller には、AWS DynamoDB イベント トリガーがあります。InvokeLabeller は open-devops-images- から対応するイメージをダウンロードして、事前トレーニングされた AWS SageMaker Inception V3 モデルを呼び出してイメージ ラベルを生成します。新しいタプルが ImageLabels に挿入されると、ImageLabels のタプルがアップデートされます。

ユーザーは 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 インフラストラクチャ リポジトリをデプロイする

  1. s3_infra
  2. dynamodb_infra

AWS Lambda をデプロイする

  1. SubmitImage
  2. GetImageLabel
  3. InvokeLabeller

システム テストをデプロイする

CloudWatchAlarms をデプロイする

AWS SageMaker の事前トレーニング済みモデルを設定する

AWS SageMaker の事前トレーニング済みモデルの設定方法の詳細。

Jira と CI/CD の統合

プランニング、リポジトリ、CI/CD、監視ツールを Atlassian Open DevOps に接続します。

Warren Marusiak
Warren Marusiak

Warren is a Canadian developer from Vancouver, BC with over 10 years of experience. He came to Atlassian from AWS in January of 2021.


この記事を共有する
次のトピック

おすすめコンテンツ

次のリソースをブックマークして、DevOps チームのタイプに関する詳細や、アトラシアンの DevOps についての継続的な更新をご覧ください。

DevOps のイラスト

DevOps コミュニティ

DevOps のイラスト

DevOps ラーニング パス

マップのイラスト

無料で始める

DevOps ニュースレター購読

Thank you for signing up