Meguro.dev LT大会 参加レポート AWSサービスを使ってみたLT #meguro_dev
マゾンウェブサービスジャパンのオフィスにて、Meguro.dev LT大会 が開催されました。今回は大会議室にて全員集合しこれまでの Meguro.dev 振り返りも兼ねたLT大会です。弊社諏訪も発表しました。
なお、過去のイベントの様子は以下のブログを参考ください。
- Meguro.devに参加するはずが目黒で迷子になった話 #meguro_dev
- Meguro.dev #1参加レポート モブプロを始めよう #meguro_dev
- Meguro.dev #2 参加レポート AWS Amplify をモブプロで試す #meguro_dev
コンテンツ
募集時点から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 ならではの設計ポイントが非常にわかりやすくまとまっています。
ポイントは、要件(=必要なクエリ)がわかった後でDynamoDBのスキーマ設計を行うこと です。確かに実際に開発する中で、あまり考えずにテーブルを作成すると、やっぱりパーティションキーとソートキーを別のものにしたい…というのはよくあります。最初にすべて決めるのは難しいと思うので、まずはアタリだけつけておいてテーブルを設計し、開発を進めながら案件固有の要件を整理して、テーブル設計を固めるようにすると良いかもしれません。
あとは、我々のように実際にアプリケーションを構築するエンジニアが、設計パターンを適用していくことで、威力を実感できると思います。ぜひ活用したいですね。
まとめ
AppSync、Alexa、Cloud9 を中心とした、比較的新しいサービスのLTが多く、とても楽しく聞けました。このあたりをプロダクションに組み込もうと思ったら、いくつかステップを踏むことになるとおもいます:
- とりあえず触ってみる
- やってみてわからなかったところ、工夫したところを共有する
Meguro.dev は企業の垣根を超えて体現すべく立ち上がりました。モブプロで新しいサービスに実際に触れてみて、今回のようなLT大会で知見を共有するという流れをやっています。個人で作ってみたとき、プロダクションに組み込もうと頑張ったとき、様々な発見があると思います。今後も活動を通して、アプリケーションエンジニアにとって有益なコミュニティにしていきたいと思います。
今後もイベントやります!
meguro-dev の connpass グループとしてイベントを立ち上げていきますので、興味が湧いた方はぜひグループメンバーに参加してください!
AWS DevDay Tokyo 2018が開催されます
今年はAWSのデベロッパー向けカンファレンスが「AWS DevDay Tokyo 2018」として10月-11月に開催されます!ぜひエントリーしましょう!