일반 문제
클라우드타입 사용 중 자주 발생하는 일반적인 문제와 해결 방법
일반
배포 시 루트 디렉토리를 기준으로 빌드가 진행됩니다. 저장소의 루트 디렉토리가 아닌 서브 디렉토리에 실행할 소스가 있는 경우 별도로 서브 디렉토리를 지정해주어야 합니다.
배포할 프로젝트를 개발할 때 적용한 JDK, Python, Node.js 등의 버전과 cloudtype의 배포 설정에 적용한 버전이 서로 다를 경우 서비스가 정상적으로 빌드 혹은 실행되지 않습니다. 프로젝트의 언어/플랫폼 버전에 따라 배포 설정의 버전을 알맞게 설정한 후 재배포하세요.
특정 포트에서 서비스되는 프로젝트의 경우, 배포 설정에서 포트 번호가 누락되거나 잘못 입력되면 정상적으로 실행되지 않을 수 있습니다. 특정 포트에 바인딩 되지 않는 프로젝트의 경우, 배포 설정에서 포트 번호 항목을 공란으로 두어야 합니다.
cloudtype 에서 제공하는 템플릿은 기본 모듈 및 라이브러리가 상이합니다. Windows, Chrome 라이브러리처럼 기본으로 제공되지 않는 라이브러리를 사용하려는 경우, Dockerfile을 작성해서 배포해야 합니다.
CORS는 각 프레임워크 별로 그 해결방법이 상이하며, 각 프레임워크에서 지원하는 라이브러리 혹은 모듈을 활용하여 발생하는 이슈를 해결할 수 있습니다. Next.js 등과 같이 자체적으로 리버스 프록시를 지원하는 프레임워크를 사용하면 내장된 Rewrites 기능으로 해결할 수 있으며, Reat, Vue와 같은 프론트엔드를 배포할 때에는 Rewrites 설정을 통해 리버스 프록시를 적용할 수 있습니다.
서비스 패널의 플레이 버튼으로 재시작 후 실행로그를 확인해보세요. 어떤 로그도 표시되지 않는다면 서비스 상세 페이지의 이벤트탭에서 발생한 이벤트를 확인하여 문제를 해결해야합니다.
프리티어 플랜에서 구독 플랜(Hobby, Pro)으로 전환한 경우, 배포된 서비스에 구독 리소스가 자동으로 적용되지 않습니다. 프리티어 라벨이 붙은 서비스의 설정화면에서 구독 리소스를 적용한 후 다시 배포하면, 구독리소스가 적용되어 서비스가 중단되지 않습니다.
JVM 기반의 어플리케이션을 배포하는 경우 JVM에 할당한 메모리가 사용 가능한 리소스의 범위를 초과할 때 OOM이 발생할 수 있으며, Node.js 역시 heap 메모리의 부족으로 같은 현상이 발생할 수 있습니다. 언어 혹은 프레임워크에서 적절하게 메모리를 부여하거나 리소스를 추가로 할당하여 배포해야 합니다.
일반적인 프레임워크에서는
TZ라는 환경변수를 통해 타임존을 설정할 수 있으며, 여기 제시된 일람에 따라 국가 및 도시를 설정할 수 있습니다. 이외의 방법은 사용하고 있는 프레임워크의 공식문서를 참고하시기 바랍니다.
HTML 템플릿은 기본적으로 github 저장소 내 최상위(루트) 디렉토리의
index.html파일을 렌더링하여 홈 화면으로 설정합니다. 저장소 내의 html 파일명을 확인해주세요.
클라우드플레어 연결 후 ERR_TOO_MANY_REDIRECTS 발생할 때 SSL/TLS 암호화 모드가 가변으로 되어 있는 경우, 전체 혹은 전체(엄격)으로 변경이 필요합니다. 도메인 연결 과정에서는 프록시 상태 체크를 해제해야 합니다. 인증서 발급까지 완료된 경우 프록시를 다시 체크하여 활성화 해주세요.
현재 클라우드타입은 디스크 마운트를 지원하지 않아 어플리케이션에서 파일로 출력하더라도 영구히 저장되지 않습니다. 추후 디스크 마운트 기능을 지원 예정이며, 로그 수집은 Papertrail과 같은 서비스를 사용하는 것을 권장합니다.
컨테이너 기반 서비스 특성상 VM과는 달리 클라우드타입의 터미널은 디버깅 및 확인 용도로만 사용하는 것을 권장합니다. 또한 터미널에서 조작한 모든 설정은 재시작시 초기화됩니다. 설치가 필요한 라이브러리 등이 있다면 Dockerfile 을 통해 배포해주세요.
서비스 배포 후 50X 발생 시, 실행 로그 결과에 따라 다음과 같은 케이스로 나눠 살펴볼 수 있습니다.
1️⃣ 어플리케이션이 정상적으로 구동되지 않고 예외가 발생하거나 서버가 종료된 경우
어플리케이션 구동에 필요한 패키지가 정상적으로 설치되지 않았거나 데이터베이스 연결이 실패했을 수 있습니다. 실행 로그의 에러 메세지를 기반으로 소스 내용 및 환경 변수 등을 확인해주세요.
2️⃣ 서버는 정상적으로 구동됐는데 권한과 관련된 에러가 발생하는 경우
언어 및 프레임워크 중 특정 도메인 규칙에 대하여 CORS 허용 규칙을 적용해주어야 접속가능한 것이 있습니다. 리버스 프록시 페이지를 참고해주세요.
3️⃣ 빌드가 정상적으로 완료 되었는데 상태가 ‘시작중’에서 바뀌지 않고 생성된 URL에 접속해도 503 페이지만 뜨는 경우
루트 디렉토리가 아닌 서브디렉토리에 코드가 존재하는 경우 이러한 상황이 발생할 수 있습니다. 사용자의 저장소를 디렉토리를 확인하고, 해당되는 경우 서브디렉토리 설정을 추가해주세요.
4️⃣ 서버는 정상적으로 구동됐는데 접속시 에러창이 뜨고 실행 로그에 아무런 반응이 없는 경우
소스 코드에 설정된 포트가 배포시에 작성하신 포트와 불일치할 경우일 확률이 높습니다. 입력한 포트를 확인해주세요.