はじめに
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でのインフラ構成図は下記の通りです。
- 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をアップグレードしたい人もしたくない人もエンジニアを募集中です。
詳しくは下記を参照ください。では、メリークリスマス。