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

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

ただいまの
回答率

90.51%

  • AWS(Amazon Web Services)

    2414questions

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

  • HTTPS

    302questions

    HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

S3に置いてある画像をCloudFrontを使用してhttps通信で取得する方法

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 1,062

Hiroooo

score 48

現状のAWSの構成はRoute53→ELB→EC2→RDSという構成に加えて、画像だけS3に直接取得しにいくものになっていて、ELBにACMで取得したSSLを設置しているのですが、画像に関してはS3に直接取りにいっているためにhttp通信となり、developerツールのコンソールでMixed Contentという警告が表示されてしまします。

そこでhppts通信の対応と表示速度の向上も兼ねて、CloudFrontを使用しようと試しているのですが、うまくいかないため、助言いただけると嬉しいです。

【現状の設定】
《CloudFront》
・S3のバケットをオリジンサーバーに指定
・Alternate Domain Names (CNAMEs)をcdn.img.example.comに指定
・SSL証明書はDefault CloudFront Certificate (*.cloudfront.net)を選択

《Route53》
・Name「example.com」に対してAレコードのAliasにELBのDNS名を指定
・NSとSOAの設定については初期設定のまま

(これ以降エラーが発生)
・Name「example.com」に対してAレコードのAliasにCloudFrontのCNAMEsに設定したcdn.img.example.comを入力
→「The record set could not be saved because:- Alias Target contains an invalid value.」というエラーが表示される

・Name「cdn.img.example.com」に対してAレコードのAliasにCloudFrontのCNAMEsに設定したcdn.img.example.comを入力
→「The record set could not be saved because:- Alias Target contains an invalid value.」というエラーが表示される

そもそもAレコードのAlias Target選択時にCloudFront distributionsがNo Targets Availableになっていて、これもなぜだかわかりません。

自分なりにいろいろ調べながらやってみたのですが、うまく設定できないため、教えていただけると助かります。
また、情報が不足していましたら、その点もコメントいただければ幸いです。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

私もはまりましたが、ネットで調べるとディストリビューション作成時にOriginal Domain NameにはサジェストされるS3のドメインではなくS3のバケットプロパティの静的ウェブサイトホスティングサービスに表示されるエンドポイントのアドレスを設定するというのをみつけそれを試したらできました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/15 21:56

    ご回答いただきありがとうございます。
    Original Domain Nameの設定をいただいたものに変更したら、Route53でAレコードのAlias Target選択時にCloudFront distributionsが表示されるようになりました。

    私はエンジニアではなく、この後の設定も少しつまづいてしまったので、この後の設定についても少しお聞きしてよろしいでしょうか?
    もちろん本来は自分で試してみてもできなく、どうすれば良いか分からない時にお聞きするべきだと思うのですが、エンジニアでなくこのコード修正が必要な場合はまた時間をかけて調べていろいろ試行錯誤する必要があるので、よろしければあらかじめこの後の手順についても教えていただけますと幸いです。

    1. example.comのAレコードのAlias Targetは1つしか紐づけることができないため、CloudFrontのdistributionはcdn.example.comなどのサブドメインのAレコードのAlias Targetに設定する
    (example.comのAレコードのAlias TargetにCloudFrontのdistributionを設定しようしたらすでに設定されているというエラーが表示されたのでできないと思っているのですが、もしできる方法があれば教えていただけると嬉しいです)

    2. cdn.example.comなどサブドメンを使用した場合、CloudFrontを経由するため、コードの画像取得部分を書き換える。
    (具体例)
    ・変更前:http://example.s3-website-ap-northeast-1.amazonaws.com/profiles/user-icon-1.png
    ・変更後:http://cdn.example.com/profiles/user-icon-1.png

    こちらであっていますでしょうか?
    少しでも間違っている箇所がありましたらご指摘いただければと思います。

    またSSLに関して、ELBの方ではACMでexample.comで取得したものを設置しているのですが、CloudFrontはデフォルトの Default CloudFront Certificate (*.cloudfront.net)を設置していればよろしいのでしょうか?
    この点についてもアドバイスいただけると嬉しいです。

    キャンセル

  • 2017/03/16 05:54

    Cloud Frontは一つのディストリビューションに複数のOrigin設定できますので、その機能を使えばできると思いますが。
    https://recipe.kc-cloud.jp/archives/5120
    (ちょっと古い記事ですがやり方は今も変わらないと思います)

    キャンセル

  • 2017/03/16 08:45

    ありがとうございます。昨晩からいろいろと試していてなんとかできそうです。

    キャンセル

同じタグがついた質問を見る

  • AWS(Amazon Web Services)

    2414questions

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

  • HTTPS

    302questions

    HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。