LoginSignup
8
10

1,800億フォロワーを分析するBitStarのインフラ構成

Last updated at Posted at 2023-12-25

はじめに

BitStarのCTOの山下です。
BitStarではYouTube, TikTok, Instagram, X (旧Twitter)等の各SNSプラットフォームのデータを構築しています。

YouTubeでは総登録者数230億人、チャンネル数300万件、動画8,000万件、コメント2億件からChatGPTや機械学習用いてデータ提供をしています。
同様にTikTok 670億・Instagram 800億・X (旧Twitter) 56億 計約1,800億フォロワー分のデータを収集し分析した情報を提供しています。

もちろん地球の人口は約80億人なので、地球人口ベースで1人が22フォローしている計算になります。
インターネット人口は約50億人ともいわれているので1人が36フォローしている計算にもなります。

そんな日々フォロワーが増加する世界を補足し続けているBitStarのインフラ構成を説明します。

インフラ構成

AWS構成概略

大前提BitStarではAWSを利用しています。
AWSでのインフラ構成図は下記の通りです。

image.png

  • Route 53: DNS
  • Elastic Load Balancer: WodpressのURLのルーティングやStagingのルーティングを行っています。
  • EC2: バッチサーバー2台、Webサーバー2台、Staging、Wordpress環境
  • CloudWatch: サーバーの死活監視やパフォーマンスやリソースの監視をしています。
  • Aurora: 基本すべてのデータをDBに格納しています。600GB以上のデータを格納しています。
  • ElastiCache: Redisサーバーで使っています。ランキングやキャッシュでの利用に使っています。
  • S3: 各種ファイルアップロード等に使っています。
  • OpenSearch: 全文検索エンジンに使っています。約200GB分のドキュメントを格納しています。
  • Recognition: 画像解析に使っています。
  • Comprehend: テキストからの感情分析に使っています。

バッチサーバーについて

特にBitStarではデータ収集や分析・解析をすることが非常に多いのでウェブサーバーよりもバッチサーバーのほうがスペックが高く常に稼働しています。

よく使ってる機能

ChatGPT: ChatGPTを活用した業務効率改善に利用しています。
cld3: Googleのオープンソースの言語判定ライブラリです。インフルエンサーの配信言語の判定に活用しています。

インフラ沿革

1. 開発環境の統合

ローカル環境に直接サーバーを立てていたので、AWSのEC2のインスタンスを各個人に配布してそこで本番環境と同じサーバー環境を用意しました。DBも各個人で立てていたのですが、各種SNSのデータ収集・分析の為、開発用の共通DBを用意しました。

2. 2度のRailsのアップグレード

毎度大変苦労しながらアップグレードを実施しています。
本日アップデートされたRuby 3.3.0をはじめRails 7系にも今後アップグレードしていきます。
RubyはRailsにアップグレードするため実際には何回にも分けてマイナーアップグレードを実施しています。

Ruby:

  • 2.2.0->2.3.4
  • 2.3.6->2.4.5
  • 2.5.7->2.7.1
  • 2.7.6->3.1.4

Rails:

  • 4.2.0->5.1.3
  • 5.1.0->5.2.0
  • 5.2.8->6.1.7

3. MySQLサーバーからAuroraへの切り替え

データ量が多くなったりアクセス頻度や集計が多くなってサーバー負荷が増えてしまったのでMySQLよりも性能の高いAuroraに移管しました。
AuroraにすることでIOPs課金になりDBサーバーでのボトルネックは基本発生しなくなりました。

4. 開発環境の見直し

Intel Macだとリソースの兼ね合いでDocker環境での構築が難しかったのですが、M1 Macに切り替えることでメモリも増えた為ローカル開発環境でDocker基盤の構築整理をしました。
よって全員M1に切り替えましたし、VSCodeでの開発環境も標準化できました。

その他利用言語/サービス一覧

下記はBitStarで採用しているプログラミング言語やライブラリやサービスの一覧になります。
なるべく使っている順に掲載しているつもりです。

プログラミング言語

  • Ruby
  • TypeScript
  • Python
  • JavaScript
  • Node.js
  • Google Apps Script
  • Objective-C

フロントエンドフレームワーク・ライブラリ

  • React
  • Next.js
  • Redux
  • Webpack
  • Sass/SCSS
  • jQuery
  • Selenium
  • Bootstrap

バックエンドフレームワーク・ライブラリ・ミドルウェア

  • Ruby on Rails
  • Slim
  • Rspec
  • Pandas
  • Puma
  • OpenSearch
  • NGINX
  • Redis
  • MySQL

Amazon Web Services

  • EC2
  • S3
  • RDS/Aurora
  • ElastiCache
  • OpenSearch Service
  • Route 53
  • CloudWatch
  • CloudFront
  • SES
  • SNS

Google Cloud Platform

  • Cloud Natural Language
  • Cloud Storage
  • Cloud SQL
  • BigQuery
  • Cloud Functions
  • Firebase
  • Microsoft Azure
  • SQL Database

モニタリング・アナリティクス

  • Bugsnag
  • Google Analytics
  • NewRelic
  • Kibana

技術系その他(CI、検索エンジン、コード管理)

  • ChatGPT
  • GitHub
  • ZenHub
  • Elasticsearch
  • cld3
  • CircleCI
  • Docker
  • Stripe
  • WordPress
  • SendGrid
  • MailChimp
  • Mandrill
  • Google Tag Manager

デザイン

  • Figma
  • Adobe XD

ビジネスツール・コミュニケーション

  • Slack
  • Google Meet
  • zoom
  • Google Workspace
  • Microsoft 365
  • Teams
  • Zapier
  • Notion
  • Trello
  • Chatwork
  • Miro

おわりに

BitStarでは絶賛Ruby/Railsをアップグレードしたい人もしたくない人もエンジニアを募集中です。
詳しくは下記を参照ください。では、メリークリスマス。

8
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
10