Pinterest のスケール
V 先生から 教えて頂いたので、Instagram 同様 Django/AWS 構成の Pinterest のスケールをメモ。 Pinterest はいつものアカウント名が初めて 先取 されたサービスなので、今後使わないと思います 。 本題に入る前に、Python には The Zen of Python ( 日本語 ) という思想があります。私はこの思想を Python でのプログラミングだけでなく、インフラの構築の際も意識するように心がけています。" Simple is better than complex " です。Instagram や Pinterest のスケールを見て、この思想がもっと好きになりました。 Instagram はよりシンプルなインフラに更改していくことで、ただスケールするだけでなく、運用や変更のコストも最小限になるように最適化していると思います。結果的に Android アプリ公開等のサービス拡大時にも少ないエンジニアリングで柔軟に対応できたのかと。これはあくまでもイメージでしかありませんが、AWS 上でスケールアップできるところまでスケールアップし、限界が見えたところでスケールアウトで最小限のエンジニアリングコストをかける。インフラで解決できるところはインフラで解決しているというイメージです。Pinterest のスライドでは、インフラをシンプルに更改した過程が紹介されています。 >>> インフラの遷移 2010/05: 創設 RackSpace 小規模な Web Engine × 1 小規模な MySQL DB × 1 2011/01: AWS へ フロントに nginx を立て垂直分割、MySQL をマスタースレーブ構成に垂直分割、ヘビーな処理をタスクキューに分割、MongoDB を導入。 Amazon EC2 + S3 + CloudFront nginx × 1 Web Engine × 4 MySQL: Master × 1 / Slave × 1 Task Queue × 1 / Task Processors × 2 MongoDB × 1 2011 年後半: ターニングポイント LB, Web サーバを増加、MySQL をシャー...