picture
  1. 환경변수 설정

클라우드타입의 환경변수는 공통변수와 시크릿으로 구성되어 있으며, 각 프로젝트 내의 배포환경 혹은 개별 서비스에 설정할 수 있습니다. 프로젝트 내에 환경변수를 설정하게 되면 공통으로 사용되는 환경변수 값을 서비스 배포 시 반복적으로 입력할 필요가 없기 때문에 효율적인 개발이 가능합니다.

배포환경 레벨

프로젝트 설정 내 환경변수 추가

프로젝트 패널의 우측 상단에 위치한 버튼을 클릭하여 설정 화면에 진입합니다.

공통변수 설정

암호화가 불필요한 정보는 공통변수로 설정합니다.

  • 배포 환경 설정(development/production)
  • 디버깅 모드 옵션
  • 데이터베이스 스키마 이름

시크릿 설정

서비스 내에서 활용되는 보안상 민감한 값은 반드시 시크릿으로 설정해야합니다. 시크릿으로 설정된 값은 클라우드타입 클러스터 내의 시크릿 저장소에 암호화되어 별도로 관리됩니다.

  • API 키
  • 데이터베이스 접속 정보
  • 각종 토큰값

서비스 레벨

환경변수 사용하기(프로젝트 설정 변수)

배포 창의 Environment Variables 항목에서 왼쪽 필드에는 서비스에 설정된 키를, 오른쪽 필드에는 아이콘을 눌러 프로젝트 설정에서 미리 저장했던 공통변수의 이름을 선택합니다. 하단의 이미지는 flask-env 라는 이름으로 저장되어 있는 공통변수가 조회되는 모습을 나타내고 있습니다.

환경변수 사용하기(서비스 개별 설정 변수)

프로젝트의 각 배포환경에서 미리 저장된 공통변수나 시크릿을 사용하지 않고 직접 값을 입력하여 개별 서비스에 적용할 수 있습니다. 하단의 이미지와 같이 왼쪽 환경변수 필드에 대응되는 값을 오른쪽 필드에 입력하고 배포를 진행하면 됩니다.

로컬에서 개발 시 환경변수를 주입하기 위해 사용하는 .env 파일이 GitHub 저장소에 반영되면 보안에 치명적인 영향을 끼칠 수 있습니다. 소스 커밋 전, .gitignore 파일에 .env를 추가하여 저장소에 파일이 반영되지 않도록 유의해주세요.

Yaml 설정에서 사용하기

대시보드가 아닌 CLI 혹은 CI 도구에서 서비스를 배포하는 데에 활용되는 yaml 예시입니다.
아래 코드와 같이 var(공통변수)secret(시크릿) 속성을 사용합니다.

name: flask
options:
env:
- name: FLASK_ENV
var: flask-env
- name: DB_PASSWORD
secret: mariadb-root-password
ports: 5000
start: gunicorn -b 0.0.0.0:5000 app:app
context:
git:
url: https://github.com/cloudtype-examples/flask.git
branch: main
preset: python-flask

만약 프로젝트 설정에서 미리 저장한 값이 아니라 배포시점에 직접 환경변수 값을 입력하는 경우, value 속성에 값을 작성해주어야 합니다.

name: flask
options:
env:
- name: FLASK_ENV
value: production
ports: 5000
start: gunicorn -b 0.0.0.0:5000 app:app
context:
git:
url: https://github.com/cloudtype-examples/flask.git
branch: main
preset: python-flask

가이드 영상

공통변수 및 시크릿 활용

사용에 문제나 어려움이 있다면 디스코드 채널에서 문의하세요.
디스코드 링크