## 主業務
サーバーレス画像配信システム
## 修得したもの
AWSの知識
Node.Js
構成管理
## 概要
サイト内に表示するバナーの画像、順序、表示期間の情報を、バックエンドシステム(PHP/Symphony)にて組み込んでいたため、マーケティングプラン実施時に毎回エンジニアによる、ステージング/本番へのシステムデプロイが発生していました。
非エンジニア(デザイナー、マーケティング)のみで作業を行えるよう、単にS3に必要なファイルをアップロードするという機能に転換を図り、作業コストの軽減を実現しました。
本来はCMS化するのがベストではありますが、諸般の事情より上記の実装のみにとどめました。
## 詳細
1. 情報を記述したYmlファイルと、使用する画像をS3にアップロードする
2. Lambdaにてそれらを別バケットに移動
3. Ymlファイルに書かれたバナー情報は、別のLambdaファンクションにてサイトレンダリング時に使用できる形式のデータ構造に書き換え
4. 指定した時間のみ表示出来されるように、データを再形成し、ElastiCache内のRedisに登録する。
5. CloudWatchのイベントにて毎時Lambdaファンクションを実行させ、Redis内の情報をタイマー設定に沿って書き換える。
6. Lambda実行ステータスはSlackにて特定のチャンネルに通知
7. SlackのOutgoing Webhookにて現在Redisに登録されている情報を確認できるよう実装
## 使用した技術
AnsibleによるAWSリソース(VPC、Lambda、ElastiCache、SNS、API Gateway)の構成管理
Node.Jsにて作成したLambdaファンクション