おはこんにちばんは! ユニファのインフラ見てますすずきです。
先週に引き続き書いています。(ホントはこれも先週出す予定…)
引き続きなので今回はユニファのシステム変化の中編(後編では収まらなさそうだ…
前編はこちら
さっそく中編始めます。
ルクミーノート リリース
ルクミーノートは保育園の連絡帳をデジタル化して提供しているものです
- 入社後初の新規プロダクト
- CLB、EC2、RDSというよくあるシンプルな構成
- push通知用にサブシステムも作成
- ユーザ情報などはフォトを利用する
管理部分
- 管理用アカウントで監視や踏み台なども整備
ルクミーフォト 〜HA Proxy to ALB〜
- HAProxyをインストールしてつかっていたがALBに変更しリスナー Ruleを利用
以前から変更のあった部分は赤線でかこってます
改善された点
- HAProxyとEC2タグとを利用した手組みAutoScalingを自動化できた
前編で忘れてた点
- フォトの決済はPaygentを利用している
- Redashを導入しKPIを取得
- フォトのDBをMaster/Slaveに変更
ルクミー午睡チェック 〜プレ〜
園でのお昼寝のことを午睡といい、お昼寝時にうつ伏せになって寝てないかなどを園の先生が5分毎にチェックしています(チェックシートにも記録)。 本サービスはそれら作業の補助としてボタン型のIoTデバイスで自動的にチェック(チェックシートも生成)を行うサービスです。
- 正式リリース前にプレで利用してもらっていた
- ユニファのサービス間で園情報を共有するAPIの作成と利用開始
- 午睡チェック自体はAPIのみ提供
- 管理画面用のサブシステムを作成
- 管理用EndpointはIP制限
- 園側が利用するEndpointは制限無し
管理部分
- (書いてないけど) CodeDeployを使ったデプロイ制御にしデプロイ方法を統一
ルクミー午睡チェック 〜正式リリース〜
- API GatewayとNLBの連携が提供されたので利用
- DynamoDBへの書き込みを非同期化(EC2->DynamodbをEC2->SQS->EC2->DynamoDBに変更)
- 園側の管理画面で利用しているLBをCLBからALBに変更しWAFを利用
- アラートなど集計Lambdaを追加
以前から変更のあった部分は赤線でかこってます
正式リリース時点での改善点
- API Gatewayからの通信をAWSが提供しているIPアドレスリストで許可する無茶な運用がなくなった
- プレ時にはエラーの原因にもなってた
- データ書き込みを非同期にした為DynamoDBのキャパシティ管理がしやすくなった
- 同期にしていた場合すごく高コストな構成になっていたはず…
だんだん今現在の運用しているサービスに近づいてきました、ただこの間も新サービスつくっていただけでなく改善も行われてました。
フォトの写真アップロードの改善です。ついでにその際の全体図を表示しときます。(ノート除く…)
ルクミーフォト 〜写真アップロードサーバレス化〜
- フォトの肝である写真アップロードをLambdaを使ってサーバレスに
以前から変更のあった部分は赤線でかこってます
サーバレスで改善された点
- イベントごとのスペック調整が不要になった
- 運動会、ハロウィン、クリスマスなどのイベントで爆発的にアップロードが増える
- コスト削減
- 写真アップロードサーバはスペックを高めにしていたのと常時稼働が必要だった。
あと1回分残したくらいで中編終わります。
この間にオフィス移転も2回くらいしていたのかな?
僕も社内インフラの担当が外れて、サービス側に注力するってフェーズにもなった気がします。
社内の技術としてはLambdaなどサーバレスを利用したり、DynamoDBにチャレンジしたりなど使ったことのないサービスを利用し始めるなどチャレンジしているタイミングですね。(今も引き続きコンテナ化や機械学習などすすめています)
今週になるか来週になるかいつになるかわかりませんが最後は以下について書きたいと思います。
- フォトリニューアル(コンテナ化)
- キッズリー引取
- など