現在、AWSインフラストラクチャを利用して最初のウェブアプリを実装し、基本を学んでいます。設計上の問題が発生したため、問題を説明するために次のシナリオを考え出しました。
WebサイトをPDFとして保存/印刷し、S3に保存するWebアプリを作成していたとします。フロントエンドには単一のフォームがあります。ユーザーは、PDFに保存するサイトのURLを入力し、[送信]をクリックします。アプリは、指定されたURLのページをPDFに印刷し、ファイルをユーザーに提示する必要があります。
アプリをスケーラブルにするために、[送信]をクリックすると、処理するURLを含むSQSメッセージがキューに送信されることを想像しました。その後、多数のワーカーがこのキューから消費し、PDFを作成してS3に保存し、S3キー/パスをSimpleDBに保存します。私が抱えている問題は、ワーカーがWebアプリに処理が完了したことをどのように通知するかです。
デザイン例:
WebアプリはS3キーのエントリが表示されるまでSimpleDBを継続的にポーリングできると思いますが、このソリューションは少し不器用に見えます。これはパターンであると私は感じます/問題は一般的に遭遇しなければなりません。誰かがこれに対処するための一般的な方法を提供できますか?
さらに、クラウドの一般的なデザインパターンに推奨されるリソースは非常に有益です。