おみやげAPIの裏側〜re:Invent企画〜
10月にラスベガスで開催された「AWS re:Invent 2015」。
参加したメンバーは考えた…。
新サービスについて紹介するだけなら、”某ブログの会社”の方が早いし詳しい…。
それなら、新サービスを使って何かを作ればいいんじゃないか!?と。
そこで、メンバーに配るおみやげを抽選できる
おみやげAPIをつくるべく、「おみやげAPIプロジェクト」が発足!
無事おみやげは配れたのか?
今回は(やっと)その全貌・開発の裏側に迫ります!
おみやげAPIの立ち上げ
チーム構成は、
re:Inventに参加した 井上、今井。そこにAWSエンジニア加藤がJoin。
さらにデザイナー田名網も加わり強力な布陣に(えっへん)。
おみやげの写真撮影などサポートを青木が担当。
過去のブログ
おみやげAPIをつくろう〜AWS re:Invent参加メンバー企画スタート!
おみやげAPIをつくろう〜絶賛開発中!re:Invent企画〜
来たよ!re:Invent〜展示エリア(Central)を楽しもう編〜
写真の数はざっと20枚。ですが、実際には同じものやサイズ違いなどもあり、商品数はもっとありました!
おみやげ配布大会(re:Invent報告会)スタート!
多くのメンバーが参加しました〜おみやげ応募は事前に案内して「応募しておいてね」と伝えていました。
おみやげに応募する画面はこのような感じです。
希望のおみやげを選択して、エントリー。
管理側(抽選する側)の画面です。ラスベガス風。
おみやげAPIの裏側
決め事としては、以下の2つです。
・できるだけAWSの新サービス(re:Inventで発表されたもの中心)を使う
・NoEC2
また、ざっくり要件は以下のとおりです。
・ユーザー側機能
-おみやげの一覧を見ることができる
-欲しいおみやげに応募できる
・管理者側
-応募状況が確認できる
-おみやげの抽選が行える
設計したものがこちら。ついた字名が「新技術の無駄遣い」。
・アプリケーション
-JavaScriptによるシングルページアプリケーション
-iOSアプリもあり
-配信はCloudFront(S3オリジン)
-無駄にWAF
・認証
-Facebook
・権限付与
-Cognito
・データ
-応募やユーザー作成はAPIGateway
-APIGateway+Lambdaを経由してDynamoDBへ
-LambdaはPythonを使用(JS非同期処理多い…Pythonならシンプルにいける)
-Lambda SNS使って処理が管理者に飛んでくる
-登録状況確認 無駄にcron使いたかった
-DynamoDBに入った応募データはLambdaからFirehoseでS3経由Redshiftへ
(ただ、Lambdaコンテナ上のSDKが古くてFirehoseが呼び出せず→実現せず)
-Lambdaの定期実行(CRON)を使って応募状況をSNSでサポート
やってみてよかったこと
新サービスを無理やり使う方針によって
・どんなサービスがあったか復習できた
・想定ユースケースの確認ができた
新サービスを使ってみて
・サービスの概要を把握できた
・一回手を動かしてみることで、苦手意識が低下した
・Lambda力がました
・APIGatewayが使えるようになった
・Node.jsの辛さを再認識した
・Pythonに目覚めた
・サーバレスアーキテクチャも行けそうな気がしてきた
サーバレスアーキテクチャについて
・APIGatewayの登場により、より現実感が増した
・2 Tireアーキテクチャは用途が限定的なイメージ
・デプロイ系はまだこなれてない
・開発方法、運用方法についてノウハウの蓄積が必要
デプロイ方法の確立(JAWS frameworkなど)
ブラウザでポチポチするのは辛い
ログまわり(CloudwatchLogs辛い)
・認証まわりがまだふわっとしてる(自分の中で)
・うまくいけばコストダウンになりそう
・新しい技術を学ぶのには”しばり”があると面白い
新サービスしばり、Lambdaしばり、EC2レスしばり…
エンジニア井上が資料にまとめておりますので、こちらをご覧ください。
AWS活用の今までとこれから-東急ハンズの事例-
なお、抽選にはちゃんとドラム音が鳴り、無事おみやげたちはメンバーの手に渡っていきました!