개발 학습일지(TIL)

TIL : AWS App Runner 사용자 지정 도메인(Custom doamin) 연결 방법 (이슈 문서화)

Veams 2023. 10. 11.

AWS App Runner는 인프라 구축 및 도메인 연결까지 아주 쉽다고 안내된 서비스인데, 오류가 발생하면 되려 어렵다. 매뉴얼을 봐도 어떻게 조치해야하는지 친절하게 안내가 안 되어있고, 국내외 레퍼런스까지 적다. 다음에 헷갈리거나 반복하지 않도록 시행착오들을 기록해본다.

 

App Runner 사용자 도메인 연결 절차

 

결론 :
App Runner 커스텀 도메인 연결을 위해서는( 외부 도메인 구입시)

1. 외부 도메인 구입 (ex. 가비아)
2. Route53 호스팅 영역 생성(기본 레코드 2개 생성됨을 확인)
3. NS 1~4차 가비아에 연결(가비아에서 도메인 구입시)
4. cmd에서 nslookup, set type=ns로 연결 도메인 주소의 네임서버 정보 확인 필요

- 연결 설정한 NS 1~4차로 응답하는지 확인하기

- NS 변경까지 시간 소요, 대개 1분~30분 사이로 안정적으로 응답 확인 가능
5. App Runner에서 사용자 도메인 연결 설정

- Domain registrar : 'Amazon Route53'

- DNS record type: 'ALIAS'

6. 연결 설정을 마치면, Amazon Route53 호스팅 영역에 ACM(SSL인증서) 관련 레코드가 추가됨(기본 2개에서 +@개)

- 즉 ACM 생성 작업은 따로 필요없음

7. App Runner 사용자 도메인 연결 상태가 '인증서 DNS 검증 보류 중'에서 30분 이내로 '활성'으로 바뀌는지 확인 필요

- 24~48시간 소요될 수도 있다고 표기되었지만, 길어도 1시간 내로 모두 처리 가능하다고 생각함.

8. 계속 바뀌지 않으면 도메인 링크 연결 삭제 후, 재연결 시도(재연결 오류 발생시, Route53 호스팅 영역에서 +@ 된 것 삭제)
9. 도메인 접속 가능한지 확인, https 까지 적용 되는지 확인

Amazon Route53 호스팅 영역. 첫 생성시 기본2개, App Runner 연결시 추가 3개 생성됨
가비아 네임서버 설정

 

 

App Runner 사용자 지정 도메인의 연결 시도 일지(시행착오)

1) 1일차 첫 시도

- 외부에서 구입한 도메인이기 때문에 도메인 네임 등록 대행자(Domain registrar) : Non-Amazon으로 연결을 시도했다.

- 간단하게 설정되리라 기대했지만 기대가 무너졌다.

- 몇 시간 지나도 'DNS 검증 보류 중' 유지.... 도메인 연결 및 작동 안 함.

 

2) 두 번째 시도 (Domain registrar :Non-Amazon, Route 53 호스팅 영역 생성, 가비아 DNS 설정 삽질)

- 연결했던 App Runner 커스텀 도메인을 삭제한 뒤, non-amazon으로 다시 생성함 
- 바로 연결이 안 되는 것 같아서 문제파악

-> Route53 호스팅 영역 첫 생성, 이에 따라 NS 1~4차를 지정 받음

->가비아(가비아에서 도메인 구입)에 네임서버(NS) 4개 연결

-> cmd, nslookup set type=ns에서 네임서버 4개 응답 첫 확인

-> 그러나 여전히 연결 상태는 'DNS 검증 보류 중' 유지 --> 작동 안 된다고 생각함   

-> ACM(Amazon Certificate Manager) 인증서 발급도 해봄  

-> 가비아에도 설정 이것저것 만져봐도 작동 안 됨

이곳에 레코드를 추가 및 삭제해보았으나 결론적으로는 할 필요 없는 설정란


3) 세 번째 시도( (Domain registrar : Amazon Route53 // DNS record type: CNAME)

 연결했던 App runner 커스텀 도메인을 날린 뒤, 다시 생성함( Amazon Route53 연결 선택// DNS record type은 CNAME으로)
- 48시간 넘어도 'DNS 검증 대기' 유지.... 도메인 작동 안 함.

- 가비아 삽질

- 여전히, 상태는 'DNS 검증 보류 중'

- 안내대로 48시간이 지나보기로 결정


4) 48시간이 지난, 3일차

- 여전히, 상태는 'DNS 검증 보류 중'
- 결국 Route53 호스팅 영역 등록했던걸 삭제함
- App Runner 커스텀 도메인도 모두 삭제, 다시 생성함 (Domain registrar : Non-Amazon )
- '상태'가 활성으로 바뀜.
-> 해당 도메인으로 접속이 안 됨
- ACM(AWS Certificate Manager) 인증서 새로 발급시도 ->  발급 안 됨 이후 수 시간이 지나도 '검증 대기 중'

ACM 인증서 요청 화면


5) 48시+@시간 뒤 재시도

- Route53 호스팅 영역 새로 개설(NS 1~4차 새로 생성됨)
- NS 1~4차 가비아에서 새로 지정
- cmd에서 nlookup -set type=ns로 확인 뒤 새로운 네임서버 4개 응답 확인
- ACM 인증서 발급 -> ACM 상 'Route53 레코드 생성' -> ACM 발급은 성공
- App Runner 커스텀 도메인 연결 상태는 '활성' 상태, 그러나 실제 접속은 불가


6) 여섯 번째 시도

-> App Runner 도메인 연결 삭제후, 새로 연결
-> App Runner 도메인 링크 연결, 설정(Domain registrar : Amazon Route53 // DNS record type: ALIAS)
-> 생성 직후 '활성' 상태 확인

-> 도메인 링크 연결하니 1분 정도 내에 랜딩페이지 접속 성공, 정상 작동 확인됨

AWS App Runner custom domain 연결 설정 화면


7) ACM 관련 테스트

(1)

-> ACM 인증서 삭제해봄 -> 문제없이 작동됨

- 즉, ACM 인증서 발급 요청은 할 필요 없는 작업
-> App Runner 사용자 도메인 연결 해제 -> 도메인 접속 불가 

 

(2)
-> App Runner 사용자 도메인 재연결 (Domain registrar : Amazon Route53 // DNS record type: ALIAS)
-> 랜딩페이지 확인은 되나, https 작동은 하지 않음

-> Route53 호스팅 영역에 레코드 기본2개 + 3개 추가된 것을 확인

-> 그대로 1~2분 기다리니 자동으로 https까지 작동됨

 

8) 사용자 도메인의 연결 절차 정리를 하고자, 새로운 도메인으로 연결 테스트

(1) 새 도메인의 App Runner 연결 준비

- 기존에 구입했었고, 직전까지 vercel에서 연결하고 있던 다른 도메인(spartaclub.shop)을 활용

- 즉, 이 도메인의 가비아 설정에는 vercel에서 제공한 네임서버가 연결되어있음
-> vercel과 도메인 연결을 중단함. 

- 가비아의 vercel ns 1~2차를 삭제

 

(2) 새 도메인과 App Runner을 연결 시도
- Amazon Route53 호스팅 영역 생성후, 새로 생성된 네임서버 1~4차를 가비아에 등록함
- cmd nslookup -set type=ns을 여러차례 확인 해보니, 이전에 vercel에서 연결 했던 ns와 Route53의 ns가 번갈아 가면서 조회됨

- 해당 도메인 접속시, Vercel에서 보내주는 오류 메시지가 보임. (CDN 인천의 캐시가 남아있는 듯?)

Vercel CDN 인천의 캐시가 남아있는 듯

(3)
- App Runner에 사용자 도메인 연결을 시도해봄. 
- App Runner 사용자 도메인 목록에서 해당 도메인의 상태가 'DNS 검증 대기' 도메인 작동을 안 함, 
- 약 30분 내외가 지난 후, 다시 앱러너 사용자 도메인 목록을 확인해보니 상태는 '생성 실패'

 

(4) '생성실패' 메시지 확인 후 재시도 -> 연결 성공

- 삭제 후 재연결 하니 상태 '활성'으로 변경 됨. 그러나 도메인 연결은 확인 안 됨

- 크롬 브라우저 대신 엣지 브라우저로 접속하니 연결 됨 (클라이언트 브라우저의 캐시 문제 일 수 있음)

- 수 시간 지난 후 크롬 브라우저에서도 정상 연결됨을 확인

- 즉, 새 도메인(spartaclub.shop)을 App Runner에 연결 시도한지 30분 내의 어느 시점에 성공 한 것,

—> App Runner 커스텀 도메인 연결시 절차대로 했으나 상태 'DNS 검증 보류 중', 혹은 '연결 실패' 메시지가 보이면

'DNS 검증 보류' 상태일 때 48시간 마냥 기다리기 보다, 시간이 1시간 이상 지났다면, 연결 삭제 후 재연결 시도 해보는 게 맞지 않나 싶다.  

댓글