Google Compute Engine에서 MySQL을 설정하는 방법

Google Cloud 프로젝트 중 MySQL 배포를 위해서는 여러 방법이 있습니다. Cloud SQL 또는 Google Cloud Marketplace를 사용하거나 MySQL을 Compute Engine에 직접 설치할 수 있습니다.

Cloud SQL은 MySQL을 웹 서비스로 제공합니다. Cloud SQL을 사용하여 Google Cloud에 MySQL 데이터베이스를 호스팅하고 Google Cloud가 복제, 패치 관리, 데이터베이스 관리와 같은 관리 작업을 수행하도록 할 수 있습니다.

Cloud Marketplace는 MySQL을 Compute Engine 인스턴스에 쉽게 설치할 수 있게 해주는 간단한 클릭하여 배포 인터페이스를 제공합니다. Cloud Marketplace에는 독립형 MySQL 설치뿐만 아니라 LAMP 스택, LEMP 스택, Percona MySQL 클러스터를 비롯한 MySQL을 사용하는 여러 웹 개발 스택이 포함되어 있습니다.

MySQL을 수동으로 설치하고 맞춤설정하려면 Compute Engine을 사용해서 몇 분 내에 MySQL 데이터베이스를 만들 수 있습니다. 이 문서에서는 선택할 옵션을 안내하고, Compute Engine에 MySQL 데이터베이스를 수동으로 설치하는 방법을 설명합니다.

올바른 MySQL 배포 옵션을 선택하는 방법

Cloud SQL은 Google Cloud로 백엔드 데이터베이스 및 서버 관리 작업을 편리하게 수행하려는 경우에 효과적인 방법입니다. 예를 들어 Cloud SQL은 자동화된 백업 및 특정 point-in-time recovery를 제공합니다. 또한 데이터가 여러 영역 간에 복제되어 가용성과 탄력성이 향상됩니다.

Cloud SQL에서 지원되지 않는 MySQL 기능이 필요한 경우 Compute Engine에 MySQL을 설치해야 할 수 있습니다. 예를 들어 Cloud SQL은 사용자 정의 함수 또는 SUPER 권한을 지원하지 않습니다. 자세한 내용은 Cloud SQL FAQ를 참조하세요.

Compute Engine에 MySQL을 설치하도록 결정한 경우에는 Cloud Marketplace를 사용하여 MySQL 설치를 배포하거나 Compute Engine 인스턴스에 직접 MySQL을 설치할 수 있습니다. Cloud Marketplace는 MySQL을 더 큰 개발 스택으로 배포할 수 있는 편리한 방법을 제공합니다. Cloud Marketplace는 독립형 MySQL 설치, LAMP 스택, LEMP 스택, Nginx 스택, Percona MySQL 클러스터 설치를 비롯한 MySQL 설치 옵션과 기타 여러 옵션을 제공합니다.

Cloud Marketplace로 요구가 충족되지 않을 경우에는 Compute Engine 인스턴스에 직접 MySQL을 설치할 수 있습니다. 예를 들어 자신이 만든 커스텀 이미지에 MySQL을 배포하거나, 설치 프로세스를 완전히 제어할 수도 있습니다.

Compute Engine 인스턴스에 MySQL을 수동으로 설치하기 위해서는 Compute Engine 인스턴스를 만들고 인스턴스에 직접 MySQL을 설치해야 합니다. 이 문서의 나머지 부분에서는 Compute Engine 인스턴스에 MySQL을 수동으로 설치하는 방법을 설명합니다.

목표

  • Compute Engine 인스턴스 만들기
  • MySQL 설치
  • MySQL에 연결

기본 요건

  1. Google Cloud Console에서 새 프로젝트를 만듭니다. 기존 프로젝트를 사용할 수 있지만, 새 프로젝트를 만들면 더 쉽게 삭제할 수 있습니다.

    Google Cloud Console을 사용하여 이 문서의 모든 단계를 완료할 수 있지만, gcloud 명령줄 도구를 사용하고 싶으면, 다음 안내에 따라 Compute Engine API를 사용 설정하고 Cloud SDK를 설치합니다.

  2. Google Cloud Console을 사용하여 Compute Engine API를 사용 설정합니다.

  3. Cloud SDK를 설치합니다.

  4. 작업공간을 구성하여 명령을 간결하게 만듭니다. 다음 명령어에서 [PROJECT_ID][ZONE]을 해당 프로젝트 값으로 바꿉니다. 영역의 전체 목록은 사용 가능한 지역 및 영역을 참조하세요.

    gcloud config set project [PROJECT_ID]
    gcloud config set compute/zone [ZONE]
    

Compute Engine 인스턴스 만들기

MySQL에 사용할 Compute Engine 인스턴스를 만들고 새로 생성된 인스턴스에 대한 SSH 연결을 설정합니다. 기본 운영체제는 Debian 버전 9입니다. 이 가이드에 다른 운영체제를 사용하려는 경우 Compute Engine 문서의 공개 이미지 페이지에 설명된 옵션 중에서 선택할 수 있습니다.

Console

Google Cloud Console에서 Compute Engine 인스턴스를 만들려면 다음 안내를 따르세요.

  1. Google Cloud Console을 엽니다.

  2. 새로 생성된 프로젝트를 선택하고 계속을 클릭합니다.

  3. 인스턴스 만들기(기존 인스턴스가 있으면 새 인스턴스)를 클릭합니다. 인스턴스 이름을 mysql-test로 지정합니다.

  4. 기본값 이외의 다른 운영체제를 지정하려면 부팅 디스크 섹션에서 변경을 클릭하여 부팅 디스크의 속성을 구성합니다. 공개 이미지 탭에서 운영체제를 선택한 후 저장을 클릭합니다.

  5. 만들기를 클릭합니다.

SSH 연결을 설정하려면 다음 안내를 따르세요.

  1. VM 인스턴스 페이지의 목록에서 새 VM 인스턴스를 찾습니다.

  2. 연결 열에서 를 클릭합니다. 브라우저 창에 SSH 터미널이 열립니다.

gcloud

  1. Compute Engine 인스턴스를 만들려면 gcloud compute instances create 명령어를 사용합니다. 다른 운영체제를 사용하려면 이미지 이름 앞에 --image 매개변수를 추가합니다. 예를 들어 Debian 9를 사용하려면 --image debian-9를 추가합니다.

    gcloud compute instances create mysql-test
    
  2. ssh를 사용하여 인스턴스에 연결합니다.

    gcloud compute ssh mysql-test
    

MySQL 설치

다음 단계에서는 Compute Engine 인스턴스에 MySQL을 설치하는 방법을 설명합니다.

Debian 및 Ubuntu

  1. apt-get 패키지 관리자를 업데이트합니다.

    sudo apt-get update
    
  2. MySQL을 설치합니다. 설치 과정에서 MySQL 서비스가 자동으로 시작됩니다.

    sudo apt-get -y install mysql-server
    

CentOS 6 및 RHEL 6

  1. MySQL을 설치합니다.

    sudo yum -y install mysql-server
    
  2. MySQL 서버를 시작합니다.

    sudo service mysqld start
    

CentOS 7 및 RHEL 7

CentOS 및 RHEL의 버전 7에서는 패키지 관리 시스템의 일부로 MySQL 대신 MariaDB가 포함됩니다. CentOS 7에 MySQL을 설치하려면 우선 패키지 관리자를 업데이트해야 합니다.

  1. MySQL을 포함하도록 패키지 관리자를 업데이트합니다.

    sudo rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
    
  2. MySQL을 설치합니다.

    sudo yum -y install mysql-community-server
    
  3. MySQL 서버를 시작합니다.

    sudo /usr/bin/systemctl start mysqld
    

MySQL 설치 보안 강화

MySQL 설치 보안을 강화하려면 mysql_secure_installation 명령어를 실행합니다. 설치 과정 중에 비밀번호를 설정하지 않은 경우 이 단계에서 비밀번호를 만듭니다. 이 명령어에 대한 자세한 내용은 MySQL 문서에서 mysql_secure_installation 부분을 참조하세요.

sudo mysql_secure_installation

MySQL에 연결

다음 단계에서는 mysql-test 인스턴스에서 MySQL에 연결하는 방법을 설명합니다.

  1. MySQL 클라이언트를 사용하여 MySQL에 연결합니다.

    sudo mysql -u root -p
    

    MySQL에 연결하면 프롬프트가 다음과 같이 변경됩니다.

    mysql>

    이제 MySQL 명령어를 실행할 수 있습니다. 예를 들어 다음 명령어는 실행 중인 스레드 및 현재 연결을 보여줍니다.

    mysql> SHOW processlist;
    +----+------+-----------+------+---------+------+-------+------------------+
    | Id | User | Host      | db   | Command | Time | State | Info             |
    +----+------+-----------+------+---------+------+-------+------------------+
    | 51 | root | localhost | NULL | Query   |    0 | NULL  | show processlist |
    +----+------+-----------+------+---------+------+-------+------------------+
    1 row in set (0.00 sec)

    다음 명령어를 사용하여 사용자 목록을 생성할 수 있습니다.

    mysql> SELECT User, Host, Password FROM mysql.user;
    +------------------+------------+-------------------------------------------+
    | User             | Host       | Password                                  |
    +------------------+------------+-------------------------------------------+
    | root             | localhost  | *992C4DB09F487A275976576CCFA554F7D20A4207 |
    | root             | mysql-test | *992C4DB09F487A275976576CCFA554F7D20A4207 |
    | root             | 127.0.0.1  | *992C4DB09F487A275976576CCFA554F7D20A4207 |
    | root             | ::1        | *992C4DB09F487A275976576CCFA554F7D20A4207 |
    | debian-sys-maint | localhost  | *AD7B08AF7691A552A57900F1A9D8AE26ED499117 |
    +------------------+------------+-------------------------------------------+
    5 rows in set (0.00 sec)
  2. 명령어 실행이 완료되었으면 exit 명령어를 사용하여 MySQL 클라이언트를 종료한 후 exit를 다시 사용하여 Compute Engine 인스턴스에서 로그아웃합니다.

    mysql> exit
    exit

삭제

튜토리얼을 완료한 후에는 만든 리소스를 삭제하여 할당량 사용을 중지하고 요금이 청구되지 않도록 할 수 있습니다. 다음 섹션은 이러한 리소스를 삭제하거나 사용 중지하는 방법을 설명합니다.

프로젝트 삭제

비용이 청구되지 않도록 하는 가장 쉬운 방법은 가이드에서 만든 프로젝트를 삭제하는 것입니다.

프로젝트를 삭제하는 방법은 다음과 같습니다.

  1. Cloud Console에서 리소스 관리 페이지로 이동합니다.

    리소스 관리로 이동

  2. 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
  3. 대화상자에서 프로젝트 ID를 입력한 후 종료를 클릭하여 프로젝트를 삭제합니다.

인스턴스 삭제

Compute Engine 인스턴스를 삭제하려면 다음 안내를 따르세요.

  1. Cloud Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 삭제할 인스턴스.
  3. 인스턴스를 삭제하려면 추가 작업을 클릭하고, 삭제를 클릭한 후 안내를 따르세요.

다음 단계

지금까지 MySQL 서버를 Compute Engine에 설치하는 방법을 확인했습니다. MySQL을 사용하는 더 복잡한 애플리케이션을 살펴보려면 Cloud Marketplace에서 MySQL을 사용하는 다양한 개발 스택을 둘러보세요.

고가용성 및 확장성이 필요한 경우 Compute Engine에 MySQL 클러스터를 설치해 보시기 바랍니다. MySQL 클러스터는 비공유 클러스터링 및 자동 샤딩을 통해 고가용성과 확장성을 제공합니다. Cloud Marketplace에서 클릭 한 번으로 간편하게 배포할 수 있는 Percona는 MySQL 클러스터링을 위한 오픈소스 솔루션입니다.

MySQL 확장성을 위한 또 하나의 오픈소스 솔루션은 2011년부터 YouTube의 모든 데이터베이스 트래픽을 처리해 온 Vitess입니다. Vitess는 컨테이너에서 실행되는 애플리케이션에 적합합니다. 컨테이너화 환경에서 Vitess를 사용하는 방법에 대한 자세한 내용은 Kubernetes에서 Vitess 실행을 참조하세요.

MySQL에 대한 자세한 내용은 공식 MySQL 문서를 참조하세요.

Google Cloud에 대한 참조 아키텍처, 다이어그램, 가이드, 권장사항 살펴보기. Cloud 아키텍처 센터 살펴보기