Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ALB+Lambdaを活用した既存システムのMicroservice化

 ALB+Lambdaを活用した既存システムのMicroservice化

2019年10月21日(月)に開催されたDevLOVE様主催のイベント「諸君、私はServerlessが好きだ。」にて発表した資料です。

NAVITIME JAPAN

October 21, 2019
Tweet

More Decks by NAVITIME JAPAN

Other Decks in Technology

Transcript

  1. 既存フローの問題点 Service A Service B 地図配信 Service ALB ALB ALB

    ECS ECS ECS •ServiceA とServiceB はリクエストを Proxingしているだけ •地図配信リクエスト数は全体リクエストの 約6割 (共通API) Users
  2. 既存フローの問題点 Service A Service B 地図配信 Service ALB ALB ALB

    ECS ECS ECS •ServiceB には多数の 共通API が稼働 = モノリシック •EC2リソースをアクセスに合わせて無駄なく増減させるのは難しい  →無駄に起動しているEC2リソースが多少なり存在 Users (共通API)
  3. Deploy 地図配信 Service Jenkins ALB ECS Alarm Topic AWS CloudFormation

    •CloudformationでLambda、ALB Targetgroup、Alarm、Topicを作成 •aws-sam-cli で作成したtemplate をベースに必要なリソースをappend
  4. デプロイ 地図配信 Service Jenkins ALB ECS Alarm Topic AWS CloudFormation

    •Cloudformation の Template は1つ、アプリ毎に変動する部分だけ Parameterファイル化 Deploy Template.yaml アプリA⽤パラメータファイル + アプリB⽤パラメータファイル アプリC⽤パラメータファイル
  5. Failover Service A Service B 地図配信 Service ALB ALB ALB

    ECS ECS ECS (共通API) Users Lambda Cloudformation の Stackを削除する事で、既存のルーティングに切り戻す
  6. 実施した監視項⽬ 項⽬ 監視の⽬的 Errors • Lambda⾃体でエラーが発⽣していないか? • 例)Memory超過、Timeout Application Errors

    • アプリケーションでエラーが発⽣していないか? • 例)Upstreamからエラーが返却された • 例)Runtime Error Throttle Errors • 同時実⾏数の上限を超えていないか? Healthy Host Count • ALB → Lambdaのヘルスチェックが200で返っているか?