[GCP] CLOUD SQL - Ubuntu 내 Django 연동

Jihyun Lee·2022년 12월 23일
0
post-thumbnail

계기

Ubuntu server 내의 django와 GCP SQL 을 연결해 주고자 하여, 설정하게 되었다.

GCP

SSH 설정

  • '연결'에서 접속 허용할 네트워크 설정

계정 생성

  • root 그대로를 사용해도 되지만, root로는 주로 작업하지 않으므로 대체할 계정 생성

데이터베이스 만들기

  • 연동해 줄 데이터베이스 생성

Ubuntu

설치

  • 연동하기 위해서는 mysql-client가 설치되어있어야 함
# 설치 
sudo apt install mysql-client-core-8.0

# 실행
mysql -h {공개 ip 주소} -u {계정명} -p

# mysql > 로 접속되는 것 확인 후, exit

django DB 연결

  • DATABASE 파트에 이하와 같이 작성

    GAE_APPLICATION
    : GAE는 Googla App Engine Application을 줄인 말로, App Engine하고 연동했을 때(배포했을 때)는 if 절 조건을 수행하고, 반대로 개발 환경일 경우에는 else 절 조건을 수행
    개발환경과 배포환경의 설정을 다르게 하겠다는 뜻

if os.getenv('GAE_APPLICATION', None):
	DATABASES = {
		'default': {
			'ENGINE'    : 'django.db.backends.mysql',
			'NAME'      : '{DB명}',
			'USER'      : '{계정명}',
			'PASSWORD'  : '{비밀번호}',
			'HOST'      : 'cloudsql/{인스턴스이름}',
		}
	}
else:
	DATABASES = {
		'default':{
			'ENGINE' : 'django.db.backends.mysql',
			'NAME' : '{DB명}',
			'USER' : '{계정명}',
			'PASSWORD' : '{비밀번호}',
			'HOST' : '{공개 IP}',
			'PORT' : '3306',
		}
	}

migrate

  • DB가 변경되었으므로 적용 시키기 위해 migrate
python manage.py migrate

서버 실행

  • 문제 없이 넘어갔다면 서버를 실행 테스트
python manage.py runserver


중간에 계속 migrate가 되지 않고 오류가 났었는데, GCP SQL과 잘 연동되지 않아서였다.
공식 문서도 보고 tar파일 deb 등 깔아보고 했지만 안됐었는데, mysql-client를 꼭! 깔고 다른 작업들을 해 주어야한다는 점, 기억하기.

참고 : Google App Engine / Storage를 사용한 Django 웹 애플리케이션 구축

0개의 댓글