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

こんにちは。
前回の「LINE×Salesforce」システム構成のはなしでAWSでメッセージサーバーを構築するというお話をさせていただいたと思います。
今回はそのメッセージサーバーをどのような構成にしたかをお話いたします。
まずは何が必要か考えるためにLINE@の設定を見てみます。
LINE developers ボットを作成する【公式】
https://developers.line.me/ja/docs/messaging-api/building-bot/
Webhook URL ※SSLのみ対応
これは必須ですが、昨今SSL/TLSは必須なので問題ないでしょう。
セキュリティを設定する(任意)
任意となっていますがもちろん設定します。
上記の条件に加えて前回の要件を以下にまとめました。
- 常時受信可能なサーバー(要件:メッセージを送受信できること)
- メッセージ用DB(要件:メッセージを蓄積できること)
- SSL/TLS を使用
- IPアドレスの固定
これらを考えると
データベース、サーバー、ストレージが必要そうなです。
サーバーはEC2
ストレージはS3
問題はデータベースです。
AWSにはたくさんのデータベースサービスがあってどれを使うか迷います。
- RDS リレーショナルデータベース
- DynamoDB Key-Valueストア
- ElastiCache メモリキャッシュ
- Redshift データウェアハウス
今回はすべてのメッセージ蓄積するので、データ量が増えるであろうことと、
レプリケーション等も考慮しておきます。
製品の詳細 – Amazon DynamoDB(NoSQLデータベース)|AWS
シームレスなスケーリング
自動的なスループットとストレージのスケーリングが実現します。
高可用性
リージョン内の 3 つの設備全体で同期データレプリケーションを自動的に行います。
LINE@ Messaging API とのリクエスト/レスポンスもJSONなのでDynamoDBにします。