Pinterest Engineeringは最近のブログ投稿で、Amazon EC2インスタンスを運用する際に直面したネットワークスロットリングの課題への対応方法を詳述した。月間5億5000万人以上のアクティブユーザーを抱えるプラットフォームとして、特に機械学習の特徴ストアであるKVStoreのような重要なサービスにおいて、一貫したパフォーマンスを確保することが重要だ。
Pinterestは、特に高トラフィック時にKVStoreでのレイテンシの増加や断続的なサービス障害を観測した。これらの問題はアプリケーションのタイムアウトや連鎖的な障害を引き起こし、Homefeedなどの機能におけるユーザーエンゲージメントに悪影響を及ぼした。原因は特定のEC2インスタンスタイプに内在するネットワーク性能の制限にあり、「最大12.5 Gbps」と表記されたインスタンスでも、実際の基準帯域幅は大幅に低く、保証されないバースト性能に依存している場合がある。ネットワーク使用量がこれらの基準を超えると、パケットの遅延や損失が発生し、アプリケーションのパフォーマンスに影響を与える。
2024年、PinterestはAWSのNitroベースのインスタンスファミリーへの移行を開始した。例えば、i3インスタンスからi4iインスタンスへ移行し、性能向上を目指した。しかし、この移行は新たな課題をもたらした。Amazon S3からワイドカラムデータベースへの大量データアップロード時に、特に読み取りレイテンシにおいて顕著な性能低下が観測され、アプリケーションのタイムアウトが発生した。この結果、2万以上のインスタンスの移行が一時的に停止された。
Pinterestはネットワーク性能の可視性を向上させることで、EC2ネットワークスロットリングを軽減するためのいくつかの重要な戦略を実施した。主なアプローチの一つは、ワークロードをより適切にサポートするために、バースト性能のみを提供するインスタンスから移行し、より高い基準帯域幅を持つEC2インスタンスを選択することだった。また、トラフィックシェーピング技術を導入し、データフローを調整してネットワーク使用量を最適な閾値内に維持可能にした。
さらに、Pinterestは複数のインスタンスにワークロードを均等に分散させることで、単一リソースの過負荷リスクを軽減した。これらの取り組みを組み合わせることで、システムの信頼性と安定性が大幅に向上し、以前はユーザー体験に影響を与えていたレイテンシの急上昇やサービス障害を効果的に最小化できた。
Pinterestの経験は、クラウドインフラの詳細、特にEC2インスタンスのネットワーク帯域幅制限の影響を理解する重要性を浮き彫りにしている。インフラを積極的に監視し調整することで、ネットワークスロットリングの課題を克服し、膨大なユーザー基盤に対してスムーズな体験を提供することに成功した。