/note/tech

Instagramはいかにしてステートフルサービスを分割したか

先日開催されたLarge Installation System Administration (LISA) 2018 Conferenceで、InstagramのプロダクションエンジニアのSherry Xiao氏は、自身のチームが、米国と欧州にまたがるデータセンタ間でInstagramのサービスを分割した方法について説明した。

Instagramのスタックは、Django、Cassandra、分散データストアのTAO、Memcached、非同期ジョブのCeleryを中心に構成されている。データストレージスペースの制約を解決するためには、サービスを米国と欧州で分割する必要があった。分割に際しては、Cassandraのクォーラム(quorum)要求のレイテンシの高さ、データローカリティのためのデータセットのパーティショニング、EUリージョン内のフェールオーバ、TAOのマスタレプリカの同期といった課題を克服する必要があった。