0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

s3静的ホスティング+clouddrontによるhttps通信でリニューアルページを設置する

Posted at

目的

既存webサービスをデプロイしている
https://sss.red-miso.work/
のURLを工事中リニューアルページに差し替える

経緯

SkateSpotSearch

というwebサービスをrails+webpackerで作成
aws ecs+circleCI+code3兄弟で構築しておりました。
↓こんな感じで
SkateSpotSearch_drawio.png

フロントとバックエンドを分離するSPA構築にしたい
ので、
一旦サービスを停止。
URLはそのままにリニューアルページを差し替えたいと思います。
よろしくお願いいたします。

リニューアルページを作成しておく

最低限

  • index.html
    があれば良いですが、今回は勉強も兼ねてvue.jsで簡単に作成してみました。
vueでのリニューアルページ作成
vue create .
npm run serve ==>>(localhost:8080で確認できる)
[画像ファイルと文言を整える]
npm run build ==>> 別ディレクトリ/distが作成されます。これをS3にあげますね!

↓localhost:8080で見ると、こんな感じですね!
あ、Canvaというおすすめの
Canva:ロゴ作成サイト
があるのでチェックしてみてください!使いやすいですよ!

スクリーンショット 2021-02-16 19.57.24.png

S3で新規バケット作成〜エンドポイントでアクセス可能にしよう

AWS S3
↑アクセスして、

  1. バケットを作成
    スクリーンショット 2021-02-16 20.01.16.png

  2. バケット名を2つ作成(ドメイン名とサブドメイン名を)する。
    スクリーンショット 2021-02-16 20.01.49.png

  • red-miso.work
  • sss.red-miso.work

ドメインとは、

定義域という意味ですが
簡単にいうと
私のURLが
https://sss.red-miso.work
ここでいう
red-miso.work
がお名前ドットコムなどで購入したドメインです!

サブドメインとは、

任意で設定可能で、サイトを拡張していくときなどブランディングができ便利です!
route53にて、レコード作成するタイミングで
sss.red-miso.workからred-miso.workへ
とアクセスをマッピングする役割があります。
sssを含む、
sss.red-miso.workがサブドメインに当たります。

  1. ドメイン名(red-miso.work)バケット内で、[タブ]アクセス許可内の

↓パブリックアクセスができるように変更する
スクリーンショット 2021-02-16 20.20.00.png

↓バケットポリシーにポリシー追加する
スクリーンショット 2021-02-16 20.20.35.png

コピーして使ってね!
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3::: **ここにバケット名を入れましょう** "
        }
    ]
}
  1. ドメイン名(red-miso.work)のバケット内の[タブ]プロパティ内で、静的ホスティングを設定する

↓編集するをクリック
スクリーンショット 2021-02-16 20.22.37.png

↓以下の通り、設定しましょう
スクリーンショット 2021-02-16 20.22.51.png

↓ここで参照するファイル名を大文字小文字正確に入力。
私は今回vue.jsプロジェクト内のindex.htmlを読み込むので、指定します。

エラードキュメントは無くても良さそう。
一応、用意しておきましたね。

スクリーンショット 2021-02-16 20.23.00.png

  1. ファイルやフォルダのアップロード
    index.htmlやerror.htmlなどをアップロードします。

これにて、[タブ]プロパティのエンドポイントをクリックすれば表示されているかと思います。
↓ここ
スクリーンショット 2021-02-16 20.28.50.png

  1. サブドメイン名(sss.red-miso.work)のバケットからも閲覧できるようリダイレクト設定をする

↓以下の通り、設定しましょう
スクリーンショット 2021-02-16 20.31.42.png

↓アクセス許可やポリシーを追加せずとも、エンドポイントからアクセスができるようになる
スクリーンショット 2021-02-16 20.32.36.png

Route53にて、ドメイン名(red-miso.work)のS3エンドポイントへリクエストが流れるようにする。

  1. Route53ダッシュボードからドメイン名のホストゾーン内へと移動する

スクリーンショット 2021-02-16 20.34.52.png
スクリーンショット 2021-02-16 20.35.03.png

  1. レコードの作成

スクリーンショット 2021-02-16 20.35.21.png

↓ここはデフォルト
スクリーンショット 2021-02-16 20.37.12.png

↓ここもデフォルトのAタイプを選択
スクリーンショット 2021-02-16 20.37.18.png

↓トラフィックはエイリアスをONに、S3を選択、リージョンを選択、バケット名(ドメイン名)を選択
スクリーンショット 2021-02-16 20.37.35.png

↓シンプルで
スクリーンショット 2021-02-16 20.40.04.png

↓OFFに
スクリーンショット 2021-02-16 20.39.58.png

以上でレコード作成

http://red-miso.work
で閲覧可能となる

Route53にて、サブドメイン名(sss.red-miso.work)のS3エンドポイントへリクエストが流れるようにする。

*もし、既存のサブドメイン名のレコードが定義されている場合は削除してから再作成しましょう。

  1. レコード作成
    ↓sssというサブドメインを追加
    スクリーンショット 2021-02-16 20.45.58.png

↓すると、s3バケット名選択肢にsss.red-miso.workが現れる
スクリーンショット 2021-02-16 20.45.49.png

以上でレコード作成

http://sss.red-miso.work
で閲覧可能となる

https通信にする。

cloudfrontを使用する

  1. cloudfrontページ
    にアクセスする。

  2. ディストリビューションの作成〜
    スクリーンショット 2021-02-16 20.54.07.png

↓オリジンドメイン名として、ドメイン名(red-miso.workから始まるs3バケットを選択)
スクリーンショット 2021-02-16 20.54.37.png

↓他の設定は触らず、代替ドメイン名にドメイン(red-miso.work)を入力。
スクリーンショット 2021-02-16 20.58.44.png

↓一度、AWS ACMで証明書の要求が必要なのでクリック
スクリーンショット 2021-02-16 20.59.43.png

↓ドメイン名(red-miso.workを入力)
スクリーンショット 2021-02-16 21.00.08.png

↓Route53内のドメイン内に、レコードを作成して認証する。
スクリーンショット 2021-02-16 21.00.17.png

↓確定とリクエストし、次画面で認証しましょう。
スクリーンショット 2021-02-16 21.02.28.png

↓ACMで証明書の要求が完了すれば、SSL証明選択できる。
スクリーンショット 2021-02-16 21.03.33.png

以上で、cloudfrontディストリビューションを作成。

https://sss.red-miso.work
https化が成功し、アクセスができるようになる。

最後まで、閲覧ありがとうございました!

あとは、SPA化できるようにするだけだな〜

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?