인프런 커뮤니티 질문&답변

JHoon님의 프로필 이미지
JHoon

작성한 질문수

CloudNet@와 함께하는 AWS 네트워킹 입문

[실습] CloudFormation으로 기본 인프라 배포

클라우드 포메이션 실행시 ROLLBACK_COMPLETE 가 발생해서 CREATE 되지 않습니다ㅠㅠ

해결된 질문

작성

·

608

1

2023-11-13 16:16:28 UTC+0900	elaalblab	
ROLLBACK_COMPLETE
-
2023-11-13 16:16:28 UTC+0900	ELBVPC	
DELETE_COMPLETE
-
2023-11-13 16:16:27 UTC+0900	MyVPC	
DELETE_COMPLETE
-
2023-11-13 16:16:26 UTC+0900	ELBVPC	
DELETE_IN_PROGRESS
-
2023-11-13 16:16:26 UTC+0900	MyVPC	
DELETE_IN_PROGRESS
-
2023-11-13 16:16:25 UTC+0900	ELBPublicSN1	
DELETE_COMPLETE
-
2023-11-13 16:16:25 UTC+0900	MyPublicSN	
DELETE_COMPLETE
-
2023-11-13 16:16:25 UTC+0900	ELBIGW	
DELETE_COMPLETE
-
2023-11-13 16:16:25 UTC+0900	ELBPublicRT	
DELETE_COMPLETE
-
2023-11-13 16:16:25 UTC+0900	ELBSG	
DELETE_COMPLETE
-
2023-11-13 16:16:25 UTC+0900	MyPublicRT	
DELETE_COMPLETE
-
2023-11-13 16:16:25 UTC+0900	MyIGW	
DELETE_COMPLETE
-
2023-11-13 16:16:25 UTC+0900	MySG	
DELETE_COMPLETE
-
2023-11-13 16:16:24 UTC+0900	ELBSG	
DELETE_IN_PROGRESS
-
2023-11-13 16:16:24 UTC+0900	ELBPublicSN1	
DELETE_IN_PROGRESS
-
2023-11-13 16:16:24 UTC+0900	ELBIGW	
DELETE_IN_PROGRESS
-
2023-11-13 16:16:24 UTC+0900	MyPublicSN	
DELETE_IN_PROGRESS
-
2023-11-13 16:16:24 UTC+0900	ELBPublicRT	
DELETE_IN_PROGRESS
-
2023-11-13 16:16:24 UTC+0900	MyPublicRT	
DELETE_IN_PROGRESS
-
2023-11-13 16:16:24 UTC+0900	ELBPublicSN2	
DELETE_COMPLETE
-
2023-11-13 16:16:24 UTC+0900	MySG	
DELETE_IN_PROGRESS
-
2023-11-13 16:16:24 UTC+0900	MyIGW	
DELETE_IN_PROGRESS
-
2023-11-13 16:16:22 UTC+0900	elaalblab	
ROLLBACK_IN_PROGRESS
The following resource(s) failed to create: [ELBPublicSN1, MyPublicRT, ELBIGW, MyIGW, ELBPublicSN2, MySG, ELBPublicRT, ELBSG, MyPublicSN]. Rollback requested by user.
2023-11-13 16:16:21 UTC+0900	MySG	
CREATE_FAILED
Resource creation cancelled
2023-11-13 16:16:21 UTC+0900	ELBSG	
CREATE_FAILED
Resource creation cancelled
2023-11-13 16:16:18 UTC+0900	MyPublicRT	
CREATE_FAILED
Resource creation cancelled
2023-11-13 16:16:18 UTC+0900	ELBPublicSN1	
CREATE_FAILED
Resource creation cancelled
2023-11-13 16:16:18 UTC+0900	ELBIGW	
CREATE_FAILED
Resource creation cancelled
2023-11-13 16:16:18 UTC+0900	MyIGW	
CREATE_FAILED
Resource creation cancelled
2023-11-13 16:16:18 UTC+0900	ELBPublicRT	
CREATE_FAILED
Resource creation cancelled
2023-11-13 16:16:18 UTC+0900	MyPublicSN	
CREATE_FAILED
Resource creation cancelled
2023-11-13 16:16:18 UTC+0900	MyPublicSN	
CREATE_IN_PROGRESS
Resource creation Initiated
2023-11-13 16:16:17 UTC+0900	ELBPublicRT	
CREATE_IN_PROGRESS
Resource creation Initiated
2023-11-13 16:16:17 UTC+0900	ELBPublicSN2	
CREATE_FAILED
Template error: Fn::Select cannot select nonexistent value at index 2
2023-11-13 16:16:16 UTC+0900	MySG	
CREATE_IN_PROGRESS
-
2023-11-13 16:16:16 UTC+0900	MyPublicSN	
CREATE_IN_PROGRESS
-
2023-11-13 16:16:16 UTC+0900	MyPublicRT	
CREATE_IN_PROGRESS
-
2023-11-13 16:16:16 UTC+0900	ELBPublicRT	
CREATE_IN_PROGRESS
-
2023-11-13 16:16:16 UTC+0900	ELBSG	
CREATE_IN_PROGRESS
-
2023-11-13 16:16:16 UTC+0900	ELBPublicSN1	
CREATE_IN_PROGRESS
-
2023-11-13 16:16:16 UTC+0900	MyVPC	
CREATE_COMPLETE
-
2023-11-13 16:16:16 UTC+0900	ELBVPC	
CREATE_COMPLETE
-
2023-11-13 16:16:05 UTC+0900	MyVPC	
CREATE_IN_PROGRESS
Resource creation Initiated
2023-11-13 16:16:05 UTC+0900	ELBVPC	
CREATE_IN_PROGRESS
Resource creation Initiated
2023-11-13 16:16:05 UTC+0900	ELBIGW	
CREATE_IN_PROGRESS
Resource creation Initiated
2023-11-13 16:16:04 UTC+0900	MyIGW	
CREATE_IN_PROGRESS
Resource creation Initiated
2023-11-13 16:16:03 UTC+0900	ELBIGW	
CREATE_IN_PROGRESS
-
2023-11-13 16:16:03 UTC+0900	ELBVPC	
CREATE_IN_PROGRESS
-
2023-11-13 16:16:03 UTC+0900	MyIGW	
CREATE_IN_PROGRESS
-
2023-11-13 16:16:03 UTC+0900	MyVPC	
CREATE_IN_PROGRESS
-
2023-11-13 16:16:00 UTC+0900	elaalblab	
CREATE_IN_PROGRESS
User Initiated

안녕하세요! 문의드를게 있습니다!
cloud formation 을 사용해서 4_lab.yaml 을 적용하면 위같은에러가 지속 발생합니다.

 

2023-11-13 16:16:17 UTC+0900	ELBPublicSN2	 CREATE_FAILED Template error: Fn::Select cannot select nonexistent value at index 2

이 부분이 계속 걸리는거 같은데, 어떻게 수정을 해야할지 감이 잡히지 않습니다.

어떻게 해결하는게 좋을까요??? ㅠㅠ

답변 5

1

Ongja_CloudNet@님의 프로필 이미지
Ongja_CloudNet@
지식공유자

해결되셨다니 다행입니다~~

질문 해결 체크 버튼 클릭해주시면 감사하겠습니다 :)

1

Ongja_CloudNet@님의 프로필 이미지
Ongja_CloudNet@
지식공유자

직접 설정하면 되지만... 한가지 확인 가능할까요?

image

  1. 우측 상단 서울 리전 확인

  2. 좌측 최하단에 Cloudshell 클릭

  3. 명령어 입력

1) 리전에서 사용할 수 있는 AZ 정보 (4개 확인)

aws ec2 describe-availability-zones --query 'AvailabilityZones[].ZoneName'

2) 기본 서브넷의 AZ 확인( Fn::GetAZs이 반환하는 값) (4개 확인)

aws ec2 describe-subnets --filters "Name=default-for-az, Values=true" --query 'Subnets[].AvailabilityZone'

 

  1. 만약에 2번째 명령어에 4개 모두가 존재하지 않는다면 아래 추가 명령어 입력 (비어있는 대상만..)

aws ec2 create-default-subnet --availability-zone ap-northeast-2a
aws ec2 create-default-subnet --availability-zone ap-northeast-2b
aws ec2 create-default-subnet --availability-zone ap-northeast-2c
aws ec2 create-default-subnet --availability-zone ap-northeast-2d

 

해결 됐음 좋겠네요ㅠ

JHoon님의 프로필 이미지
JHoon
질문자

우왓!! 감사합니다!!

이해했습니다!
가용영역의 개수에 맞춰서 default subnet 이 여러개여야 하는군요!!

제가 ap-northeast-2a 를 가진 subnet 만 가지고 있었네요!!

뭐가 문제인지 알았습니다!!
해결해주셔서 감사합니다!!

0

JHoon님의 프로필 이미지
JHoon
질문자

I see that this makes use of the function !GetAZs. !GetAZs will return all AZs in the account which have a 'Default' subnet in them

이부분을 보았는데, default vpcdefault vpc 에 설정된 subnet 도 보니 존재했습니다.


이건 지금 ap-northeast-2 에 있는 subnet 이구요



이건 ap-northeast-2 에 존재하는 default vpc 입니다.
현재 상단의 서울이라고 되어있으면 해당 리전으로 이해하고 있습니다.

지금 답변 확인했습니다. 직접 region 설정해 보도록 하겠습니다!

0

JHoon님의 프로필 이미지
JHoon
질문자

  • Delete initiated for arn:aws:cloudformation:ap-northeast-2:489391668825:stack/elbalb/ba8704a0-81f7-11ee-a3e0-06434c6f9ef0

    stack 지울때도 보니 ap-northeast-2 는 정확히 맞는거 같습니다.

    # !Select[3, !GetAZs, ''] 일때,
    
    2023-11-13 16:51:05 UTC+0900	ELBPublicSN2	
    CREATE_FAILED
    Template error: Fn::Select cannot select nonexistent value at index 3
    
    # !Select [ 1, !GetAZs '' ] 일때,
    
    2023-11-13 16:56:53 UTC+0900	ELBPublicSN2	
    CREATE_FAILED
    Template error: Fn::Select cannot select nonexistent value at index 1


    같은 에러가 나오네요...
    제가 이해하기로는 AvailabilityZone 설정 같은데,
    ap-northeast-21, 2, 3 까지 있는거 아닌가요?

    리전은 ap-northeast-2 인거 같은데, 뭐가 문제인지
    감이 전혀 안잡히네요...

    뭔가 설정이 잘못됬나 ㅠㅠ

     

     

Ongja_CloudNet@님의 프로필 이미지
Ongja_CloudNet@
지식공유자

혹시 기본 VPC를 삭제한 상태일까요?

검색을 해보니 !GetAZs로 AZ 값을 반환할 때 Default VPC에서 AZ 값을 반환한다고 하는군요.

-- 원문 --

Thanks for contacting AWS Premium Support!

I understand you have a template which launches in the Frankfurt region but not the Dublin region.

I've been able to launch that template myself without issue so I've been looking over your account for any possible cause.

I notice that the first resource to fail creation is SubnetBPublic. I see that this makes use of the function !GetAZs. !GetAZs will return all AZs in the account which have a 'Default' subnet in them. The issue is if you have deleted the subnet from a VPC that was marked as default, that AZ won't be returned by GetAZs here. See further info on this here: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getavailabilityzones.html

Looking at your account, I see that there is a default subnet only in eu-west-1c, so only that AZ will be returned to !GetAZs. Then !Select [1, !GetAZs ''] is trying to access a second element that does not exist.

The solution to this is to create at least one new subnet in each AZ. This should be marked as default automatically.

Alternatively if you wish I can manually intervene and set existing subnets of your choice as default for a given AZ. If you wish for me to do this please provide the subnet IDs and the respective AZ which you want them to be the default for.

I hope this is clear, but if you have any questions or concerns don't hesitate to let me know.

Ongja_CloudNet@님의 프로필 이미지
Ongja_CloudNet@
지식공유자

문제 확인을 위해 가용 영역을 직접 지정해 보는 것 방법일 것 같네요.

4_lab.yaml 파일에서 아래와 같이 수정

AvailabilityZone: !Select [ 0, !GetAZs '' ]
=>
AvailabilityZone: ap-northeast-2a

 

AvailabilityZone: !Select [ 2, !GetAZs '' ]
=>
AvailabilityZone: ap-northeast-2c

0

Ongja_CloudNet@님의 프로필 이미지
Ongja_CloudNet@
지식공유자

안녕하세요. CloudNet@ 팀입니다.

저같은 경우 4_lab.yaml 파일로 CloudFormation 스택 생성 시 문제 없이 생성되네요.

혹시 서울(ap-northease-2) 리전에서 진행하고 있는 것이 맞나요?

 

일단 에러 메시지를 보면 yaml 파일에서 가용 영역을 지정하는 Select Function에서 값 호출이 안되는 것 같네요.

4_lab.yaml 파일을 메모장 같은 편집기에서 열고 111번째 줄에서 값을 변경해 보시길 바랍니다.

[원문]

AvailabilityZone: !Select [ 2, !GetAZs '' ]

[수정]

AvailabilityZone: !Select [ 3, !GetAZs '' ]

혹은

AvailabilityZone: !Select [ 1, !GetAZs '' ]

 

동작 여부 회신 부탁드릴게요.

JHoon님의 프로필 이미지
JHoon
질문자

직접 설정하니 잘 만들어졌습니다!!

AvailabilityZone: !Select [ 0, !GetAZs '' ] 에서 가용영역을 제대로 못읽고 있었던거 같습니다.

제 생각으로는 seoul region 이고 default vpc 있고, default subnet 있으면 되야 하는데, 다른이유로 안되는거 같습니다.

이유를 알고 싶지만.. 전혀 감이 안잡히니... 일단은 넘어가야할거 같습니다 ㅠㅠ

도와주셔서 감사합니다!!

JHoon님의 프로필 이미지
JHoon

작성한 질문수

질문하기