Parse の導入事例

2014 年

Parse はモバイルアプリケーション開発者向けにクラウドベースのバックエンドサービスを提供しています。サンフランシスコを拠点とするこのスタートアップ企業は、開発者がアプリケーションの開発に集中し、インフラストラクチャについては Parse に任せられるよう、全面的なモバイルサービスを提供しています。2012 年に起業し、急速な成長を続けるこのスタートアップ企業は、2 億台以上のモバイルデバイスで実行される、180,000 件を超える Android、iOS、Windows のモバイルアプリケーション向けにサーバー管理を提供しています。

Python のチュートリアルを開始する
kr_quotemark

当社のスタックのレイテンシーはほぼ完全にフラットです。MongoDB の書き込みロックや Amazon EBS イベントによる定期的なレイテンシーのスパイクは発生していません。最もアクティブなコレクションをメモリに読み込んでデータベースのウォームアップをするためのスクリプトも準備していますが、プロビジョンド IOPS ボリュームでは使う必要がないのです。メモリのウォームアップ時間は 80% 以上短くなり、レイテンシーの長さに加えられる影響は非常に小さいものです。」

Charity Majors
Parse シニアサイトリライアビリティエンジニア

課題

Parse は高スループットで大量の I/O が必要な MongoDB クラスターを多数運用しており、スケーラビリティと速度の向上を必要としていました。Parse は顧客のユーザーアカウント管理、データストレージ、ディスクキャッシュを扱っており、使用状況は毎日変動します。サイト信頼性エンジニアの Charity Majors 氏はこう語っています。「Parse で開発されているあるアプリケーションが iTunes で取り上げられると、トラフィックはものの数時間で 3~4 倍に増加します。プラットフォームには安定性と高速性が必要です。Parse のオペレーションに問題が発生すれば、50,000 のモバイルアプリケーションの運用に問題が発生します。問題修復のために 15 分間プラットフォームを停止している余裕はありません。」

アマゾン ウェブ サービスが選ばれた理由

Parse にとって AWS は、要件を満たせるだけの完全な機能を提供できる唯一のクラウドプロバイダーです。「これまでに、MongoDB クラスターを向上させる方法について探ってきました。大量の I/O が発生するワークロードに対して予測可能な高いパフォーマンスを持つよう設計されている Amazon EBS プロビジョンド IOPS は、ニーズにちょうどフィットしました」と Majors 氏は言います。

Parse チームは、ストライプ化された 1000 のプロビジョンド IOPS ボリュームを MongoDB クラスターに使用して、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで運用しています。エンジニアは、スタックのトップにある Elastic Load Balancing を使用して、データベースと通信するアプリケーションサーバーへの接続をウェブサーバーに分配しています。

Parse は、MongoDB データベースを 1 つのプライマリデータベースと 2 つのセカンダリデータベースを含むレプリカセットで運用しています。Parse では Amazon Elastic Block Store (Amazon EBS) を使用して、各 MongoDB シャードのスナップショットを頻繁に作成し、スナップショットは Amazon Simple Storage Service (Amazon S3) バケットにアップロードされます。必要であれば、Parse は数分で Amazon S3 を使用した新規ノードを起動し、クラスターに加えることもできます。

「パフォーマンス向上のためにボリュームをストライピングしていますが、もう RAID 10 は使っていません」と Majors 氏は言います。「RAID 10 を使っているときに RAID アレイのパフォーマンスが低下した場合、問題のあるボリュームを除き、新しいボリュームを追加し、新しいアレイを構築する必要があります。Amazon S3 のバックアップからボリュームを再構築するほうが実際には速くなることがわかりました。」

Parse がモバイルアプリ開発者向けアプリケーションサービスを AWS で構築 (2:58)

Parse の AWS でのアーキテクチャ

Parse Architecture Diagram

利点

EBS プロビジョンド IOPS に移行するまでは、Parse はディスクスパイクを経験しており、エンドツーエンドで測定したレイテンシーが最大 400 ミリ秒に達することもありました。現在のエンドツーエンドのアプリケーションレイテンシーは平均 100 ミリ秒以下まで向上していると Majors 氏は推定しています。「当社のスタックのレイテンシーはほぼ完全にフラットです」と同氏は言います。「MongoDB の書き込みロックや Amazon EBS イベントによる定期的なレイテンシーのスパイクは発生していません。最もアクティブなコレクションをメモリに読み込んでデータベースのウォームアップをするためのスクリプトも準備していますが、プロビジョンド IOPS ボリュームでは使う必要がないのです。メモリのウォームアップ時間は 80% 以上短くなり、レイテンシーの長さに加えられる影響は非常に小さいものです。」

Parse では、Cassandra クラスターの実環境へのデプロイに合わせて、EBS プロビジョンドProvisioned IOPS を使用することも計画しています。「プラットフォームにダウンタイムやパフォーマンス低下を与えるような選択肢は考えられません」と Majors 氏は言います。「プロビジョンド IOPS では安定性、信頼性、低レイテンシーが実現されています。パフォーマンスが要求されるときはいつでも、AWS とプロビジョンド IOPS を使うことになるでしょう。」


Parse の導入事例について

Parse はモバイルアプリケーション開発者向けにクラウドベースのバックエンドサービスを提供しています。


使用されている AWS のサービス

Amazon EC2

Amazon Elastic Compute Cloud (Amazon EC2) は、安全でサイズ変更可能なコンピューティング性能をクラウド内で提供するウェブサービスです。開発者がウェブスケールのクラウドコンピューティングを簡単に利用できるように設計されています。

詳細 »

Elastic Load Balancing

Elastic Load Balancing は、アプリケーションへのトラフィックを複数のターゲット (Amazon EC2 インスタンス、コンテナ、IP アドレス、Lambda 関数など) に自動的に分散します。

詳細 »

Amazon EBS

Amazon Elastic Block Store (EBS) は、Amazon Elastic Compute Cloud (EC2) と共に使用するために設計された、スループットとトランザクションの両方が集中するどんな規模のワークロードにも対応できる、使いやすい高性能なブロックストレージサービスです。

詳細 »

Amazon S3

Amazon Simple Storage Service (Amazon S3) は、業界をリードするスケーラビリティ、データ可用性、セキュリティ、およびパフォーマンスを提供するオブジェクトストレージサービスです。

詳細 »


開始方法

すべての業界のあらゆる規模の企業が、AWS を使用してビジネスを毎日変革しています。AWS のエキスパートにお問い合わせのうえ、今すぐ AWS クラウドジャーニーを開始しましょう。