FastLabel がAWS Fargate を選択した理由とそのアーキテクチャ設計の背景
FastLabel株式会社 / holidayworking
テックリード / SRE
ツールの利用開始時期 |
---|
2021年1月 |
ツールの利用開始時期 | 2021年1月 |
---|
アーキテクチャ
アーキテクチャの意図・工夫
FastLabel は、AI 開発の各プロセスにおけるリソースや仕組みの不足をワンストップで解決する AI インフラを提供し、持続可能な AI 開発と運用を実現するプラットフォームです。AWS 上に構築されており、運用コスト削減を目的に多くのマネージドサービスを活用しています。
- フロントエンド
- TypeScript、React で実装
- Amazon CloudFront + Amazon S3 で配信
- バックエンド
- API
- TypeScript、tsoa で実装
- コンテナ化されており、Amazon ECS 上で稼働
- 非同期処理
- データにインポートやモデルの学習などの時間がかかる処理は非同期処理で実装
- Amazon SQS のキューをロングポーリングする Python で実装されたアプリケーション
- コンテナ化されており、Amazon ECS 上で稼働
- API
Amazon ECS は、データプレーンとして Amazon EC2 と AWS Fargate を選択できますが、運用コスト削減のため AWS Fargate を選択しています。
導入の背景・解決したかった問題
導入背景
初期の FastLabel は Google Cloud 上で稼働しており、Cloud Functions と Firestore を組み合わせて実装されていました。ビジネスとしての成功が不確実であったため、短期間でリリースし、迅速に開発を進めることができるこの選択肢を採用しました。
その後、FastLabel のプロダクトマーケットフィットが見え始め、資金調達にも成功し、さらにAWSの知識を持つメンバーがジョインしたことを受け、AWS への移行を決断しました。
AWS Lambda と Amazon DynamoDB の組み合わせでの実装も検討しましたが、アーキテクチャを根本的に見直した結果、現在の構成に至りました
比較検討したサービス
- AWS Lambda
比較した軸
- コンテナ運用
- RDS との相性
- 料金・運用コスト
選定理由
AWS Lambda で REST API を実現するためには、Amazon API Gateway を利用する必要があります。しかし、Amazon API Gateway と AWS Lambda にはそれぞれペイロードサイズの上限があります。
このペイロードサイズの上限が、AWS Fargate を選定した大きな理由のひとつです。FastLabelはアノテーションツールとして開発が始まり、アノテーションの座標情報や画像のメタデータなど、大容量データを処理する必要がありました。そのため、ペイロードサイズが6MBを超える可能性があると判断しました。
導入に向けた社内への説明
上長・チームへの説明
Google Cloud から AWS へ移行することが決定されたため、特別な説明は不要でした。
活用方法
よく使う機能
- コンテナの実行
ツールの良い点
- オートスケール時にデータプレーンのリソースを考える必要がない
ツールの課題点
現時点では課題と感じている点はありません。
FastLabel株式会社 / holidayworking
テックリード / SRE
FastLabel株式会社 / holidayworking
テックリード / SRE
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法