質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Amazon CloudFront

Amazon CloudFrontは、AWSの高速且つ高パフォーマンスなコンテンツ配信(CDN) サービス。容量の大きいコンテンツをキャッシュさせてWebサーバの負荷を軽減し、サーバダウンの防止など安定した配信が可能になります。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

2706閲覧

AWSのS3とCloudFrontについて

CyberMergina

総合スコア295

Amazon CloudFront

Amazon CloudFrontは、AWSの高速且つ高パフォーマンスなコンテンツ配信(CDN) サービス。容量の大きいコンテンツをキャッシュさせてWebサーバの負荷を軽減し、サーバダウンの防止など安定した配信が可能になります。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2016/11/16 08:15

質問概要

AWSにて既に構築しているシステムで、システムからファイルを管理する機能の実装をすることになりました。
現在、ストレージとしてS3を使うか否か、CloudFrontを使うか否かを検討しています。
ドキュメントにあらかた目を通したのですが、調査に少々自信が御座いません・・・
(料金計算ツールも入力があってるかどうか・・・)
そこで、認識が合っているかどうかご助言頂きたく思います。

調査していること

「EC2にファイルを保存し、そのファイルへ直接アクセスする」のではなく
S3を使用すると、どのような良い点・悪い点があるのか。
また、CloudFrontを使うとどのような良い点・悪い点があるのか。

現在の契約状況

  • EC2 * 3台(うち1台がメインシステム)
  • ELB(今後、負荷分散する予定)
  • Route53

大まかな利用方針

  • 国内のみ利用
  • httpsでの利用
  • ストレージ:1TB(導入1年ほどは300GBもいかないと思います)
  • リクエスト数:20,000/月(導入1年ほどは 100/月 もいかないと思います)
  • リクエスト種別:GET,DELETEのみ(できれば更新はせず、常にファイルは登録・削除にしようとしています)

現在調査した結果

【料金面のまとめ】

  • EBS(汎用SSD)とS3ならS3の方がストレージ容量が安い
  • S3とCloudFrontなら転送料金は変わらないが、CFの方がリクエスト料金が安い

ってことで、外部からの取得はCF経由してS3をストレージにするのがいい。

【良い点】

  • S3はレスポンスが早い
  • CloudFrontはアクセス元に近いリージョンにキャッシュを作成するため、

以降のレスポンスが早くなる。(S3よりも)

【悪い点?】

  • S3にアップする為の方法を習得しなくてはならない
  • CloudFrontのキャッシュに気を付けなくてはならない

以上です。
詳しい方がいらっしゃいましたら、ご助言頂けると非常に助かります。
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

まず、

「EC2にファイルを保存し、そのファイルへ直接アクセスする」

ことによる問題点から考えて見ましょう。

一つ目に、「EC2にファイルを保存する」ことによって、
ファイルの管理法(ディレクトリベースなら、1ディレクトリに入れられるファイルの制限などがありますね)や
拡張時のディスクの増やし方などについて考慮する必要があります。

二つ目に、「ファイルへ直接アクセスする」ことによって、
毎回サーバーがリクエストを処理しなければならないために、処理を分散する方法を考えることや
SSL通信であれば証明書の管理をする必要もあります。

これらの問題に対して、

  • S3 (Object Storage): 一つ目の問題に対応
  • cloudfront (CDN): 二つ目の問題に対応

という関係にあります。

すなわち、
S3はデータを保存するためのサービスであり、
cloudfrontはコンテンツを外部へ配信するためのサービスですので、
サービスで構築するネットワークの中で入るべき位置が異なります。

Client ↓ 外からアクセス [cloudfront] (キャッシュを返すことでサーバー負荷を減らし、レスポンスも早くする) ↓ キャッシュがないところへのアクセスやPOSTなどサーバーで処理する必要があるもの ↓ (キャッシュがあれば cloudfront で処理して返す) [ELB(入れるなら)] (サーバーを割り振って負荷を分散させる) ↓ 負荷分散 [EC2] (保存や削除・キャッシュされてないものを返すなど、処理を担当) ↓ 保存する必要があるデータ [S3] (データを保持)

基本的にはこのような構造となることが考えられます。

ここまで踏まえて、ご質問に戻りますと、
システムからファイルを管理するためのストレージとしては S3 の方が、より適切であると言えます。

最終的には cloudfront も導入されるかと思いますが、
一年程度はアクセスも少数であることが予想されるとのことですので、

通常のアクセス client → EC2 → client ファイルへのGETアクセス client → EC2 → (対応S3データのアドレスへリダイレクト) → (client) → S3 → client ファイルへのPOST/PUT/DELETEアクセス client → EC2 → (S3のAPIを叩く) → S3 → (API結果) → EC2 → client

こんな感じのルートになるようにしておけば、後々の拡張性など含めてスッキリした感じになるのではないでしょうか。

(ちなみに、awsにこだわらないのであれば、S3のような Object Storage サービスとして
OpenStack の Swift を使わせてくれるサービスは国内外ともに多くあります。
安定性など他の問題も考える必要はありますが、料金重視でしたらこちらの方が安くなる可能性もあります。)

投稿2016/11/16 17:14

ezaki

総合スコア204

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CyberMergina

2016/11/17 00:13

ご回答ありがとうございました! 非常にわかりやすく、曖昧だったCloud Frontの活用方法とS3の利用方法も理解できました! 今後負荷分散の予定もありますので、Cloud Frontの活用も視野に入れてみたいと思います。 > OpenStack の Swift を使わせてくれるサービスは国内外ともに多くあります。 > 安定性など他の問題も考える必要はありますが、料金重視でしたらこちらの方が安くなる可能性もあります。) 安全性や実績を付けるという意味でAWSを社内では選択すると思われるのでS3にしておこうと思います! 情報ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問