MySQL 환경을 탄력적으로 확장


이 가이드에서는 고가용성 MySQL 데이터베이스 클러스터 배포(기본 및 복제본 데이터베이스)를 수직으로 확장 및 축소하는 방법을 설명합니다. 이 프로세스에는 Compute Engine 인스턴스 수직 확장 및 축소와 디스크 수직 확장이 포함됩니다.

디스크 용량을 수직 확장하는 일반적인 이유는 관리 중인 데이터 증가를 반영하기 위해서입니다.

MySQL을 실행하는 Compute Engine 인스턴스를 수직 확장하는 데에는 몇 가지 이유가 있습니다. 수직 확장이 필요한 이유(역으로 생각하면 축소가 필요한 이유)는 다음과 같습니다.

  • 시스템이 쓰기/읽기 처리량 성능 제한에 도달하려고 합니다. CPU 수 및 메모리가 증가하여 하드웨어 용량도 증가합니다.
  • 시간이 지남에 따라 쿼리 수가 증가하거나, 쿼리 수의 급격한 증가가 예상됩니다(예: 블랙 프라이데이 또는 사이버 먼데이). CPU 수 및 메모리가 증가하면 예약이 발생합니다.
  • 시스템에 추가되는 클라이언트 수 증가 등의 이유로 인해 동시에 실행되는 쿼리 수가 늘어납니다. CPU 수 및 메모리가 증가하면 동시 실행 수준이 높아집니다.
  • Google Cloud에서 일부 Compute Engine 인스턴스 목록에 '성능 향상' 권장사항을 표시하는 경우가 있습니다. 이러한 권장사항은 Compute Engine 인스턴스를 수직 확장할 것인지 판단하는 데 있어 중요한 역할을 합니다.

이 가이드는 다음 역할을 가진 직종에 유용합니다.

  • 확장성을 위해 MySQL 클러스터 배포를 계획 중인 클라우드 설계자
  • MySQL 클러스터를 사용하여 애플리케이션을 구현하는 클라우드 엔지니어
  • MySQL 클러스터를 관리하는 클라우드 운영팀
  • MySQL 클러스터에서 데이터베이스를 관리하고 수직 확장 프로세스를 실행해야 하는 IT 관리자와 데이터베이스 관리자

아키텍처

다음 다이어그램은 가용성이 높은 MySQL 클러스터의 전체 아키텍처를 보여줍니다. 이 가이드에서는 이 아키텍처를 기준으로 수직 확장 프로세스를 설명합니다.

기본 및 복제본 데이터베이스에 배포된 MySQL 클라이언트 인스턴스를 보여주는 수직 확장 프로세스의 아키텍처

이 가이드에서는 사용자가 다음 사항을 잘 알고 있다고 가정합니다.

  • Deployment Manager 및 다양한 명령줄 도구(예: Cloud Shell 및 mysql)를 사용하여 MySQL 클러스터 설정 및 실행
  • Compute Engine 인스턴스 관리 작업
  • Compute Engine 디스크 관리 작업

목표

  • 기본 및 복제본 데이터베이스로 MySQL 클러스터를 설정합니다.
  • 머신 유형을 변경하여 MySQL 클러스터(메모리 및 CPU)의 모든 Compute Engine 인스턴스를 수직으로 확장합니다.
  • 머신 유형을 변경하여 MySQL 클러스터(메모리 및 CPU)의 모든 Compute Engine 인스턴스를 수직으로 축소합니다.
  • Compute Engine 인스턴스의 디스크 크기를 늘립니다.

비용

이 문서에서는 비용이 청구될 수 있는 다음과 같은 Google Cloud 구성요소를 사용합니다.

프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용하세요. Google Cloud를 처음 사용하는 사용자는 무료 체험판을 사용할 수 있습니다.

이 문서에 설명된 태스크를 완료했으면 만든 리소스를 삭제하여 청구가 계속되는 것을 방지할 수 있습니다. 자세한 내용은 삭제를 참조하세요.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. API Compute Engine and Cloud Storage 사용 설정

    API 사용 설정

  5. Google Cloud CLI를 설치합니다.
  6. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

    gcloud init
  7. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  8. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  9. API Compute Engine and Cloud Storage 사용 설정

    API 사용 설정

  10. Google Cloud CLI를 설치합니다.
  11. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

    gcloud init

MySQL 클러스터 설정

첫 번째 단계는 실행 중인 MySQL 클러스터를 만드는 것입니다. 이 클러스터에 이미지 및 확인에 사용하는 데이터를 채웁니다. 데이터 확인을 위해 이 가이드에서는 MySQL 기본 및 복제본 데이터베이스를 쿼리하는 안내를 제공합니다.

아래에 제시된 MySQL 클러스터 설정 방법에 대한 설명은 HAProxy를 사용하여 MySQL 클러스터를 Compute Engine으로 마이그레이션에서 인용한 것이며, 편의를 위해 약간 수정되었습니다.

  1. Google Cloud 콘솔에서 Cloud Shell을 엽니다.

    Cloud Shell 열기

  2. Cloud Storage 버킷 이름의 환경 변수를 설정합니다.

    GCS_BUCKET_NAME=${USER}-mysql-$(date +%s)
    echo $GCS_BUCKET_NAME
    
  3. Cloud Storage 버킷을 만듭니다(기본적으로 멀티 리전).

    gsutil mb gs://${GCS_BUCKET_NAME}/
    

    버킷에는 MySQL 기본 및 복제본 생성에 사용되는 생성 스크립트와 시작 스크립트가 포함됩니다.

  4. GitHub 저장소를 클론하고 환경을 설정하는 데 사용하는 스크립트를 검색합니다.

    git clone https://github.com/GoogleCloudPlatform/solutions-compute-mysql-migration-haproxy.git mysql-migration
    
  5. mysql-migration 폴더에서 초기화 스크립트를 실행하여 기본 및 복제본 Compute Engine 인스턴스의 MySQL 클러스터를 만듭니다.

    cd mysql-migration
    ./run.sh ${DEVSHELL_PROJECT_ID} ${GCS_BUCKET_NAME}
    

    이 스크립트는 MySQL 클라이언트 Compute Engine 인스턴스도 만듭니다.

  6. 클라이언트 인스턴스에서 기본 인스턴스에 대한 원격 루트 액세스를 사용 설정합니다.

    1. Google Cloud 콘솔에서 **VM 인스턴스 페이지로 이동합니다.

      VM 인스턴스로 이동

    2. source-mysql-primary 인스턴스의 행에서 SSH를 클릭하여 보안 셸에 연결합니다.

    3. 보안 셸을 사용할 수 있는 경우 다음 명령어를 실행합니다.

      mysql -u root -psolution-admin
      
    4. mysql에 로그인하면 다음 문을 실행합니다.

      GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'solution-admin';
      
  7. 클라이언트에서 데이터베이스에 액세스할 수 있는지 확인합니다. Google Cloud 콘솔에서 ssh를 사용하여 mysql-client Compute Engine 인스턴스에 연결합니다. 보안 셸을 사용할 수 있는 경우 다음을 수행합니다.

    1. Compute Engine > VM 인스턴스를 선택하고 source-mysql-primary라는 인스턴스가 있는 행을 찾아 내부 IP 주소를 기록합니다.

      IP_ADDRESS_OF_SOURCE_MYSQL_PRIMARYsource-mysql-primary의 내부 IP로 바꿉니다.

      mysql -u root -psolution-admin -h IP_ADDRESS_OF_SOURCE_MYSQL_PRIMARY
      
    2. mysql 셸을 사용할 수 있는 경우 다음 명령어를 실행합니다.

      SHOW databases; # source_db must be present
      USE source_db;
      SHOW tables; # source_table must be present
      SELECT COUNT(*) FROM source_table; # must return 5000
      

      동일한 명령어 집합을 사용하면 복제본에 동일한 데이터 세트가 포함되어 있는지 확인할 수 있습니다. 대신 source-mysql-replica의 내부 IP 주소를 사용하세요.

이때 다음과 같은 3개의 Compute Engine 인스턴스가 실행 중입니다.

  • 클라이언트 인스턴스(mysql-client).
  • MySQL 기본 인스턴스(source-mysql-primary).
  • MySQL 복제본 인스턴스(source-mysql-replica). MySQL 기본 인스턴스는 MySQL 복제본 인스턴스에 복제됩니다.

각 Compute Engine 인스턴스의 머신 유형은 f1-micro(vCPU 1개, 0.6GB 메모리)이며 수직 확장의 머신 유형은 n1-standard-1(vCPU 1개, 3.75GB 메모리)입니다. 디스크 크기는 10GB이고 20GB로 두 배까지 확장됩니다. 이러한 선택은 예시일 뿐이며 배포에 필요한 요건에 따라 변경할 수 있습니다.

Compute Engine 인스턴스를 수직으로 확장(장애 조치 없음)

이 섹션에서는 MySQL 기본 인스턴스 및 MySQL 복제본 인스턴스를 실행하는 Compute Engine 인스턴스를 수직 확장하는 방법을 설명합니다. Compute Engine 인스턴스의 머신 유형을 변경하여 CPU와 메모리를 동시에 수직 확장합니다. 머신 유형을 변경하려면 Compute Engine 인스턴스를 중지하고 변경 후에 다시 시작해야 합니다.

처리 용량을 동일하게 유지하려면 두 Compute Engine 인스턴스가 동일한 머신 유형을 사용하도록 구성하는 것이 좋습니다.

MySQL 복제본 인스턴스가 먼저 수직 확장되며, 문제가 발견되어도 MySQL 기본 인스턴스의 실행을 방해하지 않습니다. 문제가 발생하면 MySQL 기본 인스턴스의 다운타임 없이 문제를 해결할 수 있습니다. 또한 이 문제가 일시적이거나 허위인지, 아니면 기본 데이터베이스를 수직 확장하기 전에 해결해야 하는 일반적인 문제인지 평가할 수 있습니다.

또 다른 방법(Compute Engine 인스턴스를 다시 시작해야 함)은 다운타임을 최소화하기 위해 기본 인스턴스를 보조 인스턴스로 장애 조치를 수행하는 것입니다. 다음 섹션에서 이 접근 방식을 살펴봅니다.

MySQL 복제본 인스턴스 수직 확장

먼저 MySQL 복제본 인스턴스를 실행 중인 Compute Engine 인스턴스를 중지합니다.

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동하여 Compute Engine 인스턴스 목록을 확인합니다.

    컴퓨팅 인스턴스 나열

  2. source-mysql-replica 인스턴스 행에서 (추가 작업)를 클릭한 다음 중지를 클릭합니다.

  3. Compute Engine 인스턴스가 중지되면 source-mysql-replica를 클릭한 다음 수정을 클릭합니다.

  4. 머신 유형에서 수직 확장할 머신 유형 n1-standard-1(vCPU 1개, 3.75GB 메모리)을 선택합니다.

  5. 저장을 클릭합니다.

  6. 저장이 완료되면 시작을 클릭합니다.

앞에서 언급한 확인 mysql 명령어를 사용하여, 확장 작업 후 MySQL 복제본 인스턴스가 다시 제대로 실행되는지 테스트할 수 있습니다.

MySQL 기본 인스턴스 수직 확장

먼저 MySQL 기본 인스턴스를 실행하는 Compute Engine 인스턴스를 중지합니다.

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동하여 Compute Engine 인스턴스 목록을 확인합니다.

    컴퓨팅 인스턴스 나열

  2. source-mysql-primary 인스턴스 행에서 (추가 작업)를 클릭한 다음 중지를 클릭합니다.

  3. Compute Engine 인스턴스가 중지되면 source-mysql-primary를 클릭한 다음 수정을 클릭합니다.

  4. 머신 유형에서 수직 확장할 머신 유형 n1-standard-1(vCPU 1개, 3.75GB 메모리)을 선택합니다. 이 머신 유형이 MySQL 복제본 인스턴스에 선택된 것과 동일한지 확인합니다.

  5. 저장을 클릭합니다.

  6. 저장이 완료되면 시작을 클릭합니다.

앞에서 언급한 확인 mysql 명령어를 사용하여, 확장 작업 후 MySQL 기본 인스턴스가 다시 제대로 실행되는지 테스트할 수 있습니다.

Compute Engine 인스턴스를 수직으로 축소(장애 조치 없음)

이 섹션에서는 MySQL 기본 인스턴스 및 MySQL 복제본 인스턴스를 실행하는 Compute Engine 인스턴스를 축소하는 방법을 설명합니다. Compute Engine 인스턴스의 머신 유형을 변경하여 CPU와 메모리를 동시에 축소합니다. 머신 유형을 변경하려면 Compute Engine 인스턴스를 중지하고 변경 후에 다시 시작해야 합니다.

처리 용량을 동일하게 유지하려면 두 Compute Engine 인스턴스가 동일한 머신 유형을 사용하도록 구성하는 것이 좋습니다. 이 단계는 수직 확장 단계와 유사합니다. 하지만 완전한 설명을 제공하기 위해 다음 섹션에서 이를 명시적으로 설명합니다.

MySQL 복제본 인스턴스 축소

먼저 MySQL 복제본 인스턴스를 실행 중인 Compute Engine 인스턴스를 중지합니다.

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동하여 Compute Engine 인스턴스 목록을 확인합니다.

    컴퓨팅 인스턴스 나열

  2. source-mysql-replica 인스턴스 행에서 (추가 작업)를 클릭한 다음 중지를 클릭합니다.

  3. Compute Engine 인스턴스가 중지되면 source-mysql-replica를 클릭한 다음 수정을 클릭합니다.

  4. 머신 유형에서 축소할 머신 유형 f1-micro(vCPU 1개, 0.6GB 메모리)를 선택합니다.

  5. 저장을 클릭합니다.

  6. 저장이 완료되면 시작을 클릭합니다.

앞에서 언급한 확인 mysql 명령어를 사용하여, 확장 작업 후 MySQL 복제본 인스턴스가 다시 제대로 실행되는지 테스트할 수 있습니다.

MySQL 기본 인스턴스 축소

먼저 MySQL 기본 인스턴스를 실행 중인 Compute Engine 인스턴스를 중지합니다.

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동하여 Compute Engine 인스턴스 목록을 확인합니다.

    컴퓨팅 인스턴스 나열

  2. source-mysql-primary 인스턴스 행에서 (추가 작업)를 클릭한 다음 중지를 클릭합니다.

  3. Compute Engine 인스턴스가 중지되면 source-mysql-primary를 클릭한 다음 수정을 클릭합니다.

  4. 머신 유형에서 축소할 머신 유형 f1-micro(vCPU 1개, 0.6GB 메모리)를 선택합니다. 이 머신 유형이 이전에 MySQL 복제본 인스턴스에 대해 선택한 머신 유형과 동일한지 확인합니다.

  5. 저장을 클릭합니다.

  6. 저장이 완료되면 시작을 클릭합니다.

앞에서 언급한 확인 mysql 명령어를 사용하여, 확장 작업 후 MySQL 기본 인스턴스가 다시 제대로 실행되는지 테스트할 수 있습니다.

Compute Engine 인스턴스를 수직으로 확장(장애 조치 있음)

MySQL 데이터베이스 종료, 수직 확장, 다시 시작은 프로덕션 환경에서 너무 오래 걸릴 수 있습니다. 프로세스 시간 단축은 장애 조치를 기반으로 합니다. 먼저 복제본 인스턴스를 수직 확장하고 다시 실행되는 즉시 기존 기본 인스턴스를 중지하면 복제본 인스턴스가 (새) 기본 인스턴스가 됩니다. 전체 다운타임은 MySQL 데이터베이스를 수직 확장된 복제본 인스턴스로 장애 조치를 수행하는 데 필요한 시간입니다.

대략적인 프로세스는 다음과 같습니다.

  1. 복제본 인스턴스를 중지하고 머신 유형을 변경한 후 다시 시작하여 수직 확장합니다.
  2. 복제본 인스턴스가 수직 확장되는 동안 기본 인스턴스에서 발생한 변경사항이 복제본 인스턴스에 반영될 때까지 기다립니다.
  3. 기본 인스턴스를 중지합니다.
  4. 복제본 인스턴스가 복제 로그를 드레이닝할 때까지 기다립니다.
  5. 복제본 인스턴스를 새 기본 인스턴스로 만듭니다.
  6. 기본 인스턴스(새 복제본 인스턴스)를 중지합니다.
  7. 새 복제본 인스턴스를 확장합니다.
  8. 새 기본 인스턴스의 새 복제본으로 만듭니다.

이 프로세스가 완료되면 두 MySQL 시스템이 모두 수직 확장되고 기본/복제본 인스턴스 관계가 됩니다. 이전의 기본 인스턴스는 새 복제본 인스턴스이고 이전 복제본 인스턴스는 새 기본 인스턴스입니다. 명령어는 다음 섹션에서 자세히 설명합니다.

기본 인스턴스와 복제본 인스턴스 모두 머신 유형이 동일(디스크의 유형 및 디스크 공간 크기 동일)하므로 일반적인 경우 대체가 필요하지 않습니다. 대체를 수행하면 대체 기간 동안 잠시 중단됩니다. 하지만 대체가 필요한 경우 장애 조치 단계를 두 번 실행해야 합니다.

기존 MySQL 복제본 인스턴스 확장

MySQL 복제본 인스턴스 수직 확장에 설명된 대로 복제본 인스턴스를 수직 확장합니다. 이 기간 동안 기본 인스턴스는 중단 없이 계속 사용할 수 있습니다.

기본 인스턴스에서 확장된 복제본 인스턴스로 장애 조치

다음 명령어는 기본 복제본 인스턴스에서 복제본 인스턴스로 장애 조치를 실행합니다.

  1. Cloud Shell에서 더 이상 업데이트를 받지 않도록 기본 인스턴스를 중지합니다.

    gcloud compute instances stop source-mysql-primary --zone=us-east1-b;
    

    기본 인스턴스가 중지될 때까지 기다리지 않아도 다음 단계를 계속 진행할 수 있습니다.

  2. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  3. source-mysql-replica 인스턴스 행에서 SSH를 클릭하여 인스턴스에 연결합니다.

  4. 보안 셸을 사용할 수 있는 경우 mysql 셸을 시작합니다.

    mysql -u root -psolution-admin
    
  5. 복제본 인스턴스에서 바이너리 로깅이 사용 설정되었는지 확인합니다(ON이어야 함).

    SHOW VARIABLES LIKE 'log_bin';
    
  6. 로그 복제본 업데이트가 사용 중지되었는지 확인합니다(OFF여야 함).

    SHOW VARIABLES LIKE 'log_slave%';
    
  7. 릴레이 로그를 드레이닝합니다.

    STOP SLAVE IO_THREAD;
    
  8. 모든 처리가 이루어졌는지 확인합니다.

    SHOW PROCESSLIST;
    

    이 명령어의 출력은 Slave has read all relay log로 표시되어야 합니다. 결과가 표시될 때까지 명령어를 계속 실행합니다.

  9. 복제본 인스턴스를 중지합니다.

    STOP SLAVE;
    
  10. 복제본 인스턴스의 역할을 기본 인스턴스로 변경합니다.

    RESET MASTER;
    GRANT REPLICATION SLAVE ON *.* TO 'sourcereplicator'@'%' IDENTIFIED BY 'solution-admin';
    

이제 새 기본 인스턴스가 적용됩니다.

새로운 MySQL 복제본 인스턴스 수직 확장

이제 이전 복제본 인스턴스가 기본 인스턴스이며 클라이언트는 읽기 및 쓰기 작업을 위해 이 인스턴스에 액세스할 수 있습니다.

앞에서 설명한 안내에 따라 복제본 인스턴스(이전 기본 인스턴스)를 수직 확장한 다음 복제본 인스턴스를 시작합니다.

복제본 인스턴스를 복제할 기본 인스턴스에 연결

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

    VM 인스턴스로 이동

  2. source-mysql-primary 인스턴스 행에서 SSH를 클릭하여 보안 셸에 연결합니다.

  3. 보안 셸을 사용할 수 있는 경우 mysql 셸을 시작합니다.

    mysql -u root -psolution-admin
    
  4. 복제를 시작합니다.

    CHANGE MASTER TO MASTER_HOST='source-mysql-replica', master_user='sourcereplicator',master_password='solution-admin';
    RESET SLAVE;
    START SLAVE;
    

이제 MySQL 기본 인스턴스가 복제본 인스턴스에 복제됩니다.

기본 인스턴스에서 복제본 인스턴스로 복제 테스트

다음 테스트는 기본 MySQL 인스턴스 source-mysql-replica에서 테이블 source_table에 행을 추가합니다. 복제본 MySQL 인스턴스 source-mysql-primary에서 추가된 행을 관찰할 수 있습니다.

  1. source-mysql-replica 인스턴스에서 새 기본 인스턴스에 행을 추가합니다. 이전에 추가된 행이 없는 경우 개수는 5001로 표시되어야 합니다.

    USE source_db;
    INSERT INTO source_table (event_data) VALUES (ROUND(RAND()*15000,2));
    SELECT count(*) FROM source_table;
    
  2. 복제본 인스턴스에서 복제를 관찰합니다. 개수는 5001로 표시되어야 합니다.

    USE source_db;
    SELECT count(*) FROM source_table;
    

이것으로 장애 조치 프로세스에 필요한 절차가 완료되었습니다. 장애 조치와 함께 축소에도 동일한 절차를 사용합니다.

Compute Engine 인스턴스의 디스크 크기 늘리기

이 섹션에서는 MySQL 기본 인스턴스를 호스팅하는 Compute Engine 인스턴스와 MySQL 복제본 인스턴스를 호스팅하는 Compute Engine 인스턴스 모두에 대해 Compute Engine 인스턴스 디스크의 크기를 늘리는 방법을 설명합니다. 디스크는 크기를 늘릴 수만 있고 줄일 수는 없습니다.

디스크를 수직 확장할 때는 두 가지 방법이 있으며 두 가지 방법 모두 다음 섹션에 설명되어 있습니다. 디스크 크기를 동적으로 조정하는 기능은 Compute Engine 인스턴스를 다시 만들 필요가 없는 기능입니다. 자세한 내용은 이 블로그 게시물을 참조하세요. 한 가지 방법은 디스크 크기를 늘린 후 다시 시작하기 전에 Compute Engine 인스턴스를 중지하는 것입니다. 인스턴스를 다시 시작하면 MySQL 데이터 파일을 저장하는 루트 파티션의 크기가 자동으로 조정됩니다.

다른 방법의 경우 Compute Engine 인스턴스를 중지했다가 다시 시작할 필요가 없습니다. 대신 Cloud Shell과 인스턴스의 보안 셸에서 명령줄 문을 실행해야 합니다.

확인을 위해 디스크 크기를 늘리기 전과 후에 df -h --total 명령어를 사용하여 전후의 크기를 확인할 수 있습니다.

크기를 조정하기 전에 각 디스크의 스냅샷을 만드는 것이 좋습니다. 이렇게 하면 크기를 조정하기 전에 각 디스크의 상태를 복원할 수 있습니다.

MySQL 복제본 인스턴스의 디스크 크기 늘리기(종료함)

먼저 MySQL 복제본 인스턴스를 호스팅하는 Compute Engine 인스턴스의 디스크 크기를 늘립니다.

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동하여 Compute Engine 인스턴스 목록을 확인합니다.

    컴퓨팅 인스턴스 나열

  2. source-mysql-replica 인스턴스 행에서 (추가 작업)를 클릭한 다음 중지를 클릭합니다.

  3. Compute Engine 인스턴스의 디스크를 나열합니다.

    인스턴스 디스크 나열

  4. source-mysql-replica를 선택합니다.

  5. 수정을 클릭합니다.

  6. 크기의 경우 크기를 20GB로 늘립니다.

  7. 저장을 클릭하고 저장 작업이 완료될 때까지 기다립니다.

  8. Compute Engine 인스턴스를 나열합니다.

    컴퓨팅 인스턴스 나열

  9. source-mysql-replica 인스턴스 행에서 (추가 작업)를 클릭한 다음 시작을 클릭합니다.

앞서 언급한 확인 mysql 명령어를 사용하면 디스크 크기가 늘어난 후 MySQL 기본 인스턴스가 정상적으로 실행되는지 확인할 수 있습니다.

MySQL 기본 인스턴스의 디스크 크기 늘리기(종료함)

MySQL 기본 인스턴스를 호스팅하는 Compute Engine의 디스크 크기를 늘립니다.

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동하여 Compute Engine 인스턴스 목록을 확인합니다.

    컴퓨팅 인스턴스 나열

  2. source-mysql-primary 인스턴스 행에서 (추가 작업)를 클릭한 다음 중지를 클릭합니다.

  3. Compute Engine 인스턴스의 디스크를 나열합니다.

    인스턴스 디스크 나열

  4. source-mysql-primary를 선택합니다.

  5. 수정을 클릭합니다.

  6. 크기의 경우 크기를 20GB로 늘립니다.

  7. 저장을 클릭하고 저장 작업이 완료될 때까지 기다립니다.

  8. Compute Engine 인스턴스를 나열합니다.

    컴퓨팅 인스턴스 나열

  9. source-mysql-primary 인스턴스 행에서 (추가 작업)를 클릭한 다음 시작을 클릭합니다.

앞서 언급한 확인 mysql 명령어를 사용하면 디스크 크기가 늘어난 후 MySQL 기본 인스턴스가 정상적으로 실행되는지 확인할 수 있습니다.

MySQL 복제본 인스턴스의 디스크 크기 늘리기(종료하지 않고 동적으로)

다음은 늘어난 파일 시스템 ext4의 동적 디스크 크기와 단일 파티션이 있는 볼륨을 보여주는 단계입니다. 다른 파일 시스템 유형 또는 파티션 구성은 크기를 늘리기 위해 다른 단계가 필요합니다.

앞에서와 마찬가지로 먼저 복제본 인스턴스를 호스팅하는 Compute Engine 인스턴스의 디스크 크기를 늘린 다음 기본 인스턴스를 호스팅하는 Compute Engine 인스턴스의 디스크 크기를 늘립니다.

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동하여 Compute Engine 인스턴스 목록을 확인합니다.

    컴퓨팅 인스턴스 나열

  2. SSH를 클릭하여 source-mysql-replica 인스턴스에 연결합니다.

  3. 보안 셸에서 디스크와 파티션 나누기를 확인하고 디스크 sda에 파티션 sda1이 하나 있는지 확인합니다.

    lsblk
    
  4. Cloud Shell에서 다음 명령어를 실행하여 디스크 크기를 늘립니다. 메시지가 표시되면 y로 응답합니다.

    gcloud compute disks resize source-mysql-replica --size=20G --zone=us-east1-c
    
  5. 보안 셸에서 디스크 크기가 증가했는지 확인합니다.

    lsblk
    

    또한 파티션의 크기는 계속 10GB입니다.

  6. 보안 셸에서 다음 명령어를 실행하여 파일 시스템, 파일 시스템의 유형, 크기를 확인합니다.

    df -Th
    
  7. 보안 셸에서 파티션을 늘립니다.

    sudo growpart /dev/sda 1
    sudo resize2fs /dev/sda1
    lsblk
    df -Th
    

    마지막 두 명령어를 사용하면 늘어난 것을 확인할 수 있습니다.

MySQL 기본 인스턴스의 디스크 크기 늘리기(종료하지 않고 동적으로)

기본 인스턴스의 디스크 크기를 동적으로 늘리는 프로세스는 복제본 인스턴스와 동일합니다.

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동하여 Compute Engine 인스턴스 목록을 확인합니다.

    컴퓨팅 인스턴스 나열

  2. SSH를 클릭하여 source-mysql-primary 인스턴스에 연결합니다.

  3. 보안 셸에서 디스크와 파티션 나누기를 확인하고 디스크 sda에 파티션 sda1이 하나 있는지 확인합니다.

    lsblk
    
  4. Cloud Shell에서 다음 명령어를 실행하여 디스크 크기를 늘립니다. 메시지가 표시되면 y로 응답합니다.

    gcloud compute disks resize source-mysql-primary --size=20G --zone=us-east1-b
    
  5. 보안 셸에서 디스크 크기가 증가했는지 확인합니다.

    lsblk
    

    또한 파티션의 크기는 계속 10GB입니다.

  6. 보안 셸에서 다음 명령어를 실행하여 파일 시스템, 파일 시스템의 유형, 크기를 확인합니다.

    df -Th
    
  7. 보안 셸에서 파티션을 늘립니다.

    sudo growpart /dev/sda 1
    sudo resize2fs /dev/sda1
    lsblk
    df -Th
    

    마지막 두 명령어를 사용하면 늘어난 것을 확인할 수 있습니다.

삭제

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

프로젝트 삭제

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

    리소스 관리로 이동

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

다음 단계

이 가이드에서 배운 내용을 프로덕션 환경의 MySQL 클러스터에 적용하여 확장이 필요한 프로세스 및 루틴을 설정할 수 있습니다. 내용을 먼저 연습해 보려면 프로덕션 MySQL 클러스터 환경을 클론한 다음에 전체 과정을 연습해 보세요. 프로덕션 환경의 후속 확장 변경에 영향을 줄 수 있는 중요한 단계가 있는지 면밀히 살펴보세요.

이 가이드에 표시된 단계를 실행하는 스크립트 개발을 고려하세요. 이렇게 하면 프로덕션 환경에서 수동이 아닌 자동으로 확장할 수 있습니다.

자세한 내용은 MySQL 가이드를 참조하세요.

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