2016-04-17 11 views
1

私はAWSの初心者です。私は既にEC2、ELB、S3、およびCFの設定方法を知っています。複数インスタンスをクラウドフロントの起点とするAWS ELB

複数のインスタンス(instance0とinstance1)を持つELBがクラウドフロントの起点として設定されている場合、クラウドフロントリクエストがどのように処理されるかについて私は心配しています。

http://distributionId.cloudfront.net/profile_pic_1.png

を初めて、要求はELBに行く:

要求は、次のようなCloudFrontのエッジに来て考えてみましょう。 ELBは要求をinstance0またはinstance1に渡します。しかし、 "profile_pic_1.png"はinstance1にのみ存在します。だから、このような状況でCFから404エラーを得る可能性はありますか?

私の目的:アップロードサーバーを作成する必要があります。したがって、ELBの後ろにアップロードサーバーのインスタンスがたくさんあります。そのELBはCFの起源として設定されています。ユーザーが写真をアップロードすると、パブリックアクセスでインスタンスのストレージに一時的に保存されます。アップロードが完了すると、アップロードされた画像のクラウドフロントURLをユーザーに提供します。この場合、ユーザーはCFから適切な応答を得ますか?

答えて

4

初めてリクエストがELBに送信されます。 ELBは、要求を instance0またはinstance1に渡します。しかし、 "profile_pic_1.png"は instance1にのみ存在します。だから、この状況でCFから404 エラーが発生する可能性があります。

はい、そのインスタンス内の画像の代わりに404応答を取得CloudFrontは50%の確率が存在するであろう、とCloudFrontを単にクライアントに沿ってそのエラー応答を渡すことになります。ロードバランサの背後に別々のコンテンツを持つインスタンスを配置する必要はありません。

デザインに欠けているものは、AmazonのS3サービスです。すべての画像をEC2サーバーではなくS3にアップロードする必要があります。また、S3から直接画像を取り込むようにCloudFrontを設定する必要があります。

+0

こんにちはマーク...おそらくあなたは私の目的を読んでいます。私はS3のバケットを使用することができます知っている。 S3バケットに保存するには、まずec2インスタンスにアップロードしてから、ec2インスタンスからS3バケットに転送する必要があります。そうじゃない?フォームクライアントをS3バケットに直接アップロードする方法があります。その場合、クライアントはS3資格を持っていますが、それは受け入れられません。この場合、あなたのアドバイスは何ですか? (Node.JSをバックエンドとして使用しています) –

+0

必要に応じてEC2インスタンスを使用してアップロードできます。または、事前に署名されたS3のアップロードURLを使用して、AWSの資格情報を公開せずにS3に直接アップロードすることもできます。いずれにせよ、S3を介して画像を提供することは、依然として好ましいことになるだろう。 –

関連する問題