Posted at
ClassiDay 13

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

More than 1 year has passed since last update.

このエントリは 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ではエンジニアを募集しています。

日本の教育に興味のある方は是非お越しください!