エンジニア

2015.11.19

おみやげAPIの裏側〜re:Invent企画〜

10月にラスベガスで開催された「AWS re:Invent 2015」。

AWS re:Invent 2015

参加したメンバーは考えた…。
新サービスについて紹介するだけなら、”某ブログの会社”の方が早いし詳しい…。
それなら、新サービスを使って何かを作ればいいんじゃないか!?と。

そこで、メンバーに配るおみやげを抽選できる
おみやげAPIをつくるべく、「おみやげAPIプロジェクト」が発足!
無事おみやげは配れたのか?
今回は(やっと)その全貌・開発の裏側に迫ります!

おみやげAPIの立ち上げ

チーム構成は、
re:Inventに参加した 井上、今井。そこにAWSエンジニア加藤がJoin。
さらにデザイナー田名網も加わり強力な布陣に(えっへん)。
おみやげの写真撮影などサポートを青木が担当。

過去のブログ
おみやげAPIをつくろう〜AWS re:Invent参加メンバー企画スタート!
おみやげAPIをつくろう〜絶賛開発中!re:Invent企画〜
来たよ!re:Invent〜展示エリア(Central)を楽しもう編〜

写真の数はざっと20枚。ですが、実際には同じものやサイズ違いなどもあり、商品数はもっとありました!

おみやげ配布大会(re:Invent報告会)スタート!

計3名分ともなると、長机に乗り切らないほど!
omiyage02

多くのメンバーが参加しました〜おみやげ応募は事前に案内して「応募しておいてね」と伝えていました。

reinventhoukokukai

おみやげに応募する画面はこのような感じです。
希望のおみやげを選択して、エントリー。

omiyagegamen

管理側(抽選する側)の画面です。ラスベガス風。

chuusengamen

おみやげAPIの裏側

決め事としては、以下の2つです。
・できるだけAWSの新サービス(re:Inventで発表されたもの中心)を使う
・NoEC2

また、ざっくり要件は以下のとおりです。
・ユーザー側機能
 -おみやげの一覧を見ることができる
 -欲しいおみやげに応募できる
・管理者側
 -応募状況が確認できる
 -おみやげの抽選が行える

設計したものがこちら。ついた字名が「新技術の無駄遣い」。

omiyageapisekkei

・アプリケーション
 -JavaScriptによるシングルページアプリケーション
 -iOSアプリもあり
 -配信はCloudFront(S3オリジン)
 -無駄にWAF

iOSアプリのアイコンはこちら(デザイナー田名網作)
omiyageicon

・認証
 -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活用の今までとこれから-東急ハンズの事例-

なお、抽選にはちゃんとドラム音が鳴り、無事おみやげたちはメンバーの手に渡っていきました!

一覧に戻る