VPCを実行しており、そのネットワークのプライベート部分にあるサーバーがAmazon s3からファイルをダウンロードしてバックエンド処理を行う場合、それらのファイルを取得するために内部でS3にアクセスできますか?または、NAT経由でパブリックインターネットにアクセスし、https経由でs3ファイルをダウンロードし、そのように処理する必要がありますか?
VPCを実行しており、そのネットワークのプライベート部分にあるサーバーがAmazon s3からファイルをダウンロードしてバックエンド処理を行う場合、それらのファイルを取得するために内部でS3にアクセスできますか?または、NAT経由でパブリックインターネットにアクセスし、https経由でs3ファイルをダウンロードし、そのように処理する必要がありますか?
回答:
「インターネット」のようなユーザー名で、これを知っていることを期待します。しかし、あなたが尋ねたので...
:)
VPCは完全にプライベートです。明示的に許可したトラフィックのみがVPCの境界を通過できます。
そのため、VPC内では、外部リソースへのアクセスが必要なインスタンスは、EIPを割り当てる必要があり(この場合、AWSのインフラストラクチャを使用して外部リソースにアクセスできます)、またはNATホストを提供する必要があります(この場合、すべてのトラフィック出力独自のNAT経由のVPC)。
独自のNATホストを提供することを選択した場合、そのインスタンスでソース/宛先チェックを無効にし、NATホストを指すプライベートサブネットへのデフォルトルートを追加する必要があることに注意してください。
更新(2015-05-10): 2015年5月11日の時点で、AWSはS3の「VPCエンドポイント」をリリースしました。これにより、プロキシホストまたはNATインスタンスを経由せずにVPCから直接S3にアクセスできます。ありがたいことに、VPCの本当にプライベートな性質を尊重するため、この機能はデフォルトでオフになっていますが、AWSコンソールまたはAPIを使用して簡単にオンにすることができます。
インスタンスがVPCのパブリックサブネットにある場合:
インスタンスがVPCのプライベートサブネットにある場合:
結論として、S3にアクセスするには、インターネットにアクセスできる必要があります。
数日前から、NATまたはパブリックIPを使用せずにVPC経由でS3にアクセスできるようになりました。
AWSリージョン内でデータを転送する方法について、「出たり入ったり」したり、変更したりする必要はありません。同じ地域内のバケットへの/からの転送には料金はかかりません。ストレージの料金を支払う必要があります。