Amazon Web Services ブログ

ShootProof は写真のアップロード速度の向上に Amazon S3 Transfer Acceleration を使用

ShootProof は、写真家が作品を共有し、作品を販売し、ビジネスを成長させるのに役立つ簡単なオンラインツールを提供しています。当社は米国のアトランタに拠点を置いていますが、写真家のお客様が「どこにいても」利用できることを誇りに思っています。毎月、何万人もの写真家にサービスを提供しており、現在、38 か国にクライアントを抱えています。ShootProof は、オンラインギャラリー (18 の異なる言語で)、契約、請求書サービスをプロの写真家に提供しています。プロの写真家は、当社のアプリケーションを使用してデジタル写真を販売、共有、印刷、およびダウンロードできます。

当社のホームページは以下からご覧いただけます。

ShootProof ホームページ

この記事では、ShootProof が Amazon S3 Transfer Acceleration (S3TA) を使って世界中のお客様の写真アップロード速度を向上させている方法についてご紹介します。最初に、当社が直面した課題と AWS の IT アーキテクチャについて少しお話しします。これにより、S3TA を使用する理由がお分かりいただけることでしょう。

課題

クライアントの画像のコピーを多数保持し、数ペタバイトの規模でストレージを維持することは、多くのオーバーヘッドがかかります。当社はストレージエンジニアリングチームを構築し、コロケーション施設 (または 3 か所) でスペースを借り、そのデータセンターに多数のラックをデプロイする必要がありました。また、ディスクドライブの故障など、ハードウェアの問題を管理するためだけに人を雇わなければなりませんでした。さらに、グローバル企業として、すべての顧客が場所に関係なく一流のサービスとパフォーマンスにアクセスできるようにする方法を考え出す必要がありました。これらすべてにより、写真家のためにより良い製品を作るという当社のコアミッションから距離が開いてしまいました。当社は、お客様にとって重要なことにチームとリソースを集中させます。データセンターのハードウェアを増やすことはもちろん、スタッフの人数を増やしてもお客様にとっての真の価値を生み出しません。

モダンなデータアーキテクチャ向けの AWS のサービス

ShootProof は、創業以来 AWS を使い続けています。AWS なしでは ShootProof は存在しないと言っても過言ではありません。これは特に、Amazon Simple Storage Service (Amazon S3) に関して言えます。AWS は、事業を立ち上げて間もない頃から、ペタバイト規模の写真ファイルを S3 に保存するようになった今日まで、つまり約 10 年間、当社のビジネスをサポートしてきました。当社は AWS の IT スタックですべてを実行しています。これには、ウェブアプリケーションサービスや写真処理のための Amazon Elastic Compute Cloud (Amazon EC2) でのコンピューティングが含まれます。写真をより早くお客様に届け、待ち時間をなくすことが当社にとって重要です。そのために、バックグラウンドプロセスとして非同期ワーカーキューを使用して、S3 でファイルを自動的に変換し、いくつものサイズ変更済みファイルを作成しています。データベースエンジンについては、2015 年後半以降、MySQL での Amazon Aurora を活用してきました。また、最近、データパイプラインプロセスの一部として、データおよび分析エンジニアリングチームのデータウェアハウスとして Amazon Redshift を採用しました。

当然、ストレージには AWS を幅広く活用しています。これには、Amazon Elastic Block Store (Amazon EBS) Amazon Elastic File Service (Amazon EFS) などがあり、お客様の写真の zip ファイルの作成を基本的に並列化しています。Amazon S3 は、写真家のお客様の画像の重要なストアとして、当社の業務の中心を担っています。当社にとって、耐久性と信頼性が鍵を握っています。間違いなく、これらが最初から S3 を使い続けてきた理由です。文字通り何十億ものオブジェクトを保存し、オブジェクトを 1 つも失ったことはありません。簡単に言えば、Amazon S3 は、自社だけでは達成できないレベルのデータの耐久性と信頼性を提供してくれています。

今日、当社はログファイルのアーカイブに Amazon S3 Standard と S3 Glacier を使用しています。サムネイルなどには、S3 標準の低頻度アクセスなどのストレージクラスを使用しています。当社は常に S3 Intelligent-Tiering と他のストレージクラスを調べて、カスタマーエクスペリエンスに影響を与えずにコストを削減できるかどうかを探っています。

Amazon S3 Transfer Acceleration

ShootProof のコア機能の 1 つであるフォトギャラリーでは、ウェブアプリケーションまたは API を介して写真をアップロードする必要があります。写真の約 70% はウェブアプリケーション経由でアップロードされ、最終的には当社が選好する米国東部の AWS リージョンの Amazon S3 バケットに保存されます。

米国を拠点とするお客様は、Amazon S3 バケットに近接しているため、レイテンシーを最小限に抑えてアップロードを実行できますが、最初に立ち上げたとき、これは海外のお客様には必ずしも当てはまりませんでした。たとえば、オーストラリアのシドニーにいるお客様が us-east の S3 に直接アップロードする際は大幅なレイテンシーが発生していた可能性があります。もちろんこれは良くありませんでした。当社は、自社のアプリケーションで可能な限り最高のエクスペリエンスをユーザーに提供し、次にサポートの問題とチームがその問題に費やす時間を減らしたいと考えました。

このレイテンシーを減らし、より良い顧客体験を実現するために、ShootProof は S3 Transfer Acceleration を採用しました。S3TA ウェブページにも記載があるように、サービスは 「より大きなオブジェクトの長距離転送の場合、Amazon S3 との間のコンテンツ転送を 50〜500% ほど高速化できます」 このサービスは、S3 バケットから遠く離れた場所にホストされている広範なユーザーまたはアプリケーションを持つウェブやモバイルアプリケーションがある顧客に役立ちます。このような状況では、インターネット上でのアップロードとダウンロードの速度が遅くなり、一定しない可能性があります。これは、ShootProof が直面していた状況とまったく同じです。

S3 Transfer Acceleration エンドポイントを利用して写真をアップロードすることで、世界中のお客様が、自身の場所と転送先の S3 バケットとの間で高速で安全な長距離転送を体験できます。S3 Transfer Acceleration により、Amazon CloudFront の 200 以上のエッジロケーションを使用できるため、アプリケーションは AWS バックボーンを使用して S3 に直接接続できます。これにより、米国東部のバケットへのグローバルアップロードが改善されますリージョン。S3 Transfer Acceleration を使用すると、写真家は数秒で画像を ShootProof に送信できます。その結果、ShootProof は、アップロード速度に関連するカスタマーサポートの問題を減らすことができました。

Amazon S3 Transfer Acceleration を試す方法

当社と同じ様なニーズがある場合は、S3 コンソールで S3TA を有効にすることで使用開始できます。自社のアプリケーションから、Acceleration 対応バケットへアップロードまたはそこからダウンロードできるようにしましょう。これを行うには、次のいずれかの s3-accelerate エンドポイントドメイン名を使用します。

  • bucketname.s3-accelerate.amazonaws.com、または
  • bucketname.s3-accelerate.dualstack.amazonaws.com – IPv6 転送用。

その利点をテストしたい場合は、S3TA 速度比較ツールを使用して、所在する場所からのパフォーマンスの利点を理解することができます。こちらから完全な S3TA ドキュメントをご覧ください。

まとめ

ShootProof が AWS をどう使用しているか、特に Amazon S3 Transfer Acceleration を使用して S3 への長距離転送をどう高速化しているかについてお読みいただきありがとうございます。S3TA は、ShootProof アプリケーションを使用して写真を当社に送信し、処理、表示、およびクライアントへの配布を行う遠隔地にいるお客様にサービスを提供するのに役立ちます。S3TA は、コンテンツ転送の高速化とトラブルシューティングの最小化を通じてお客様のエクスペリエンスを向上させることにより、ShootProof でよりシームレスな操作を実現するのに貢献しています。

この記事が皆さんのお役に立つことを願っています。当社または AWS チームに質問がある場合は、コメント欄に残してください。