Tech Blog

グローバルな家族アプリFammを運営するTimers inc (タイマーズ) の公式Tech Blogです。弊社のエンジニアリングを支える記事を随時公開。エンジニア絶賛採用中!→ https://timers-inc.com/engineering

AWS re:Invent Game Day 参加レポート

AWS re:Invent 2017 GameDay について

CTOの椎名です。 現在ラスベガスで AWS re:Invent 2017 に参加中です!去年より何倍も規模が大きく、新サービスも山盛りで、彼らのとんでもない成長スピードを実感しております。 今年は Game Day ハッカソンに参加する事が出来たので、その結果報告です。

f:id:anshiina:20171201032919j:plain

結果

まず、結果としては60チーム中30位という、平均的な結果でした。 上位チームとは2倍ぐらいの差がありなかなか悔しかったです。

内容について

概要

今年の Game Day は、ISUCON的なパフォーマンスチューニングではなく、「降ってくる様々な課題をクリアすること」でした。最初は2問ぐらいしかなかったモジュール(課題のこと)が、日中に増えていき、我々参加者はすべてをクリアしてスコアを獲得していかなければいけません。 作業に集中してると、進行役の人が突然新たな課題を発表し、 Game Day のダッシュボードページにも新しいものが現れる、という形でした。

課題内容1

まず最初に出てきた課題は「サイトが落ちてるので、このソースコード(zip)からサイトを復活させてくれないか」でした。 静的ページを S3 static hosting で立ち上げ、Pythonアプリケーションは実際にEC2インスタンスを作って中で動かすというところまで行いました。ここは比較的そのままスムーズに出来た...

と思いきや、日中に突然サイトが落ち、スコア上も減点(立ち上げたサイトはURLを運営側に共有し、アクセスを常にさばき続けないとスコアが増えていかない。サイトが落ちると減点にもなる)。問題を調べてると、EC2のステータスチェックが失敗してました。 すぐにEC2のAMIをとって、Auto-Scalingグループ+ELBの構成を組みました。EC2のヘルスチェックに失敗したらEC2を作り直すように設定してもらい、それでうまくアクセスがさばけるようになりました。

1日を通してEC2が結構な頻度で落ちては自動再起動もしてたので、運営側があえてEC2をインフラレベルから殺してるのだろうと想像がつきました。

課題内容2~

上記の課題1の対応をしながら、他の課題も出て来ました。これらの課題はすべてAWSのマネージドサービスを使うようなものでした。いくつもあったので全てをちゃんと覚えているわけではないですが、ざっくりと例を挙げると:

  • Lambda と Rekognition を組み合わせ、バケットに自動で入ってくる画像を解析する
  • CodePipieline CodeCommet CodeBuildを組み合わせ、自動でpushされるコード修正をテスト→ビルド→デプロイするようなフローを構築する
  • AthenaでS3に入ったをデータを解析して答えを導き出す

など。マネージドサービスをGUIでぽちぽち設定する時間も結構あったように思います。

感想

f:id:anshiina:20171201032959j:plain

S3 static hosting や Auto-Scaling グループなど、慣れてるものはすらすらと出来たのですが、CodePipieline系は全然触ってなかったので非常に大変でした。無駄な凡ミスに結構時間を使ってしまった場面もありました。

リアルだなと思ったのは、共有されたRunbook(運用メモ)に書いてある情報がおかしくてドキュメントを100%信用できないというところで。実際に設定やコードの中身を見て初めて地雷に気づくという事は実務に似てるなーと感じました。

マネージドサービスはやはり学習時間がかかるので、使ったことがあるかないかでだいぶ作業時間や結果にも差がついた、という印象でした。しかしパフォーマンスチューニング寄りのイベントではなく、AWSのサービスをうまく使い倒すイベントになってて、AWS re:Invent にはぴったりでした! 結果としては悔しい結果でしたが、非常に楽しく、色々と勉強になったし、他チームメイトとも深い話ができて有意義なイベントで参加してよかったです!

自分は今回は Game Day 以外にも Workshop に複数参加してますが、やはり手を動かすと学ぶ量が圧倒的に違うように思いました。 ぜひ皆さんもカンファレンス参加の際は Game Day のような実際に手を動かすアクティビティに参加してみるのをおすすめします!

積極採用中!!

子育て家族アプリFamm、カップル専用アプリPairyを運営するTimers inc. では、現在エンジニアを積極採用中! 急成長中のサービスの技術の話を少しでも聞いてみたい方、スタートアップで働きたい方など、是非お気軽にご連絡ください! 採用HP : http://timers-inc.com/engineerings

Timersでは各職種を積極採用中!

急成長スタートアップで、最高のものづくりをしよう。

募集の詳細をみる