AWS Architecture MyHeritage
簡介⌗
MyHeritage 提供家族族譜分析以及家族 DNA 分析,最近推出新的服務 (Deep Nostalgia) 是讓你上傳一張祖先的照片,他們可以運用 AI 的方式令他活過來 (類似哈利波特牆上的畫像)
架構⌗
Single region⌗
就正常的架構 (關注咖啡色線路),在單一 region 時,他們使用一個 SQS 來做工作分配,以及動態的增加 GPU instances 的依據
- 使用者上傳圖片到 S3
- 使用者呼叫 API 要求處理圖片
- 使用者等待工作處理完 (polling)
- Main queue 獲得該工作
- GPU instance 從 Main queue 獲得工作
- 處理完成後通知 result queue
- 將處理後的影像放到 S3
- State manager 從 Result queue 得知某工作做好了
- 將 DB 中的狀態改變
- 使用者得知工作完成,並從 API 獲得 cloudfront 中影片的位置
Multi-region⌗
當使用者越來越多,單一 region 無法負荷其工作量, MyHeritage 多做了幾件事情
- 增加一個 Lambda 分配工作
- 在原本的 region 增加一個 SQS
整體流程變成:
- 使用者上傳圖片到 S3
- 使用者呼叫 API 要求處理圖片
- 使用者等待工作處理完 (polling)
- Main queue 獲得該工作
- Lambda 根據原 region SQS 的工作量來看要不要分配工作到各個 region 的 SQS (關注藍色線路)
- 如果原本的 region SQS 工作量還可以負荷就放到原 region SQS 以減少跨 region 的資料傳輸
- 將工作分配到各個 region 的 SQS
- GPU instance 從該 region SQS 獲得工作
- 處理完成後通知 result queue
- 將處理後的影像放到 S3
- State manager 從 Result queue 得知某工作做好了
- 將 DB 中的狀態改變
- 使用者得知工作完成,並從 API 獲得 cloudfront 中影片的位置