클라우드타입(Cloudtype)으로 프로젝트 무료 배포, 장점, 방법, DB 접속
AWS EC2의 변경된 프리티어 정책으로 인해 발생하는 과금 문제를 피하고자, 국내 PaaS 서비스인 Cloudtype을 사용하여 프로젝트를 배포한 경험을 공유하고자 합니다. Cloudtype은 GitHub에 작성한 코드를 클라우드 서버에 간편하게 배포할 수 있는 호스팅 서비스로, 국내 기업의 강력한 지원과 편리한 이슈 대응이 큰 장점입니다.
클라우드타입(Cloudtype)으로 배포하기
Cloudtype 를 선택한 이유
AWS EC2 프리티어 정책 변경: 2024년 2월부터 EC2 사용 시 프리티어임에도 불구하고 Public IP 발급에 따른 비용이 발생하게 되었습니다. 이로 인해 비용 부담을 최소화하고자 Cloudtype을 선택하게 되었습니다.
국내 서비스의 장점: 호스팅 도중 발생할 수 있는 다양한 이슈에 대한 문의 처리가 매우 신속하고 편리합니다. 특히, 도메인 생성 문제로 발생한 이슈를 온라인 채팅을 통해 즉시 해결할 수 있었던 점이 인상적이었습니다.
Hobby 모드 제공: Cloudtype은 Hobby 모드를 통해 1GB 메모리를 무료로 제공하며, 프리뷰 도메인과 HTTPS(TLS) 인증서를 자동으로 발급받을 수 있어 프로젝트 배포에 아주 적합한 환경을 제공합니다.
Cloudtype 배포 과정
위 화면은 cloudtype으로 배포한 애플리케이션을 캡쳐한 사진입니다. 이 배포까지 진행했던 과정에 대해 소개하겠습니다.
1. Cloudtype 가입
가장 먼저 Cloudtype 가입부터 진행합니다. 사이트는 위의 링크를 통해 접속하면 아래와 같은 화면이 바로 나옵니다. 사이트 로그인 화면으로 계정이 없다면 회원가입을 진행합니다.
회원가입은 이메일 주소로도 되지만 github, google, microsoft 계정으로도 가입이 됩니다. 필자는 github 계정으로 가입을 진행했습니다.
가입이 끝나고 로그인하면 아래와 같은 화면이 나옵니다. 여기서 배포 진행을 위해 화면 가운데 보이는 + 버튼을 클릭합니다.
+버튼 클릭하면 아래처럼 화면이 나옵니다. 배포 템플릿을 고르는 화면인데 여기서 필자는 기존에 등록해놓은 깃허브 자료를 그대로 가져와서 사용할 거라 '내 GitHub 저장소 배포하기'를 사용하였습니다. 과정은 비슷하니 필요에 따라 다른 템플릿 배포가 요구되면 상황에 맞게 진행 바랍니다.
GitHub저장소 배포하기를 클릭하면 아래처럼 GitHub 저장소와 프로젝트 선택할 수 있는 박스가 나옵니다. 여기서 배포할 프로젝트를 선택할 수 있습니다.
만약 자신의 계정이 보이지 않는다면 왼쪽 셀렉트박스 클릭하면 아래처럼 Github 계정 추가할 수 있는 선택버튼이 나옵니다. 여기서 계정 추가할 수 있습니다.
계정 선택 후 프로젝트까지 지정하면 아래와 같은 추가 설정란이 나옵니다. 서비스 이름은 프로젝트명과 같이 적히게 되고, 여기서 프로젝트에 맞는 언어/프레임웍을 선택합니다.
*참고로 필자가 배포한 프로젝트는 다음과 같습니다.
필자는 node환경에서 진행한 프로젝트로 node를 선택하였습니다. 언어/프레임웍을 선택하면 아래처럼 추가 설정란이 나옵니다. 여기서는 애플리케이션 버전, 환경변수, 포트, install/build/start command 및 health check를 설정할 수 있습니다. 이 설정은 배포하기 이후에서 설정 페이지에서 수정 가능합니다.
먼저, 필자는 프로젝트에서 진행한 버전이 맞지 않아 버전(v16 → v21)부터 수정했습니다.
참고로 노드 버전 확인하고 싶다면 cmd 창에서 node -v를 입력하여 알 수 있습니다.
그 외에도 환경변수와 포트, command 설정을 마치고 배포하기를 진행했습니다.
여기서 결제수단 등록이 안되어있다면 배포 전 아래와 같은 화면이 나옵니다. 이는 무료버전 사용할 때도 똑같이 적용되며 결제 진행을 하지 않더라도 결제수단 등록을 해야 합니다. 카드는 신용카드나 체크카드면 가능합니다.
위 화면에서 카드 모양 아이콘을 클릭하면 아래처럼 카드 정보를 입력하는 화면이 나옵니다. 여기서 등록할 카드 정보를 입력합니다.
이후 본인 정보와 함께 핸드폰 인증 작업을 진행합니다.
본인 확인까지 마치면 바로 배포가 시작됩니다.
배포는 필자의 경우 2~3분 정도 진행되었으며, 배포가 성공적으로 진행되었으면 아래처럼 '실행 중'이라는 글씨와 함께 서비스가 등록된 걸 확인할 수 있었습니다.
여기서 서비스 배포 과정을 보고 싶다면 위 사진의 왼쪽 하단에 있는 프롬프르 아이콘을 클릭하면 아래와 같은 화면이 나옵니다. 오른쪽 상단을 보면 YAML, 빌드로그, 실행로그, 터미널 네개의 탭이 있는 것을 볼 수 있습니다.
먼저 YAML은 구성파일 작성하는 화면으로 배포시 설정한 항목이 전부 여기에 적혀 있는 걸 볼 수 있습니다.
빌드로그에서는 빌드 과정을 살펴볼 수 있습니다. 마지막에 complete 된걸 볼 수 있습니다.
실행 로그는 빌드가 끝나고 프로젝트 실행에 관한 로그들을 확인할 수 있습니다.
마지막으로 터미널에서는 해당 서버 내의 다양한 상태 명령을 할 수 있습니다.
PostgreSQL 배포과정
위 배포를 마치고 프로젝트에서 사용하는 PostgreSQL도 클라우드 환경에서 사용할 수 있도록 cloudtype에서 설정했습니다. 위 과정과 대부분 유사했습니다.
아래처럼 서비스 등록화면에서 PostgreSQL을 선택합니다.
아래 사진을 보면 node 배포하는것처럼 서비스 설정화면이 나타납니다. 여기서 사용할 프로젝트 선택하고, postgresql의 버전도 선택합니다.
그 다음으로 db의 root 계정의 username과 root password를 설정한 후 배포하기를 진행하면 끝입니다.
그러면 몇 분간 배포 진행 후 아래처럼 실행 중이라는 화면을 볼 수 있습니다.
위의 아이콘을 클릭하면 아래처럼 화면이 나옵니다. 배포가 적용되는 걸 확인할 수 있고, 이 배포한 db를 사용하기 위해서는 연결을 들어갑니다.
연결을 들어가면 svc로 시작하는 링크와 내부연결 url이 보입니다. 먼저 내부연결 url은 이 db가 있는 프로젝트 서비스끼리 사용할 수 있는 url 입니다. 위에서 node 배포한 서비스와 db가 같은 auth-pay-api 프로젝트 안에 있는 걸 봤을 것입니다. 둘은 같은 프로젝트 안에 있기 때문에 node 프로젝트 환경변수에 내부연결 url을 넣어 바로 사용할 수 있습니다.
그리고 위에 있는 svc로 시작하는 링크는 외부에서 접속할 수 있는 링크로 이 링크를 활성화 하기 위해서는 외부 접속을 허용하는 설정을 해야합니다.
설정은 이 db 화면을 나가서 아래처럼 메인 페이지, 프로젝트가 보이는 화면 오른쪽에 톱니바퀴모양의 설정을 들어가야합니다.
그후 설정창 아래에 있는 방화벽에서 TCP 외부 접속 허용하기를 활성화한 후 '적용하기'를 클릭하면 됩니다. 그러면 svc로 시작하는 링크를 외부에서도 사용할 수 있습니다.
비록 이 과정을 설명하는 데는 몇 십분밖에 걸리지 않지만, 실제로 몇 시간에 걸쳐 진행되었습니다. 그럼에도 불구하고, 계획대로 서비스가 구동하는 것을 보며 큰 성취감을 느낄 수 있었습니다.
설명을 최대한 진행한대로 이해되기 쉽게 적으려 했지만 그럼에도 이해가 가지 않거나 좀 더 알고 싶은 사항이 있다면 아래 페이지를 참고 바랍니다.
Cloudtype을 사용하면서 번거로운 배포 과정 없이 손쉽게 작업할 수 있었던 점은 큰 장점이었습니다. 비록 다른 배포 과정에서 얻을 수 있는 학습 기회가 상대적으로 적을 수 있지만, 서비스를 빠르고 간편하게 배포할 수 있다는 점에서 큰 만족감을 느꼈습니다. Cloudtype의 무료버전을 사용할 경우 일부 제한 사항이 있음에도 불구하고, 프로젝트 초기 단계에서는 매우 유용한 서비스인 듯 합니다.
▼ 이전 진행한 프로젝트 기록 ▼
'사이드 프로젝트 > 로그인 & 회원가입 & 결제' 카테고리의 다른 글
로그인 & 회원가입 & 결재 프로젝트 KPT (0) | 2024.03.29 |
---|---|
온라인 쇼핑몰에서의 할인 전략, 쿠폰과 포인트의 최적 적용 순서 (0) | 2024.03.27 |
프로젝트 작업 기록 - 예시 코드 clone, 동작 확인 (docker, DB 세팅) (0) | 2024.03.20 |
로그인, 회원가입, 결제 기능 프로젝트 기획, NestJS와 TypeORM 채택 (0) | 2024.03.18 |