moyashidaisuke's diary

moyashidaisuke's diary

「Meguro.dev モブプロ会#4 AWSとか使ってWebアプリ開発」に参加してきた

2018-11-10 moyashidaisukeAWSコワーキングスペース勉強会

[https://meguro-dev.connpass.com/event/106213/:embed:cite]

初参加してきました。楽しかったし刺激を受けました。

やった事

テーマ

「AWS Amplify を使って React クライアントから AppSync に認証リクエストを投げてみる」にしました。

cookpadさんがAppSyncの発表をしていて、AppSyncを触ってみたかったのでこれにしました。

[https://speakerdeck.com/wata/practical-use-of-aws-appsync-by-cookpad:embed:cite]

4人でモブプロで作りました。ご一緒いただいた方々ありがとうございました。

モブプログラミングの進め方

モブプロの概要についてはこちらが詳しいです。 [https://takaking22.com/2018/mobpro_manual/:embed:cite]

ドライバーは10分で交代するルールにしました。

PCは最初各自のものを使いましたが、途中からローカルにセキュアなkeyを置く必要があって、1台のPCを交代でさわる作戦に変えました。

また、動作させる環境は色々やろうとしましたが、結局サーバを適当にたててそこにsshして作業するようにしました。

作ったもの

完成形のイメージはこちら。

[https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/cognito-scenarios.html#scenario-appsync:embed:cite]

この図のappのところを、amplify + reactで作ります。 (Cognito、AppSyncも結局amplifyが生成してくれます)

手順はこの通り。 [https://qiita.com/ktsukago/items/1fd66a95420b631595a3:embed:cite]

AWSのサービス説明

Cognito

ユーザー認証をよろしくやってくれるサービス

AppSync

サーバレスでGraphQLの実行環境+周辺の諸々をよろしくやってくれるサービス データはDynamoDBでもいいし、例の如くLambdaも使えるので結局なんでもできる。

Amplify

AWS作成のjsライブラリ。(ライブラリなので、AWSのマネジメントコンソールには出てこない)

react、reactNative、vue、angularと組み合わせると、AWSの各種サービスにつないでごにょごにょするあたりを、よろしくやってくれる。

振り返り

モブプロミング

開発環境

以下のいずれかを予め準備しておくと良さそうです。環境作成から始めちゃうと時間もったいないです。

  • チームのメンバがsshできる適当なサーバ

    • sshの認証周りを雑にやる事になるのでセキュリティがちょっと危ないので注意
  • Cloud9

    • 開発するものによってはt2.microだとスペックが足りないらしい

所感

技術力がすごく高い方々と一緒に作業したので普通に勉強にななったし刺激を受けました。 ちょうどいい感じにみなさんの得意分野が分かれていたので、いい感じにお互いアドバイスしながら進められました。即席のチームだったのにすごい!

作ってみて

Amplifyが強すぎました。 コマンド叩いて選択してくと、サーバ側のCognitoやAppSync周りの作成をCloudFormation経由で行ってくれて、インフラ、API(GraphQL)、クライアントの認証周りが何も考えないで作られます。良い意味でレールがばっちりひかれてる感じ。

色々自動でやってくれすぎるので、ちゃんとコマンドの意味を理解して使いこなせるようになりたいです。

ひとまず何かしら動かしたいレベルのWebサービスなら、まずはこれで作り始めれば良いと思います。裏でLambda動かせるので、大体の要件は満たせるはず。

まとめ

楽しかった!次回も是非参加したい! あとAmplify勉強します!