コーポレートサイトをS3+Lambdaに移行してコストカット

  • 17
    いいね
  • 0
    コメント

このエントリは Classi Advent Calendar 2016 の13日目です。

Classiでサーバサイドアプリケーションを担当している @kyottyy です。

今回は、弊社のコーポレートサイトをAWSに移行することで
ランニングコストを節約した話をします。

移行前

クラウドのIaaSサービス上にLinuxインスタンスを立てて、
一般的な構成のWebアプリケーションを構築していました。

この時のランニングコストが 数十万 / 月 です。

移行後

静的資産をS3のwebsite hosting + CloudFront経由で公開し、
動的処理(お問い合わせ部分)をLambdaで実現しています。

移行後のランニングコストは 数万 / 月 で、1/10以上のコスト削減を実現できました。

Untitled.png

Lambda

AWSのサービスを使うことで簡単にサーバレスアーキテクチャを採用できますが、
Lambda周りでいくつかポイントがあったので紹介します。

functionの管理

今回はgolangで実装するため apex を採用しました。

結果としてデプロイやfunctionの管理が非常に楽になり、
複数人での開発もスムーズに行えました。

パフォーマンス

個々のパフォーマンス計測が難しいため、ユーザから見える箇所を
2-tier(js -> S3)とし、体感速度を高速にしています。
(全体としても数sで処理が完走する)

性能検証は現在も課題であり、最適な方法を模索中です。

Lambda on VPC

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/vpc.html

ドキュメントで注意されているように、ENI(=subnetで割り当て可能なIP数)が不足すると
CloudWatchにログが記録されず、音もなく失敗する可能性があります。

今回はLambdaの実行状況をDynamoDBに格納することで
エラー検知 + べき等性を担保しています。

最後に

Classiではエンジニアを募集しています。
日本の教育に興味のある方は是非お越しください!

この投稿は Classi Advent Calendar 201613日目の記事です。