素敵なサムシングを独断と偏見で一方的に紹介するブログ(´・ω・`)

投稿日: 2018年5月7日
最終更新日:

【WordPress】AWSのS3とCloudFrontとRoute53を連携して独自ドメインで公開する方法【お名前.com】

YouTubeも見てね♪

【最新機種】GoPro hero11 Black

created by Rinker
GoPro(ゴープロ)
¥62,000 (2024/04/03 21:42:08時点 Amazon調べ-詳細)

最新機種でVlogの思い出を撮影しよう!

[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット

created by Rinker
THE NORTH FACE(ザノースフェイス)
¥33,430 (2024/04/03 21:42:09時点 Amazon調べ-詳細)

防水暴風で耐久性抜群なので旅行で大活躍です!

ペヤング ソースやきそば 120g×18個

created by Rinker
ペヤング
¥2,600 (2024/04/03 21:42:16時点 Amazon調べ-詳細)

とりあえず保存食として買っておけば間違いなし!

モンスターエナジー 355ml×24本 [エナジードリンク]

created by Rinker
モンスター
¥4,748 (2024/04/03 21:33:15時点 Amazon調べ-詳細)

脳を活性化させるにはこれ!

ドラゴンクエスト メタリックモンスターズギャラリー メタルキング

created by Rinker
スクウェア・エニックス(SQUARE ENIX)
¥3,250 (2024/04/03 21:42:09時点 Amazon調べ-詳細)

みんな大好き経験値の塊をデスクに常備しておこう!

MOFT X 【新型 ミニマム版】 iPhone対応 スマホスタンド

created by Rinker
MOFT
¥2,880 (2024/04/03 21:42:18時点 Amazon調べ-詳細)

Amazon一番人気のスマホスタンド!カード類も収納出来てかさ張らないのでオススメです!

サンディスク microSD 128GB

スマホからSwitchまで使える大容量MicroSDカード!

おさらい

ドメイン設定

独自ドメイン化

しかし今のままだと、ブラウザで正常にアクセス出来るようになりましたが、ドメインがS3バケット標準の形式のままになってしまっています。

http://{バケット名}.s3-website-ap-northeast-1.amazonaws.com

なので、今回はお名前.comであらかじめ取得しているドメインでアクセス出来るようにしてみようと思います。

これを実現するには、AWSRoute53CloudFrontというサービスを利用する必要があります。

Route53?CloudFront?

とりあえずは、Route53はドメインをAWSサービス内で使えるようにするサービスで、CloudFrontはドメインを割り振ってS3バケットと連携することで表示することが可能になるサービスと思ってもらえれば良いです。(だいぶ端折っていますorz)

この辺から少しAWS周りのサービスの設定複雑になってきますので、出来るだけ丁寧にまとめるように心がけます!

手順

前提

Point
  • お名前.comでドメイン取得済み
  • S3バケットでWebサイト公開済み

【準備】S3側

バケットポリシーの設定

前回、S3のStatic website hosting有効化にしてブラウザからアクセス出来るようにしました。
しかし、実際にはCloudFront経由で表示させるためこちらのエンドポイントのアクセス許可は全体公開する必要はありません。
また、このまま作業を進めることも出来ますが、それだとStatic website hostingのエンドポイントサーチエンジンにインデックスされてしまいあまりよろしくありません。

なので、エンドポイントにはCloudFrontからのみしかアクセス出来ず、かつファイルの転送WordPressが構築されているサーバーのIPからのみしか出来ないようにポリシーをしておきましょう。
対象のバケットを選択し、アクセス制限タブを選び、バケットポリシーをクリックすると、バケットポリシーエディターが表示されるので、以下のコードを元に値を変えて入力し、保存ボタンをクリックします。

確認

変更後、エンドポイントにアクセスしてみましょう。

正常にポリシーが働いてアクセスが出来ないようになっていますね。

【準備】CloudFront側

Distributionsの作成

では次に、CloudFrontの準備を進めていきましょう。

AWSマネジメントコンソールにログインし、上部サービスメニューからネットワーキング & コンテンツ配信>CloudFrontを選択します。

そして次の画面では、Create Distributionボタンをクリックします。

すると、Select delivery method画面が表示されます。
これは、コンテンツの配信方法を選択する画面なので、Web側のGet Startedボタンをクリックします。

次に、作成のための細かい設定画面が開きます。
項目はたくさんありますが今回はその中の幾つかの項目だけ設定を行います。

まず、Origin Domain Nameの項目に連携させたいS3バケットのStatic website hositngのエンドポイント以下の形で入力してください。

{対象バケット名}.s3-website-ap-northeast-1.amazonaws.com

ここでS3バケットを直接指定してしまうと、うまくページが表示されない部分が出てきてしまいますので、気をつけましょう。

また、中段あたりAlternate Domain Names (CNAMEs)に、事前に取得済みのドメインを入力します。

そして、Default Root Objectindex.htmlと入力し、それ以外はデフォルトのままで良いのでCreate Distributionボタンをクリックします。

これでDistributionは作成されました。
StatusがDeployedになるまでしばらくかかるので気長に待ちましょう。

【準備】Route53側

Hosted Zoneの作成

次に、上部サービスメニューからネットワーキング & コンテンツ配信>Route53を選択します。

次に、左部メニューHosted zonesを選択し、Create Hosted Zoneボタンをクリックします。

すると、以下のような画面が表示されるので、あらかじめ取得しておいたドメインを入力し、Createボタンをクリックします。

正常に作成されると、以下のような画面が表示されます。
TypeがNSのネームサーバーは後ほどお名前.com側の設定時に使うのでメモしておきましょう。

Record Setの作成

次はRecord Setを作成します。
Create Record Setボタンをクリックします。

AliasYesにチェックを入れ、Alias Targetのプルダウンから先ほど作成したCloudFrontを選択し、Createボタンをクリックします。

Route53の設定はこれで完了です。

【準備】お名前ドットコム側

ネームサーバーの変更

では、次にお名前.com側の設定を変更します。
その前に、事前にお名前.comで取得済みのドメインにブラウザからアクセスすると、以下のような画面が表示されると思います。

これは、お名前.comのネームサーバーで管理しているドメインだからです。
また、ドメインにまだサーバーの紐付けを行っていないのでデフォルトの画面?が表示されている状態と言えます。

今回はネームサーバーをお名前.comではなく先ほどのAWSのRoute53のものに変更します。

お名前.comの管理画面にログインし、ドメインタブを選択し、対象のドメインの初期設定リンクをクリックします。

表示されたページの中段あたり2. ネームサーバーの選択エリアがあるので、その他ネームサーバーにチェックを入れ、先ほど控えたRoute53のネームサーバーを入力し確認ボタンをクリックしましょう。

すると、以下のような確認ダイアログが表示されるので確認の上問題が無ければOKボタンをクリックします。

以下のようなメッセージが表示されればお名前.com側の設定は完了です。

確認

時間が経過して、設定が反映されるまで数時間ほどかかりますが、そのうち以下のように独自ドメインでS3バケットに転送したWordpressのサイトが表示されるようになります。

記事ページも問題なく表示されていますね♪

終わりに

とりあえず、独自ドメインでアクセス出来るようになりましたね♪

しかし、まだまだやっておかないといけない設定があります。

Point
  • SSL化
  • 更新時のキャッシュ対策
  • 不要ファイルの転送制限

これらについては別の記事で少しずつ整理しますので、そちらも見て頂ければなと思います。

関連

CATEGORIES & TAGS

IT