web-dev-qa-db-ja.com

S3ディレクトリのローカルミラーのプロキシ

自社のAmazon S3ディレクトリから大きなファイルにアクセスする需要が高まっているオフィスがあります。迅速にアクセスできることは私たちのビジネスにとって重要です。そのため、ファイルのコピーをオンサイトで保管し始める時がきたと考えています。これは私の専門分野ではないので、アドバイスをお願いします。

「通常の」キャッシュは、それ自体では十分ではありません。与えられたファイルに対する最初のリクエストでさえスピードアップしたいからです。 AWS CLIにはローカルディレクトリとS3の同期を維持する機能があるため、1つのアイデアは、トラフィックが少ない時間にスケジュールで実行し、可能であれば、そのディレクトリをキャッシュとして扱うようにプロキシを構成することです。

別のアイデアは、同様のスケジュールで、キャッシュをウォームに保つためにスクリプトからキャッシングプロキシにgetリクエストを発行することです。

注意点の1つは、S3アセットはプライベートであるため、各リクエストを行う前にURLに署名することです。つまり、プロキシは、URL 除くクエリパラメータに基づいてローカルコピーを提供できる必要があります。たとえば、これらのURLは両方とも、同じキャッシュ/ミラーリングされたファイルに解決される必要があります。

  • https://example.com/asset1.txt?signature=1
  • https://example.com/asset1.txt?signature=2

キャッシュのサイズは1桁のテラバイトになり、約300人のアクティブユーザーのトラフィックを処理します。

最後に、私の質問:

  • これらのアプローチはどちらも正気に聞こえますか?
  • 誰もが私たちが必要とする方法で構成できるプロキシソフトウェアを推奨できますか?
  • この負荷のハードウェア要件を決定するために相談できるリソースはありますか?
  • 他の考えや提案はありますか?
7
Eric Simonton

ローカルリポジトリをクラウドベースのオブジェクトストレージと同期するだけの場合は、RcloneまたはCloudBerryを検討します。 Rcloneには、クラウド間でディレクトリとファイルを同期するためのコマンドラインインターフェイスがあります。 Azure、AWS(S3とGlacierの両方)などの最も一般的なクラウドストレージで機能します。 https://rclone.org/

また、すべてのデータをクラウドにバックアップする場合は、クラウドへの追加のオフロードを使用して、仮想テープライブラリのバックアップを取る機会があります。したがって、既存のインフラストラクチャをバックアップする必要がある場合は、ランサムウェアに対応したバックアップをクラウドへの自動オフロードで取得できます。それは重複排除と圧縮を備えていますが、私の知る限り、現在、Starwindは無料で提供しています。 https://www.starwindsoftware.com/starwind-virtual-tape-library

どちらのソリューションも成熟していて信頼性が高く、必要なオプションを選択するだけで済みます。お役に立てば幸いです。

5
Stuka

要件によっては AWS Storage Gateway が必要なものを提供する場合があります。 Storage Gatewayは、オンプレミス環境に仮想マシンとしてデプロイされるAWSオファリングです。

Storage Gatewayには、潜在的に適切であるとすぐに思い浮かぶ2つのフレーバーがあります。

  • File Gateway S3バケットをNFSマウントとして提示し、透過的なローカルキャッシングを含みます。

  • ボリュームゲートウェイ-キャッシュボリュームはiSCSIターゲットとして存在し、頻繁にアクセスされるデータのローカルキャッシュも含まれます。

Storage Gatewayにはいくつかの欠点があります。

  • マルチマスターシナリオをサポートするように設計されていませんなので、ロックメカニズムはStorage Gatewayにスコープされます(基になるS3バケットではありません)。 2つのうち、マルチマスターシナリオはファイルゲートウェイが RefreshCache API呼び出しをサポートするため、オンプレミスのメタデータを更新するため、より適切です。 VMゲートウェイが最後にバケットの内容をリストしてから追加/削除/置換されたオブジェクト。

  • ボリュームゲートウェイは、基盤となるS3バケットへのアクセスを提供しません。したがって、File Gatewayはお客様が制御するS3バケットによってサポートされますが、Volume GatewayはAWSが制御するS3バケットによってサポートされます。つまり、ボリュームゲートウェイの場合、アカウントにS3バケットが表示されず、通常のS3オブジェクトとしてその中のデータにアクセスできません。 (これを裏付けるドキュメントは見つかりませんが、これが正しいと95%確信しています)

Storage Gatewayには他のタイプがあり、 AWS Storage Gatewayの仕組み について読むことができます。

Direct Connect をまだ使用していない場合は、AWSサービスへの高帯域幅、低レイテンシのアクセスに使用することを検討してください。 (私の推測では、あなたが言及したデータ量を考えると、すでにそれを使用していると思います)

2018-05-21を編集:Storage Gateway Pricing Storage Gatewayでは、基盤となるストレージ(データのサイズ+リクエスト)とデータ転送に対して課金されます。それでおしまい。ストレージにS3を使用する他のすべてのソリューションには、同じコストがかかります。

0
Alex Hague