ジョージア・ノラ # Amazon S3 と HTTPS によるシンプルなサイト ホスティング ハイヤ諸君! このチュートリアルでは、カスタム ドメインを使用して、AWS で HTTPS を使用して静的ウェブサイトをホストする方法を紹介します。これはすべて、AWS の無料利用枠を使用して可能です ただし、使用するサービスには少額の料金がかかります。一般的に言えば、月額 1 ドルを超えてはなりません 次の AWS サービスの組み合わせを使用します。 ãâ¢ãâãâS3 国道53号線 ãâ¢ãâãâ 証明書マネージャー ãâ¢ãâãâ CloudFront *さあ、始めましょう!* S3 バケットをセットアップする まず、あなたが必要です。 **2 つの S3 バケットの両方が、www サブドメインを含む 2 つ目のカスタム ドメイン名と一致する必要があります バケット 1: バケット 2: 最初のバケット (mywebsite.com) は、サイトのメイン バケットです。これには、静的 Web サイトのすべてのファイルとアセットが含まれます 次に、このバケットを静的サイト ホスティング用にセットアップします。これは、バケットの [プロパティ] タブで見つけることができます。ここでは、サイトのインデックスを index.html に設定して、ここで提供されるデフォルトを維持します。 また、ユーザーのブラウザーが Web サイトをレンダリングするためにバケットのファイルにアクセスする必要があるため、このバケットにアクセスできるようにする必要があります。これを行うには、[アクセス許可] タブでバケット ポリシーを設定します。 { "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal":"Action": "s3:GetObject","リソース": "MY_BUCKET_ARN"} ]} これは、バケット内のオブジェクトのパブリック読み取りアクセスのみを許可する単純なポリシーです。ここで、バケットの静的ホスティング構成で定義されたエンドポイントに向かうと、Web サイトが表示されます。 進捗!しかし、私たちはそれよりもうまくやることができます 2 番目のバケット (www.mywebsite.com) は空のままにしますが、プロトコルとして HTTP を使用して最初のバケットにリダイレクトするように構成します (後で HTTPS にします)。 バケツの準備が整いました。 Route53 でドメインを構成する したがって、Web サイトは稼働していますが、カスタム ドメインではなく、バケット エンドポイント経由でのみアクセスできます。それを変えましょう に行く **Route53 Amazon Registrar にドメインを登録した場合は、2 つのレコード セットを使用してホスト ゾーンがセットアップされていることがわかります。 1 つはネーム サーバー (NS) 用、もう 1 つは SOA 用です。 あとは、S3 バケット エンドポイントを指す 2 つのレコード セットをさらに作成するだけです 各レコード セットについて: ãâ¢ãâãâ タイプ: A Ãâ¢ãâãâ IPv4 アドレス ãâ¢ãâãâ エイリアス: はい ãâ¢ãâãâ エイリアス ターゲット: 名前に設定したものと一致する S3 Web サイト エンドポイント これで、カスタム URL に移動できます。 私たちはほとんどそこにいますが、最後にもう 1 つ欠けているものがあります。 ãâã⦠**注: ドメインが (Amazon ではなく) 別のドメイン レジストラーに登録されている場合は、別の手順に従って設定する必要があります。通常、メインの S3 バケット エンドポイントの値を含む CNAME レコードを追加する必要があります。 **トラブルシューティング ドメインを最初に登録したときに Amazon が作成したホスト ゾーンを削除した場合 (ホスト ゾーンには料金が発生するため、これを行いました)、あなたは.新しいホストゾーンを最初から作成する必要があります - [ホスト ゾーンの作成] を選択し、ドメイン名を設定します (たとえば、「mywebsite」)。 comãâ¢ãâãâ - これにより、タイプ NS および SOA のいくつかの新しいレコード セットが生成されます - 登録済みのドメインに移動し、ネーム サーバーの値を新しい NS レコード セットで生成された値に更新します。 証明書のリクエスト すばらしい、サイトはカスタム URL を使用してホストされるようになりました!ただし、HTTP プロトコル経由でしかアクセスできません サイトが HTTPS プロトコルを使用して保護されていることを常に確認する必要があります。これにより、サイトとユーザーを悪意のあるインジェクション攻撃から保護し、信頼性を保証します に行く AWS コンソールで **Certificate Manager** を開き、新しい公開証明書をリクエストします (これは無料です)。保護したいドメイン名を入力するよう求められます 証明書を発行する前に、指定されたドメインを所有していることを Amazon が確認できる必要があります。 メールまたは DNS の 2 つの確認方法から選択できます。 一般的には電子メールの方が簡単ですが、ドメインの登録に使用した電子メールにアクセスできることを確認する必要があります。または、Amazon Registrar と Route53 を使用した場合は、DNS メソッドを選択できます。これには、いくつかの特定のレコード セットをホスト ゾーンに追加する必要がありますが、これはほとんど自動化されているため、非常に簡単です。 検証後、証明書が発行されるまで数分かかる場合があります すべてが完了したら、最終ステップに進むことができます! CloudFront の設定 最後のステップで使用します **CloudFront **これにより、新しい SSL 証明書を使用して、HTTPS で Web サイトを提供できます。また、CloudFront は、ウェブ コンテンツを複数のエッジ ロケーションに保存し、最も近いエッジ ロケーションからユーザーに配信することで、ウェブ コンテンツの配信を高速化します。 必要です **S3 バケットごとに 1 つずつ、2 つの新しい Web ディストリビューション。 AWS コンソールで CloudFront に移動し、最初のウェブディストリビューションを作成します Web ディストリビューションを作成するために利用できる設定はたくさんありますが、基本的に変更する必要があるのは 5 つだけです。 Origin Domain Name: バケットの 1 つの S3 ウェブサイト エンドポイントに設定します。重要: このフィールドには、S3 バケット名のいくつかのオートコンプリート オプションが表示されます。ただし、これらを使用すると、バケット エンドポイントへのリダイレクトで問題が発生する可能性があります。そのため、代わりにバケット エンドポイントを直接使用してください。 Origin Id: Origin Domain Name を入力すると、これが入力されます。ビューア プロトコル ポリシー: 「HTTP を HTTPS にリダイレクト」に設定します。代替ドメイン名: これは、指定している S3 バケットの名前と一致する必要があります。たとえば、ãâ¢ãâãâmywebsite.comãâ¢ãâãâ. SSL 証明書: [カスタム SSL 証明書] を選択し、ドロップダウンから新しい証明書を選択します。 2 番目の S3 バケットに対してこれを繰り返します ディストリビューションがスピンアップするまでに時間がかかる場合があるため、待っている間に最後の手順を実行しましょう 戻る **S3 はセカンダリ バケット (www.mywebsite.com) に移動し、[プロパティ] タブの [静的 Web サイト ホスティング] でリダイレクト プロトコルを HTTPS に設定します。 最後に、に戻ります **Route53 作成したカスタム A レコードを更新して、S3 バケットではなく CloudFront ディストリビューションをターゲットにする必要があります。レコードごとに、エイリアス ターゲットを変更し、ドロップダウンで利用可能な CloudFront ディストリビューションを選択します。 注: 繰り返しますが、別の DNS サービスを使用している場合は、CloudFront ドメイン名を指すようにそこから CNAME レコードを更新する必要があります。 そして、あなたはそれを持っています!美しい Web サイトがカスタム ドメインで利用可能になり、HTTPS で提供されます。 読んでくれてありがとう!このガイドが有益で楽しいものであったことを願っています。