Luxucomは、弊社が開発したクリエイターとファンをNFTでつなぐSNSアプリです。このシリーズでは、このLuxucomを例にしながら、SNSがどんな仕組みで動いているのかを、わかりやすく解説していきます。
Luxucomで使われている技術

Luxucomには、Django、Docker、PostgreSQL、Redis、WebSocket、IVS、ECS、Terraform……などなど、本当にたくさんの技術が使われています。
正直、横文字が多すぎて、私自身も全部を一度に思い出すのは大変です。
なのでこの動画では、自分の頭の中を整理する意味も込めて、Luxucomで使っている技術をひとつずつ丁寧に解説していこうと思います。
Luxucomの代表的なアーキテクチャ

Luxucomのアーキテクチャは大きく分けて3つの層に分かれています。
フロントエンド、アプリケーション層、そしてインフラ層です。
まずフロントエンド。
ここでは、ユーザーが操作するWeb画面や、ライブ配信用のプレイヤーなどが動いています。
次に、真ん中にあるのがアプリケーション層。
Luxucomの中心には、PythonのWebフレームワークであるDjangoがあります。
ここが、Luxucomの基本的な機能を担っています。
データはPostgreSQLに保存されていて、リアルタイムでのチャットや通知にはRedisやWebSocketを使っています。
ライブ配信はAWSのサービスであるIVS、メール通知もAWSのSESを使って実現しています。
そして、それらを動かしているのが下のインフラ層です。
インフラ環境はAWSを使用しています。
アプリケーションはECS上のコンテナで動作していて、画像やstaticファイルはS3に保存、それを高速に配信するのがCloudFrontです。
外部からのアクセスはALBが負荷分散を行います。
また、アプリのCICDにはGitHub Actionsを使っていて、構成管理はTerraform、監視やログの収集はCloudWatchで行っています。
さいごに
このように、Luxucomはこうした多数の技術で成り立っています。
今回は、全体像だけざっくりつかんでいただければOKです。
次回からは、これらの構成要素をひとつずつ詳しく解説していきます。