ハンズオン: CDP (website serverless https)

目的

S3 + Route53 + CloudFrontでサーバレスWebサイトを構築する。

前提

作業環境条件

本作業は、以下の作業環境で行います。

作業環境条件1: OSとバージョン

本手順は、Amazon Linux "Amazon Linux AMI release 2018.03"以降のOS環境での実施を前提としています。

コマンド:

cat /etc/issue | head -1

結果(例):

Amazon Linux AMI release 2018.03

作業環境条件2: シェルとバージョン

本手順は、bash "4.2.46(2)-release"以降のシェル環境での実施を前提としています。

コマンド:

bash --version -v | head -1

結果(例):

GNU bash, バージョン 4.2.46(2)-release (x86_64-redhat-linux-gnu)

作業環境条件3: AWS CLIのバージョン

本手順は、AWS CLIの最新バージョンでの実施を前提としています。

コマンド:

aws --version

結果(例):

aws-cli/1.16.2 Python/3.6.5 Linux/4.14.59-64.43.amzn1.x86_64 botocore/1.11.2

バージョンが古い場合は最新版に更新しましょう。

コマンド:

sudo -H pip install -U awscli

手順 (構築)

ローカル環境での作業

  • 今回は"${HOME}/tmp/parameter-handson-cli-website-https"をパラメータファイル情報用ディレクトリとします。

ディレクトリが存在することを確認します。

コマンド:

ls -d ${HOME}/tmp/parameter-handson-cli-website-https

結果(例:存在する場合):

${HOME}/tmp/parameter-handson-cli-website-https

存在しない場合は作成します。

コマンド:

mkdir -p ${HOME}/tmp/parameter-handson-cli-website-https

ドメイン名のファイル保管

ドメイン名の変数設定をファイルに記述しておきます。

変数の設定:

DOMAIN_NAME='<ドメイン名>'

コマンド:

cat << EOF >> ${HOME}/q-domain.tmp

  DOMAIN_NAME='${DOMAIN_NAME}'
  ROUTE53_ZONE_NAME="\${DOMAIN_NAME}"

EOF

cat ${HOME}/q-domain.tmp

結果(例):

<ドメイン名>

注釈

手順書において、以下の変数を宣言する場合、

  • DOMAIN_NAME
  • ROUTE53_ZONE_NAME

以下のコマンドを実行することで、各変数にドメイン名が格納されます。

コマンド:

. ~/q-domain.tmp

変数にドメインが格納されているか確認する場合は、以下のコマンドを実行します。

コマンド:

echo ${DOMAIN_NAME}

結果(例):

<ドメイン名>

コマンド:

echo ${ROUTE53_ZONE_NAME}

結果(例):

<ドメイン名>

5. Route53ゾーンの作成 (Route53権限での作業)

9. DNSリソースレコードの作成 (Route53権限での作業)

注釈

ブラウザで以下のURLにアクセスしてみます。

https://handson-cli.<ドメイン名>/

コンテンツが表示されればOKです。

10. コンテンツの修正

注釈

以下のコンテンツファイルを修正してみます。

  • ${HOME}/conf/handson-cli-website-https-contents/jawsug-cli-sample-web/index.html

(例):

修正前: sampleイメージです。
修正後: sampleイメージです!

11. コンテンツの更新

注釈

ブラウザで以下のURLにアクセスしてみます。

https://handson-cli.<ドメイン名>/

コンテンツが更新されていればOKです。

手順 (破棄)

1. DNSリソースレコードの削除 (Route53権限での作業)

5. CloudFrontディストリビューションに対するポリシ削除 (IAM権限での作業)

8. Route53ゾーンの破棄 (Route53権限での作業)

9. コンテンツ用S3バケットの破棄 (IAM権限での作業)

事後作業. Route53委任セットの削除

注釈

WhoisDBからRoute53 委任セットのNSを削除し、代替のNSを登録します。

ドメイン名のファイル削除

ドメイン名の変数設定を削除しておきます。

コマンド:

if [ -e ~/q-domain.tmp ];then rm ~/q-domain.tmp; fi

結果(例):

(出力なし)

コンテンツの削除

コマンド:

rm -Rf ${HOME}/conf/handson-cli-website-https-contents

結果(例):

(出力なし)

設定ファイルの削除

コマンド:

rm -Rf ${HOME}/conf/handson-cli-website-https-conf

ローカル環境での作業

パラメータファイル情報用ディレクトリを削除します。

コマンド:

rm -Rf ${HOME}/tmp/parameter-handson-cli-website-https

備考