Cloud SQL로 Google Cloud App Engine의 데이터베이스 호스팅
Cloud SQL 인스턴스 만들기
프로젝트의 Google Cloud Console에서 Storage -> SQL -> Create Instance로 이동합니다.
인스턴스 ID, 지역/영역, 스토리지 용량과 같은 옵션은 사용자에게 달려 있습니다. 이러한 구성이 완료되면 아래와 같이 인스턴스의 IP 주소와 연결 이름이 필요합니다.
사용자 계정에는 "IAM 및 관리자"섹션의 "IAM"부분에 있는 "Cloud SQL 관리자"권한이 있어야 합니다.
Cloud SQL API와 함께 Cloud Admin API를 사용 설정해야 합니다. 이들은 "API's and Services"메뉴 섹션에서 찾을 수 있습니다. 또한
gcloud
명령줄 도구를 통해 Google Cloud 애플리케이션을 제어할 수 있는 Google Cloud SDK가 설치되어 있어야 합니다. Google Cloud SDK를 처음 사용할 때 gcloud init
를 실행해야 합니다. . 마지막으로 Google Cloud SDK에 접속하여 데이터베이스 인스턴스를 로컬에서 유지하려면 인스턴스의 "연결"영역("네트워크 추가")에 승인된 네트워크로 IP 주소를 나열해야 합니다.Cloud SQL 인스턴스에 액세스
Cloud Shell을 사용하여 연결하려면
gcloud sql connect [INSTANCE_NAME] --user=root
를 실행하고 비밀번호를 입력하십시오. 암호화 없이 인스턴스에 연결하려면 mysql --host=[INSTANCE_IP] --user=root --password
(위 예에서 INSTANCE_IP는 0.00.000.000임)를 사용하여 MySQL에 쉘을 적용하고 인스턴스에 대해 생성한 암호를 입력할 수 있습니다. 참고: 이 방법은 안전하지 않으며 민감한 정보를 관리하는 경우 SSL 연결을 추구해야 합니다.Cloud SQL 인스턴스에 앱 연결: app.yaml
App Engine 앱은 구성 및 환경 변수에 app.yaml 파일을 사용합니다. 아직 없는 경우 루트 디렉터리에 app.yaml 파일을 만듭니다. 참고: app.yaml 파일은 프로젝트의 루트 디렉터리에 있어야 합니다. 다음 정보를 포함해야 합니다(최소한).
runtime: nodejs10
env_variables:
DB_USER: "root"
DB_NAME: "<database name>"
DB_PASS: "<instance password>"
DB_INSTANCE_CONNECTION_NAME: "<instance connection name>"
호스트(IP 주소)는 프로덕션에서만 사용되지만 인스턴스 연결 이름은 배포 시 연결됩니다. 프로덕션의 경우 .env 파일에 다음 정보가 필요합니다.
DB_USER: "root"
DB_NAME: "<database name>"
DB_PASS: "<instance password>"
DB_HOST: "<instance ip>"
프로덕션에서 연결 구성은 다음과 같습니다(여기서 호스트 속성 뒤의 구성을 조정할 수 있음).
const connection = mysql.createPool({
user: process.env.DB_USER,
password: process.env.DB_PASS,
database: process.env.DB_NAME,
host: process.env.DB_HOST,
connectTimeout: 10000,
acquireTimeout: 10000,
waitForConnections: true,
queueLimit: 0,
});
한편, 배포 시 소켓을 통해 앱을 데이터베이스에 연결해야 하므로 데이터베이스에 대한 소켓 경로를 설정해 보겠습니다(다시 말하지만 구성은 빠르고 정확하지 않습니다).
poolConnection = mysql.createPool({
user: process.env.DB_USER,
password: process.env.DB_PASS,
database: process.env.DB_NAME,
socketPath: `/cloudsql/${process.env.DB_INSTANCE_CONNECTION_NAME}`,
connectTimeout: 10000,
acquireTimeout: 10000,
waitForConnections: true,
connectionLimit: 20,
queueLimit: 20,
});
위에 사용된
createPool
에 주목하십시오. 풀 연결은 데이터베이스 작업에서 구현하려는 데이터베이스 연결 방식의 중요한 부분입니다. 다른 블로그 게시물에서 해당 주제에 대해 자세히 설명합니다! 하지만 지금은 Cloud SQL 데이터베이스 인스턴스를 만들고 유지 관리를 위해 액세스하고 프로덕션 및 배포 모드를 위해 앱을 연결하는 방법을 배웠습니다. 이 튜토리얼이 도움이 되었기를 바랍니다!
Reference
이 문제에 관하여(Cloud SQL로 Google Cloud App Engine의 데이터베이스 호스팅), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/gduple/hosting-your-google-cloud-app-engine-s-database-with-cloud-sql-nhn텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)