Meguro.dev LT大会 参加レポート AWSサービスを使ってみたLT #meguro_dev

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

マゾンウェブサービスジャパンのオフィスにて、Meguro.dev LT大会 が開催されました。今回は大会議室にて全員集合しこれまでの Meguro.dev 振り返りも兼ねたLT大会です。弊社諏訪も発表しました。

なお、過去のイベントの様子は以下のブログを参考ください。

コンテンツ

募集時点からLTを募りました。

発表者 タイトル 資料リンク
LT枠1 AtsushiIshibashi さん Alexa、〇〇を開いて -
LT枠2 Yuki Suwa AppSync を使ったアプリ開発を効率的に進める方法 Speaker Deck
LT枠3 naruohama さん AppSync 関連 -
LT枠4 rednes(どねす) さん Cloud9のモブプログラミング環境を爆速で構築する Speaker Deck
LT枠5 oracle さん amplify を勉強してみました -
LT枠6 Seiji Komatsu さん Alexa で受け付けシステム作ってみた(仮) -
LT枠7 Osadake212 さん cookpadTV のコメント配信における AppSync の導入事例 Speaker Deck
LT枠8 horsewin さん Alexaスキル開発。Node.jsからTypescript -
LT枠9 ktsukago さん GraphQL を使いこなすためのNoSQL 設計パターン 改め AppSync を使いこなすための DynamoDB 設計パターン Speaker Deck
LT枠10 karaage さん AmplifyとAppSyncとIoT Buttonで作ったリアルタイム投票システム Speaker Deck
LT枠11 waddy_u Kinesis Streams を使った Messaging パターンの実装例 Developers.IO
LT枠12 heromo さん Alexaスキルのテスト Speaker Deck

AppSync と Alexa が多め

過去の Meguro.dev でモブプログラミングをやったときも人気だったのですが、 AWS AppSync (Amplify) と Alexa に関するLTが多いです。これらに共通する特徴として、

  • 新しいサービスである
  • 環境構築や準備の手間をスキップして、やりたいことにすぐとりかかれる
  • すぐに作れるので成果が見えやすい
  • 一方、実案件でへ導入するにはハマりどころもあり、何よりテスト手法が確立されていない

というものがありそうです。LTも、「やってみた話」と「苦労話・工夫話」に大別されてました。

クックパッドさんの事例では、クッキングLIVEアプリ cookpadTV のコメント配信部分に Firebase を利用していたところ、AWS AppSync に置き換えたという貴重なお話でした。AppSync の良い点として、

  • GraphQLが使える
  • 永続化しやすい
  • ログを出せる
  • サポートがある

という点があるそうです。やはり、「何かあったときにログを調べたり、それでもわからなければサポートに問い合わせる」という手段があることは、開発者にとって安心感が違います。一方、AWS の新しいサービスにはつきものですが、

  • モバイルネイティブ向け SDK で GraphQL API がまだ対応していない
  • これにより現状アプリ側が SigV4 を生成してリクエスト行う必要がある

という課題があるようです。これは、おそらく AppSync をモバイルアプリから使う上では共通の課題だと思います。AWS Amplify など、JavaScipt 向けの機能はかなり充実してきているので、モバイル向けのSDKへの展開が期待されます。

AppSync を使ったアプリ開発を効率的に進める方法

弊社諏訪からは AppSync の開発Tipsでした。iOS、Android、そしてサーバーサイドで整合性を保ちつつビジネス要件に合わせてスキーマを変更するために、スキーマ共有フロー を設けたという話です。詳細は以下のブログを参照してください。

AWSJ 塚越さんからは DynamoDB の設計に関するありがたい話

これです。RDBMSとの目的の違いを丁寧に解説しながら、DyanmoDB ならではの設計ポイントが非常にわかりやすくまとまっています。

rdbmsvsdynamo

ポイントは、要件(=必要なクエリ)がわかった後でDynamoDBのスキーマ設計を行うこと です。確かに実際に開発する中で、あまり考えずにテーブルを作成すると、やっぱりパーティションキーとソートキーを別のものにしたい…というのはよくあります。最初にすべて決めるのは難しいと思うので、まずはアタリだけつけておいてテーブルを設計し、開発を進めながら案件固有の要件を整理して、テーブル設計を固めるようにすると良いかもしれません。

あとは、我々のように実際にアプリケーションを構築するエンジニアが、設計パターンを適用していくことで、威力を実感できると思います。ぜひ活用したいですね。

まとめ

AppSync、Alexa、Cloud9 を中心とした、比較的新しいサービスのLTが多く、とても楽しく聞けました。このあたりをプロダクションに組み込もうと思ったら、いくつかステップを踏むことになるとおもいます:

  1. とりあえず触ってみる
  2. やってみてわからなかったところ、工夫したところを共有する

    Meguro.dev は企業の垣根を超えて体現すべく立ち上がりました。モブプロで新しいサービスに実際に触れてみて、今回のようなLT大会で知見を共有するという流れをやっています。個人で作ってみたとき、プロダクションに組み込もうと頑張ったとき、様々な発見があると思います。今後も活動を通して、アプリケーションエンジニアにとって有益なコミュニティにしていきたいと思います。

    今後もイベントやります!

    meguro-dev の connpass グループとしてイベントを立ち上げていきますので、興味が湧いた方はぜひグループメンバーに参加してください!

AWS DevDay Tokyo 2018が開催されます

今年はAWSのデベロッパー向けカンファレンスが「AWS DevDay Tokyo 2018」として10月-11月に開催されます!ぜひエントリーしましょう!