AWS Startup ブログ

【週刊 Ask An Expert #55】Web アプリにチャット機能を追加する4つの方法 – 先週の #AWSLoft で受けた質問をざっくり紹介!

こんにちは、スタートアップ ソリューションアーキテクトの塚田 (Twitter: @akitsukada) です。

AWS Amplify というサービスが好きなんですが、最近は日本のコミュニティの方からの Pull Request や Issue などが盛り上がりつつあって嬉しい限りです。

AWS Japan Developer Advocate の @watilde をチェックしていると最新情報を把握できたり、 Issue の登録や Pull Request をサポートしてくれたりするので、Amplify やその OSS 活動に興味のある方は見てみてください。

https://twitter.com/watilde/status/1377850604278620168
それでは本題にもどって、今日も先週いただいた質問から、執筆者の独断と偏見によりいくつかの質問をピックアップしてざっくり解説していきたいと思います。

あなたも気軽に? Let’s Online Ask An Expert

週刊 Ask An Expert #55 (2021/04/12〜2021/04/16)

Q. Amazon DynamoDBを採用する場合の設計の考え方を聞きたい。RDB、リレーショナルデータベースとの差異を教えてほしい。

こちらの資料を見ながらお話しました。

【イチから理解するサーバーレスアプリ開発】 サーバーレスアプリケーション向きの DB 設計ベストプラクティス 20190905版

Q. Webアプリケーションにチャット機能を実装したい。

以下のパターンに分けて実装方法を紹介し、議論しました。

  1. Amazon API Gateway の WebSocket API を利用する
  2. AWS AppSync を利用する
    1. フロントは AWS Amplify で実装する
  3. Amazon Chime SDK Messaging で実装する

Amazon API Gateway は、 WebSocket API をサポートしています。マネージドでスケーラブルな WebSocket エンドポイントを提供し、自由にバックエンドを実装することができます。

20190514 AWS Black Belt Online Seminar Amazon API Gateway

AWS AppSync は、マネージドの GraphQL サービスです。GraphQL なので、Subscriptionによるリアルタイムなメッセージングがサポートされており、チャット機能の実装は代表的なユースケースの一つです。

 

GraphQL入門 (AWS AppSync)

また、AppSync を利用する際の設定およびフロントエンドには AWS Amplify を利用していただくことができます。

20200520 AWS Black Belt Online Seminar AWS Amplify

Amplify を使って AppSync の設定や実装を行う方法は、 Amplify SNS Workshop を見てみてください。Twitter ライクなソーシャルメディアアプリを React で実装するチュートリアルです。

そして最後に、Amazon Chime SDK for Messaging を使ってチャット機能を実装することもできます。

参考:Amazon Chime SDK for Messagingを使ってアプリケーションにチャット機能を組み込む方法 | Amazon Web Services ブログ

# と、色々チャット機能の実装パターンについて話してきましたが、判断基準や向き・不向きなど、一度このトピックだけでまとめてもいいのかもしれないと思います。もし需要があればぜひ筆者(@akitsukada)までフィードバックください!

Q. React Native でモバイルアプリを実装中。ユーザーにモバイルプッシュ通知とメールを送信したい。

まず、モバイルプッシュ通知およびメール送信を行うサービスとして Amazon Pinpoint について解説しました。

Amazon Pinpoint を中心としたカスタマーエンゲージメントの全体像 / Customer Engagement On Amazon Pinpoint

AWS Amplify を利用して、モバイルプッシュ通知を送る方法についてドキュメントをご紹介しました。

また、デバイス側の属性を設定する際に Amplify.configure() メソッドを使ってメールアドレスや属性を Pinpoint のエンドポイントとして登録することができ、Amazon Pinpointのマネジメントコンソールから動的にセグメントを作成し、モバイルプッシュやメールを送信することができることをお話しました。

あるいは、上記スライド資料にあるように、

デバイス側での実装や設定をすることなく、CSVやJSONファイル送信先のアドレスをリストし、Pinpoint にインポートすることでシンプルにモバイルプッシュやメールを送信することもできることをご紹介しました。

週刊 Ask An Expert まとめ、今回はここまで

最後までお読み頂きありがとうございます。

冒頭に書いたように、執筆者の独断により興味深かった質問を選び、かつざっくり要約して記載しています。実際にはより具体的な質問をより多く頂いていますが、様々なご相談があることが伝わっていれば幸いです。まだ Online Ask An Expert をご利用になったことがない方も、ぜひ一度お気軽にご利用ください。

※ Online Ask An Expert のご利用方法、簡単 4 ステップはこちらからご確認いただけます。


 

このブログの著者

A author image of Aki Tsukada塚田 朗弘(Aki Tsukada
Head of Startup Solutions Architect, Japan.
AWS Amplify や AWS Chalice が好き。
これまでの執筆記事はこちら

Twitter: @akitsukada