これは私のシナリオです。動的で静的なコンテンツを配信するための分散アーキテクチャの仕組み
マップタイルサーバーでは、さまざまなズームレベルで数千のマッピングタイルが作成されています。現在、これは1つのEC2インスタンスで実行されています。私はAWSに固執したいと思います。
現在のワークフロー - タイルの要求が来ると、nginxはそのタイルがキャッシュに存在するかどうかを確認します。タイルが存在する場合、それはそれを提供する。存在しなければ、要求をタイル作成スクリプトに渡します。タイル作成スクリプトは、新しく作成されたタイルをユーザーに提供し、将来使用するためにキャッシュします。これは、たくさんのタイルを作成する必要があるときに、動きが激しくなり始めています。
これは、タイルがs3から提供され、存在しない場合、タイルを作成してs3にキャッシュする任意の数のセロリのタスクによってレンダリングされます。
私の最初の考えは、物のタイル作成側にELBを設定し、タイルキャッシュ用にs3を設定することでした。問題は、レンダリングするためにELBに送る前にs3にタイルが存在するかどうかをチェックする方法です。 ELBの前にs3を確認するためのtry_files
ディレクティブでnginxを設定しようとしました。これはうまくいきませんでしたが、私はs3でタイルをプロキシすることができました。
私の質問は、このようなユースケースは通常AWSアーキテクチャで管理されていますか?要求が到着し、保管場所が存在しない場合は保管場所がチェックされ、作成されて返却されます。
ありがとうございました。
要求されたタイルが既にレンダリングされ格納されている可能性はありますか?これに対する答えは、ソリューションの実行可能性と効率性に影響を与えるようです。 –
ズームレベルと空間的な位置によって異なります。私たちは低レベルのタイルをプリキャッシングしているので、z0-12はキャッシュされ、静的資産として利用できます。より高いズームレベルの要求が出されると、タイルの作成は開始され、将来の使用のために保存されます。この方法では、頻繁に訪問されたエリアはすでにキャッシュされています。私が今実行している問題は、単一のマシン上のキャッシュがすべてダウンしてしまい、静的なタイルを処理できないということです。 – james