반응형
deploy script - (aws) cloudfront invalidation (cdn purge)
■ 설명
AWS 환경에서 cloudfront를 이용하여 CDN 구성을 할 경우 invalidation (무효화, purge) 를 코드로 진행하는 방법입니다.
참고로 invalidation은 최대 10분 이상도 소요될 수 있습니다. (같은 파일을 진행해도 랜덤하게 시간이 달라집니다.)
■ 로직
1. cloudfront api를 이용하여 invalidation 실행
2. processing을 체크하고, 완료되면 done 출력
■ 코드
#환경에 맞게 수정
- invalidation_name
- env
#!/bin/bash
export INVALIDATION_ID=$1
export INVALIDATION_PATH=$2
export INVALIDATION_NAME=cloudfront-mkdir-chandler
export ENV=dev
echo ""
echo "+------------------------------------------------------------------------------------+"
echo "| Invalidation for Client |"
echo "| Target: s3://${INVALIDATION_NAME}${INVALIDATION_PATH} |"
echo "| Env: ${ENV} |"
echo "+------------------------------------------------------------------------------------+"
echo ""
# check variable empty
if [ "${INVALIDATION_ID}" = "" ]; then
echo "empty distribution-id options"
exit 1
fi
if [ "$INVALIDATION_PATH" = "" ]; then
echo "empty paths options"
exit 1
fi
# invalidation execution
aws cloudfront create-invalidation --distribution-id ${INVALIDATION_ID} --paths "${INVALIDATION_PATH}" > /dev/null
echo "invalidataion s3://${INVALIDATION_NAME}${INVALIDATION_PATH} started"
echo ""
echo "check status"
# check progressing
while :
do
CHECKSTATUS=`aws cloudfront list-invalidations --distribution-id ${INVALIDATION_ID} | grep Status | awk -F \" '{print $4}' | grep InProgress | wc -l`
if [ $CHECKSTATUS = '0' ];then
break
fi
echo " - InProgress,,"
sleep 10
done
echo ""
echo "invalidataion s3://${INVALIDATION_NAME}${INVALIDATION_PATH} complete!"
echo ""
echo ""
# end
by mkdir-chandler
728x90
반응형
'Ops > Deploy' 카테고리의 다른 글
deploy script - (aws) get ec2 ip from target group (0) | 2023.08.26 |
---|---|
deploy script - (aws) get ec2 ip from elbv2 (0) | 2023.08.25 |
Deploy script - service status check (bash) (0) | 2023.08.24 |
Deploy script - git clone (0) | 2023.08.23 |