お問い合わせ

SNSはどうやって動いてる?-全体構成を図で解説-【Luxucomを支える技術 #1】

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です。

次回からは、これらの構成要素をひとつずつ詳しく解説していきます。