ハンズオン(簡易版): CloudFront入門

2.4. CloudFrontディストリビューションへのアクセス (handson-cli-cloudfront-distribution)

手順の目的 [why]

CloudFrontディストリビューション"handson-cli-cloudfront-distribution"にアクセスできることを確認します。

設定値の指定

設定値の指定

手順に必要な設定値を変数に格納をします。

1. CloudFrontディストリビューションタグ名

CloudFrontディストリビューションタグ名を指定します。

変数の設定:

CLOUDFRONT_DISTRIBUTION_TAG_NAME="handson-cli-cloudfront-distribution"

設定値の確認

各変数に正しい設定値が格納されていることを確認しながら保存します。

変数の確認:

cat << END

  # 1. CLOUDFRONT_DISTRIBUTION_TAG_NAME:"handson-cli-cloudfront-distribution"
       CLOUDFRONT_DISTRIBUTION_TAG_NAME="${CLOUDFRONT_DISTRIBUTION_TAG_NAME}"

END

下段の変数が入っていない、もしくは上段と同等の値が入っていない場合は、それぞれの手順番号に戻って変数の設定を行います。

処理の実行

ディストリビューションIDを取得します。

コマンド:

for i in $(
  aws cloudfront list-distributions \
    --query "DistributionList.Items[].ARN" \
    --output text \
); do
  j=$( \
    aws cloudfront list-tags-for-resource \
      --resource ${i} \
      --query "Tags.Items[?Key == \`Name\` && Value == \`${CLOUDFRONT_DISTRIBUTION_TAG_NAME}\`].Value" \
      --output text \
  )
  if [ "${j}" == "${CLOUDFRONT_DISTRIBUTION_TAG_NAME}" ]; then \
    CLOUDFRONT_DISTRIBUTION_ID=$( \
      aws cloudfront list-distributions \
        --query "DistributionList.Items[?ARN == \`${i}\`].Id" \
        --output text \
    )
  fi
done \
  && echo ${CLOUDFRONT_DISTRIBUTION_ID}

結果(例):

Exxxxxxxxxxxxx

課題

list-distributionsコマンドがタグ表示できないため、全てのディストリビューションに対してlist-tags-for-resourceコマンドでタグの有無をチェックするしか方法がない。(サポートには未確認)

CloudFrontドメイン名を取得します。

コマンド:

CLOUDFRONT_DOMAIN_NAME=$(
  aws cloudfront get-distribution \
    --id ${CLOUDFRONT_DISTRIBUTION_ID} \
    --query 'Distribution.DomainName' \
    --output text \
) \
  && echo ${CLOUDFRONT_DOMAIN_NAME}

結果(例):

dxxxxxxxxxxxxx.cloudfront.net

CloudFrontディストリビューションにアクセスします。

コマンド:

curl ${CLOUDFRONT_DOMAIN_NAME}

結果(例):

<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="utf-8">
</head>

<body>
  <h1>JAWS-UG CLI (サンプルコンテンツ)</h1>

  <p>
    <img src="img.jpg" alt="クラウド" />
  </p>
  <p>
    sampleイメージです。
  </p>

    <h2>今後のリリース予定</h2>
    <p>近日、新規リリースの予定です!</p>
</body>
</html>

完了確認

本手順の主処理は、以下の完了条件を満たしたときに成功したものとします。

完了条件1: CloudFrontディストリビューションタグ名"handson-cli-cloudfront-distribution"にアクセスすることができる。

「CloudFrontディストリビューションタグ名"handson-cli-cloudfront-distribution"にアクセスすることができる。」ことを確認します。

コマンド:

curl -LI -Ss \
  -o /dev/null \
  -w '%{http_code}\n' \
  ${CLOUDFRONT_DOMAIN_NAME}

結果(例):

200

手順の完了