「LINE×Salesforce」AWSの構成を考える

こんにちは。

前回の「LINE×Salesforce」システム構成のはなしでAWSでメッセージサーバーを構築するというお話をさせていただいたと思います。

今回はそのメッセージサーバーをどのような構成にしたかをお話いたします。

まずは何が必要か考えるためにLINE@の設定を見てみます。

LINE developers ボットを作成する【公式】
https://developers.line.me/ja/docs/messaging-api/building-bot/

Webhook URL ※SSLのみ対応

これは必須ですが、昨今SSL/TLSは必須なので問題ないでしょう。

セキュリティを設定する(任意)

任意となっていますがもちろん設定します。

上記の条件に加えて前回の要件を以下にまとめました。

  1. 常時受信可能なサーバー(要件:メッセージを送受信できること)
  2. メッセージ用DB(要件:メッセージを蓄積できること)
  3. SSL/TLS を使用
  4. IPアドレスの固定

これらを考えると

データベース、サーバー、ストレージが必要そうなです。

サーバーはEC2
ストレージはS3

問題はデータベースです。
AWSにはたくさんのデータベースサービスがあってどれを使うか迷います。

  1. RDS リレーショナルデータベース
  2. DynamoDB Key-Valueストア
  3. ElastiCache メモリキャッシュ
  4. Redshift データウェアハウス

今回はすべてのメッセージ蓄積するので、データ量が増えるであろうことと、

レプリケーション等も考慮しておきます。

製品の詳細 – Amazon DynamoDB(NoSQLデータベース)|AWS

シームレスなスケーリング

自動的なスループットとストレージのスケーリングが実現します。

高可用性

リージョン内の 3 つの設備全体で同期データレプリケーションを自動的に行います。

LINE@ Messaging API とのリクエスト/レスポンスもJSONなのでDynamoDBにします。