LINE API Use Case

「GDLプラットフォーム」の技術事例 | 開発コストと柔軟性の両立で業務ロジック開発に集中

システムの解説

サービスにおけるシステムデータの利活用

​LINE公式アカウントやLINEミニアプリ内でユーザーが取った行動を極力データベースに保存する※ことで、より繊細なセグメント管理が可能なようにしています。セグメントを適切に作成できるようになることで、ユーザーに適切な情報を配信できるだけではなく、メッセージ送信のコスト削減にも役立ちます。
※LINEアカウントと紐づいた行動データの取得・活用にはユーザーの許諾が必須となります。

サービスが多様なAWSを利用

長年AWSを利用して開発しているため、IaCを含めたインフラ構築の資産が豊富なことや、サービスが非常に多様であるため、AWS上で全てのサービスが揃うことも魅力です。

クラウドインフラのランニングコスト

AWSのランニングコストで費用がかかる部分はAmazon Elastic Compute Cloud(以下、AWS EC2)・Amazon Elastic Container Service(以下、AWS ECS)・Amazon ElastiCache(以下、AWS ElastiCache)、Amazon Relational Database Service(以下、AWS RDS)等の常時起動タイプのサービスです。弊社では機能検証用のステージング環境、本番サービス稼働用の本番環境の2つの環境を標準で用意しており、特に開発環境においてランニングコストを削減する工夫をしています。取り組んでいるコスト削減の例を以下3つご紹介させていただきます。

1つ目はステージング環境・本番環境で共通して使用している「AWS EventBridge」です。
AWS EventBridge は、イベントを使用してアプリケーションコンポーネント同士を接続するイベント駆動型アーキテクチャを実現できるサーバーレスサービスです。イベント駆動型アーキテクチャとは、イベントの発信と応答によって連携する、ゆるやかに結合されたソフトウェアシステムを構築するスタイルです。イベント駆動型アーキテクチャは、俊敏性を高め、信頼性が高くスケーラブルなアプリケーションを構築するのに役立ちます。 弊社のサービスでは、AWS EventBridgeのスケジューラーで自動停止するスクリプトを実行することでによって、開発に必要な時間帯以外はサービスを停止しています。

2つ目は「AWS ECS」です。AWS ECSは、コンテナ化されたアプリケーションを簡単にデプロイ、管理、スケーリングできる、完全マネージド型のコンテナオーケストレーションサービスです。
ランニングコストは必要なリソースの選択や使用量に大きく左右されます。弊社ではAWSの「Fargate Spot」と呼ばれる、コスト効率を重視しながらコンテナワークロードを実行するためのオプションを利用してコスト削減しています。

3つ目は「AWS ElastiCache」です。AWS ElastiCacheは、分散型インメモリキャッシュ環境を簡単に設定、管理、スケールアップすることができるマネージド型サービスです。このサービスは、アプリケーションのパフォーマンスを向上させる、高速なインメモリキャッシュを提供します。 インメモリキャッシュは、データベースからのデータ取得よりもはるかに高速にデータを取得できるため、頻繁にアクセスされるデータをキャッシュしておくことで、アプリケーションのレスポンス時間を大幅に改善することが可能です。これにより、アプリケーションのパフォーマンス向上や、データベースへの負荷軽減が期待できます。転送するデータ量やインスタンスを実行する期間等、いくつかの要因によってコストが左右されます。弊社は開発環境はAWS EC2上にRedisインスタンスを構築することで代用しています。

インフラを支える運用ツール

インフラを支える運用ツールとして、 Infrastructure as Code (以下、IaC)にAWS Cloud Development Kit(以下、AWS CDK)を採用しています。AWSインフラ構築にコードを利用できるため、AWSリソースをプログラム的に管理することができます。
AWS CDKの言語にはTypeScriptを採用しています。これにより開発ツール(VS Code) で型を推測してくれることでコーディングが効率的になる上、型チェックにより実行まで誤字に気が付かないということがなくなります。また、プログラムで記述できることにより、ステージング環境・本番環境などの環境差異も簡単に書き分けることができます。過去に様々なツール(CloudFormationテンプレート, Terraform等)を利用してAWSを構築した経験がありますが、現時点ではAWS CDKが一番良いツールだと感じています。

今後どうしていきたいか?

様々な企業様にGDLプラットフォームをご提供する中で機能拡充してき、既存のお客様にも継続的な機能追加による利益を得てほしいです。

利用しているAPIのリンク

お問い合わせ先

AWSやChatGPTを活用した他ユーザー導入事例