[解決済み] S3 - プリフィックスとは何ですか?そして、どのようなRatelimitsが適用されますか?
質問
s3 prefix とはいったい何なのか、また、amazon の s3レート制限の公開 :
Amazon S3は、高いリクエストレートに対して自動的にスケーリングします。例えば アプリケーションは、バケツ1つにつき1秒間に少なくとも3,500のPUT/POST/DELETEおよび5,500のGETリクエストを達成することができます。 GETリクエストを1秒間にバケット内のプレフィックスごとに達成できます。バケット内のプレフィックス数には制限がありません。 バケット内のプレフィックス数には制限はありません。
プレフィックスとは何ですか?
プレフィックスにはデリミタが必要ですか?
すべてのファイルを "ルート" レベルで保存するバケットがある場合(プレフィックス/デリミターなしの完全にフラット)、それは単一の "prefix" とみなされ、上記のレート制限の対象となりますか?
私が解釈している方法は amazon のドキュメントでは を読む限り、このケースに該当し、フラット構造は単一の "prefix"と見なされるように思われます。(つまり、上記の公表された料金制限の対象となります)
あなたのバケット(管理者が作成したもの)が、次のようなオブジェクトキーを持つ4つのオブジェクトを持っているとします。 以下のオブジェクトキーを持っているとします。
開発/プロジェクト1.xls
財務/計算書1.pdf
プライベート/タックスドキュメント.pdf
s3-dg.pdf
s3-dg.pdf のキーはプレフィックスを持たないので、そのオブジェクトはバケツのルートレベルに直接表示されます。 バケツのルート レベルに直接表示されます。Development/ フォルダを開くと、Projects.xlsx が表示されます。 フォルダを開くと、その中に Projects.xlsx オブジェクトが表示されます。
上記の例では、s3-dg.pdfは他の接頭辞(Development/Finance/Private)のそれぞれと異なるレート制限(5500 GET requests /second)を受けるのでしょうか?
さらに混乱するのは、amazon が最初の N バイトをパーティション キーとして使用し、高カーディナリティ プレフィックスを使用することを奨励しているというブログをいくつか読みましたが、それが "flat file structure" を持つバケットとどのように相互作用するかがわからないのです。
どのように解決するのですか?
確かに、告知が矛盾しているように見えますね。正しく書かれていないだけで、情報は正しいのです。要するに
- 各プレフィックスは 1 秒間に最大 3,500/5,500 リクエストを達成できるため、多くの目的では 仮定 は、複数のプレフィックスを使う必要はないだろうということです。
- プレフィックスはオブジェクトの場所の全パス (最後の '/' まで) とみなされ、最初の 6-8 文字だけではハッシュされなくなりました。したがって、1秒間に最大2回のリクエストを達成するためには、データを任意の2つの"フォルダ"に分割するだけで十分です。(要求が 2 つの間で均等に分割される場合)
参考までに、私の説明要求に対するAWSサポートからの回答は以下の通りです。
Orenさん、こんにちは。
AWSサポートにご連絡いただきありがとうございます。
S3リクエストレートのパフォーマンス向上に関するAWSの投稿をお読みになったとのことですが に関するAWSの投稿をお読みになり、この発表に関して追加のご質問をお持ちのようですね。 ご質問をいただきました。
このアップグレードの前に、S3は100 PUT/LIST/DELETEリクエスト/秒、300 GETリクエスト/秒をサポートしていました。 秒、300 GET リクエストをサポートしていました。より高いパフォーマンスを実現するために ランダムハッシュ/プレフィックススキーマを実装する必要がありました。昨年から リクエストレートの上限は、PUT/POST/DELETEが3,500件/秒、GETが5,500件/秒に増加しました。 GETリクエスト/秒に増加しました。この増加は、多くの場合、アプリケーションにとって十分なものです。 プレフィックスをランダム化することなく、503SlowDown エラーを軽減することができます。 プレフィックスをランダム化することなく
しかし、新しい制限値で十分でない場合は、プレフィックスを使用する必要があります。 を使用する必要があります。プレフィックスには決まった文字数はありません。それは、バケツ名とオブジェクト名の間にある任意の文字列 バケツ名とオブジェクト名の間にある任意の文字列です。
- バケット/フォルダ1/サブ1/ファイル
- バケツ/フォルダ1/サブ2/ファイル
- バケット/1/ファイル
- バケット/2/ファイル
オブジェクト 'file' の接頭辞は次のようになります。
/folder1/sub1/
,/folder1/sub2/
,/1/
,/2/
. この例では、4 つの接頭辞に均等に読み込みを分散させると この例では、4 つのプレフィックスすべてに読み込みを均等に分散させると、22,000 リクエスト/秒を達成できます。 秒に達成できる。
関連
-
[解決済み] Amazon S3のファイルやフォルダの名前を変更する方法は?
-
[解決済み] RDS コンソールで Aurora の読み取りレプリカを作成するオプションが表示されない
-
[解決済み] AWS-CLI: autoscalinggroupsをリストダウンする方法
-
[解決済み] スケジュールされたイベントソースをトリガーとするラムダ関数を設定するには、terraformを使用します。
-
[解決済み] RDS は、以下の組み合わせでの DB インスタンスの作成をサポートしていません。
-
[解決済み] List<AWS::EC2::Subnet::Id> 型のパラメータをネストしたCloudFormationテンプレートに渡す。
-
[解決済み] DynamoDB Upsert - Update or Create?
-
[解決済み] AWS CLIツールからAWSアカウント番号を取得する簡単な方法とは?
-
[解決済み] amazon dynamodbのパーティションキーとソートキーの違いは何ですか?
-
[解決済み] Cloudfrontで静的にホストされたWebサイトのサブディレクトリのデフォルトルートオブジェクトを設定するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】あなたのWSGIPathは、存在しないファイルを参照しています。
-
[解決済み] AWS::CloudFormation::Init どのように動作するのでしょうか?
-
[解決済み] クラウド形成リソース作成における複数条件
-
[解決済み] エラー: networkMode 'awsvpc' が指定された場合、ネットワーク構成を提供する必要があります。
-
[解決済み] スケジュールされたイベントソースをトリガーとするラムダ関数を設定するには、terraformを使用します。
-
[解決済み] ec2 インスタンスのステータスチェックに失敗しました
-
[解決済み] 新しいIAM管理者ユーザーに "この操作を実行する権限がありません "と表示される
-
[解決済み] AWSのロールを "アサイン "するとはどういうことですか?
-
[解決済み] `aws s3 cp` vs `aws s3 sync` 動作とコスト [終了しました]。
-
[解決済み] Amazon API GatewayからAWS Lambdaにクエリストリングやルートパラメータを渡す方法