배경
기존의 웹 애플리케이션은 admin용으로, jsp 혹은 thymeleaf로 구성되어 있어 추가적인 배포 환경 구성 없이 spring boot applicaiton 배포만으로 진행했다.
하지만 이번 admin project에서는 admin api 서버 application에 view를 바로 붙이지 않고, react를 이용해 view 페이지를 구성했고, 이에 따라 배포 방식을 다르게 할 필요가 있었다.
이번 프로젝트에서 사용하는 Cloud Service는 네이버 클라우드 플랫폼으로, 팀원 모두가 NCP에서 react와 같은 정적 build 파일을 서버와 연결하는 배포 프로세스를 경험해 본 적이 없었기 때문에 헤맸던 내용을 공유한다.
NCP-Object Storage-Bucket을 통한 정적 웹 사이트 도메인 지정 시도기
AWS에서는 build된 정적 파일들을 S3에 업로드하고, Router 53을 구성하면 정적으로 호스팅 된 웹 페이지에 대해서 도메인 지정이 가능했다.
이와 같은 방식으로 NCP에서 제공하는 Object Storage의 Bucket을 통해서 정적 웹 호스팅을 구현하고, 도메인을 지정하려고 시도했지만 잘 동작하지 않았다.
- 모든 파일과 폴더에 대해서 공개 처리 해보았음
- Global DNS에서 지정할 도메인으로 레코드 값을 CNAME으로 지정하고, 레코드 값에 호스팅 된 정적 url, NCP bucket url 등 여러가지 값을 지정해 시도해보았음
- Bucket 이름을 호스트 네임과 일치시켜 보았음
- 혹시나 하면서 nginx conf 역시 여러가지로 변경해보았음
등의 여러가지 방법들을 시도해봤지만 접근 도메인이 변경되지 않거나, 도메인이 변경은 되었지만 정적 파일들과 연결이 되지 않거나 하면서 의도대로 작동하지 않았다.
결론 | Object Storage를 통한 정적 웹 사이트 호스팅에는 도메인 지정 불가
결론부터 말하자면, NCP의 Object Storage를 통한 정적 웹 사이트 호스팅에는 도메인을 붙일 수 없다!
답변일 (23.06.20) 기준 NCP 자체에서 정적 웹 사이트 호스팅에 대해 사용자 지정 도메인 연결을 지원하지 않는다는 것을 공식적으로 확인받았다.
NCP의 Object Strorage의 관련 문서를 볼 때 관련 내용이 없다는 것에서부터 의구심을 가졌어야 했는데, 제멋대로 NCP 서비스들이 AWS 기반일 거라고 생각하고, AWS 기반의 해결책들을 시도해본 것이 가장 큰 패착이었다.
이에 따라 NCP의 Object Stroage를 통한 정적 웹 사이트 호스팅을 통해 배포 환경을 구성하는 것은 포기했고, 배포된 api 서버에서 정적 build 파일들을 읽어 nginx.conf 파일에서 루트 경로에 대해 react build 경로를 잡아주도록 설정했다.
관련해서 github actions를 적용한 내용을 이후 포스팅으로 이어가려고 한다.
'back-end > deployment' 카테고리의 다른 글
github actions/ haythem/public-ip@v1.3 라이브러리를 사용해 actions 실행 IP를 가져올 때 간헐적으로 정상 동작이 되지 않는 문제 (0) | 2023.07.19 |
---|