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

後始末1.3. 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ディストリビューションのETagを取得します。

コマンド:

CLOUDFRONT_ETAG=$(
  aws cloudfront get-distribution \
    --id ${CLOUDFRONT_DISTRIBUTION_ID} \
    --query 'ETag' \
    --output text \
) \
  && echo ${CLOUDFRONT_ETAG}

結果(例):

Exxxxxxxxxxx

CloudFrontディストリビューションの破棄

CloudFrontディストリビューションを破棄します。

変数の確認:

cat << END

  # CLOUDFRONT_DISTRIBUTION_ID:"Exxxxxxxxxxxxx"
    CLOUDFRONT_DISTRIBUTION_ID="${CLOUDFRONT_DISTRIBUTION_ID}"
  # CLOUDFRONT_ETAG:"Exxxxxxxxxxxx"
    CLOUDFRONT_ETAG="${CLOUDFRONT_ETAG}"

END

コマンド:

aws cloudfront delete-distribution \
  --id ${CLOUDFRONT_DISTRIBUTION_ID} \
  --if-match ${CLOUDFRONT_ETAG}

結果(例):

(出力なし)

「CloudFrontディストリビューションタグ名"handson-cli-cloudfront-distribution"が存在しない。」ことを確認します。

コマンド:

aws cloudfront list-distributions \
  --query "DistributionList.Items[?DefaultCacheBehavior.TargetOriginId == \`${CLOUDFRONT_ORIGIN_ID}\`].Id" \
  --output text

結果(例):

None

手順の完了

(参考) マネジメントコンソールの確認

ディストリビューション一覧(画面)

  • ディストリビューションが表示されていないことを確認します。(タグ名では検索できません)

CloudFrontディストリビューション"handson-cli-cloudfront-distribution"を破棄します。