このエントリは Classi Advent Calendar 2016 の13日目です。
Classiでサーバサイドアプリケーションを担当している @kyottyy です。
今回は、弊社のコーポレートサイトをAWSに移行することで
ランニングコストを節約した話をします。
移行前
クラウドのIaaSサービス上にLinuxインスタンスを立てて、
一般的な構成のWebアプリケーションを構築していました。
この時のランニングコストが 数十万 / 月
です。
移行後
静的資産をS3のwebsite hosting + CloudFront経由で公開し、
動的処理(お問い合わせ部分)をLambdaで実現しています。
移行後のランニングコストは 数万 / 月
で、1/10以上のコスト削減を実現できました。
Lambda
AWSのサービスを使うことで簡単にサーバレスアーキテクチャを採用できますが、
Lambda周りでいくつかポイントがあったので紹介します。
functionの管理
今回はgolangで実装するため apex を採用しました。
結果としてデプロイやfunctionの管理が非常に楽になり、
複数人での開発もスムーズに行えました。
パフォーマンス
個々のパフォーマンス計測が難しいため、ユーザから見える箇所を
2-tier(js -> S3)とし、体感速度を高速にしています。
(全体としても数sで処理が完走する)
性能検証は現在も課題であり、最適な方法を模索中です。
Lambda on VPC
ドキュメントで注意されているように、ENI(=subnetで割り当て可能なIP数)が不足すると
CloudWatchにログが記録されず、音もなく失敗する可能性があります。
今回はLambdaの実行状況をDynamoDBに格納することで
エラー検知 + べき等性を担保しています。
最後に
Classiではエンジニアを募集しています。
日本の教育に興味のある方は是非お越しください!