AWS에서 MySQL HeatWave 시작

AWS에서 데이터베이스 애플리케이션을 개발하고 있으며 실시간 분석과 매우 빠른 쿼리가 필요한 경우 MySQL HeatWave on AWS가 설계한 것입니다. 데이터를 별도의 분석 데이터베이스로 이동하기 위해 복잡한 ETL 파이프라인을 제작하는 대신, HeatWave는 인메모리 가속화를 활용하여 트랜잭션 워크로드(OLTP)의 성능에 영향을 주지 않고 실시간 분석(OLAP) 기능을 제공합니다. MySQL HeatWave는 개발자가 세계에서 가장 인기 있는 오픈 소스 데이터베이스를 사용하여 보안 클라우드 네이티브 애플리케이션을 빠르게 생성하고 배포할 수 있도록 하는 완전 관리형 서비스입니다. MySQL HeatWave는 Oracle의 MySQL 개발 팀에서 개발 및 지원합니다.

MySQL HeatWave의 가장 좋은 점 중 하나는 기존 트랜잭션 데이터에 대해 직접 분석을 실행하는 기능입니다. 즉, 두 데이터베이스가 아닌 하나의 데이터베이스만 관리하면 되며, ETL 중복의 복잡성, 대기 시간 및 비용 없이 실시간 보안 분석을 수행할 수 있습니다.

시작하려면 AWS에서 무료로 시작하기를 하겠습니다. 빠른 등록은 AWS 기반 MySQL HeatWave가 얼마나 멋진지 확인하기 위해 300달러 상당의 무료 크레딧을 제공합니다.

  1. 국가/지역, 이름과 성, 확인을 위한 전자메일 주소를 제공합니다.
    계정 등록 스크린샷 1
  2. Verify my email을 누릅니다.
  3. 전자메일 확인 메시지에서 링크를 누르면 강력한 비밀번호, 클라우드 계정 이름 및 홈 영역을 제공하라는 메시지가 표시됩니다. 홈 영역으로 US East (Ashburn)를 선택합니다. 참고: IAD/애슈번을 홈 리전으로 선택하지 않으면 리전 한도 증가를 요청해야 합니다. 이 값이 증가하면 애슈번 지역을 구독할 수 있습니다(AWS의 HeatWave에 필요).
    계정 등록 스크린샷 2
  4. 주소 및 청구 세부정보를 입력하여 등록 프로세스를 완료합니다.
  5. 계약에 동의하고 Start my free trial을 누릅니다.
    계정 등록 완료 스크린샷
  6. 잠시 후 계정이 생성되고 로그인할 수 있습니다.
  7. 기본 대시보드에는 AWS에서 MySQL HeatWave를 시작하기 위한 배너가 표시됩니다. 서비스로 이동을 클릭합니다.
    AWS 배너에서 MySQL HeatWave를 시작하는 스크린샷
  8. 다음 페이지에는 귀하의 계정을 유료 계정으로 전환하는 업그레이드 요청 옵션이 있습니다. 걱정하지 마세요! 당신은 아무것도 청구되지 않습니다 ... 당신이 가지고 기억 $300 무료 크레딧과 함께 플레이.
    AWS에서 MySQL HeatWave 설정 - 업그레이드 요청 스크린샷
    - 모든 백엔드 처리가 완료되려면 몇 분 정도 걸립니다. 그러면 업그레이드 프로세스를 완료할 수 있습니다. 같은 것을 나타내는 메시지를 받으면 잠시 벗어나십시오. 눈을 좀 쉬게 해주세요.
  9. 업그레이드 프로세스를 완료할 수 있게 되면 다음 단계로 이동할 수 있습니다.
  10. 애슈번을 홈 영역으로 선택했으므로 단계 3으로 건너뛸 수 있습니다. 그러면 AWS 서비스 제한에 대한 HeatWave를 요청할 수 있습니다.
  11. 서비스 제한을 받으면 AWS에서 HeatWave를 사용으로 설정할 수 있습니다.
  12. 이제 AWS에서 MySQL HeatWave 클러스터를 설정할 준비가 되었습니다!

AWS 기반 MySQL HeatWave는 OCI의 ID 및 액세스 관리 시스템과 통합됩니다. AWS에서 HeatWave에 등록하면 이전에 생성한 OCI 클라우드 계정으로 사인인해야 하는 OCI 로그인 페이지가 표시됩니다. 간편한 청구는 OCI 내에서 관리 및 모니터링됩니다.

사전 요구사항

  • Oracle Cloud 계정 이름, 관리자 사용자 이름 및 비밀번호
  • 호환 가능한 브라우저(Chrome 69+, Safari 12.1+, Firefox 62+ 또는 Oracle Jet-approved 브라우저)

개요

AWS에서 MySQL HeatWave 작업을 시작하려면 AWS 경험이나 AWS 계정이 필요하지 않습니다. 그러나 AWS 앱을 MySQL HeatWave와 통합하기 위해 수행할 수 있는 작업에 제한이 없습니다. 그럼 가자!

  1. AWS 콘솔에서 MySQL HeatWave에 로그인
  2. HeatWave 클러스터로 MySQL DB 시스템 생성
  3. 일부 샘플 데이터 로드
  4. 데이터베이스에 연결하여 일부 query 실행
  5. 테이블을 HeatWave로 로드하고 더 많은 질의

단계

  1. AWS에서 MySQL HeatWave에 로그인
    등록 프로세스를 완료하고 로그인한 경우 한 걸음 더 나아갈 수 있습니다. 그렇지 않은 경우 AWS 기반 MySQL HeatWave 랜딩 페이지로 이동해야 합니다. 여기서는 클라우드 계정 이름(브라우저에서 이미 캐시된 것일 수 있음)을 입력하고 Continue를 누릅니다.
    다음 페이지에는 등록 프로세스 중 생성한 사용자 ID와 비밀번호를 묻는 메시지가 표시됩니다. 모든 항목이 올바르게 입력되면 MySQL HeatWave 대시보드에서 자신을 찾을 수 있습니다.
  2. HeatWave 클러스터로 MySQL DB 시스템 생성
    이제 재미가 시작됩니다! 이제 프로비저닝을 시작하겠습니다.
    대시보드에서 [MySQL DB 시스템 생성]을 눌러 [MySQL DB 시스템 생성] 및 [HeatWave 클러스터] 대화상자를 표시합니다. 이 첫번째 부분은 기본 MySQL 인스턴스 및 HeatWave 클러스터 자체를 구성하는 데 중점을 둡니다.
    MySQL DB 시스템 및 HeatWave 클러스터 생성 스크린샷 - 불완전
    MySQL DB 시스템 및 HeatWave 클러스터 생성 스크린샷 - 불완전
    필요한 세부 정보를 입력합니다.
    1. 표시명
    2. 설명
    3. 관리자 인증서(이 인증서가 손실되지 않음)
    4. Hardware 구성을 선택합니다. 구성에 따라 vCPU 코어 수 및 RAM 용량이 결정됩니다(예: MySQL.4.32GB는 vCPU 4개, RAM 32GB).
    5. 필요한 경우 나중에 GiB...this에서 시작 데이터 저장 영역 크기를 늘릴 수 있습니다.
    6. 최신 DB 버전 선택(현재는 최신 MySQL 버전 8.0.31만 지원)
    7. 유지 관리 윈도우(Automatic 또는 Manual) 선택
    8. 가용성 영역(AZ)을 선택합니다. 참고: 수동을 선택하면 물리적 AWS 가용성 영역을 선택하라는 메시지가 표시됩니다. AWS에 기존 애플리케이션을 배포한 경우 AWS 콘솔에 표시된 논리적 AZ를 여기에서 선택한 물리적 AZ와 조정해야 합니다.
    9. 네트워킹 세부정보를 제공합니다. MySQL 인스턴스는 퍼블릭 끝점을 통해 액세스할 수 있게 됩니다. 기본적으로 수신 접속은 허용되지 않습니다. 허용된 클라이언트 주소의 경우 특정 공용 IP 주소 뒤에 /32를 입력해야 합니다. 즉, 클라이언트 컴퓨터의 공용 IP가 1.2.3.4인 경우 1.2.3.4/32를 입력합니다. 여러 값을 세미콜론으로 구분하여 입력할 수 있습니다. 이 예에서는 기본 포트 3306 및 33060도 사용합니다.
    10. Next를 누릅니다.
      MySQL DB 시스템 및 HeatWave 클러스터 생성 스크린샷 - 완료됨
    11. HeatWave 클러스터에 대한 표시 이름 및 설명을 제공합니다.
    12. 구성 선택 - 각 클러스터 노드에서 사용 가능한 메모리 양을 결정합니다.
    13. 1–128 사이의 클러스터 크기를 선택합니다. 이 연습에서는 HeatWave.16GB 구성과 클러스터 크기를 1로 선택하는 것이 좋습니다.
    14. Create를 클릭 한 다음 앉아서 마법이 일어나는 동안 몇 분 동안 휴식을 취하십시오.
  3. 샘플 데이터 로드
    이제 모든 데이터가 작동 및 실행 중이므로 일부 데이터를 로드하고 이 데이터를 테스트에 넣습니다.
    1. 새 브라우저 탭을 열고 OCI 콘솔에 로그인하여 Cloud Shell에 액세스합니다. 인증서를 묻는 메시지가 표시되면 HeatWave에 로그인할 때 입력한 것과 동일한 클라우드 계정, 사용자 이름 및 비밀번호를 사용합니다.
    2. OCI Cloud Shell 열기
      OCI Cloud Shell 스크린샷
    3. 샘플 데이터베이스 검색: airport-db
      wget https://downloads.mysql.com/docs/airport-db.tar.gz
      
      tar xvzf airport-db.tar.gz
    4. Cloud Shell 환경과 연관된 퍼블릭 IP 주소를 찾습니다. MySQL 허용된 클라이언트 주소에 추가됩니다.
      dig +short myip.opendns.com @resolver1.opendns.com
    5. MySQL 대시보드로 돌아가서 MySQL DB 인스턴스를 편집합니다. Allowed 클라이언트 주소에 /32를 사용하여 공용 IP 주소를 추가하고 Save를 누릅니다.
    6. Cloud Shell을 사용하여 브라우저 탭으로 돌아가서 MySQL Shell 세션을 시작합니다. DB 시스템을 생성할 때 제공된 관리자 사용자 이름과 비밀번호가 필요합니다. 이전에 복사한 호스트 이름도 필요합니다.
      mysqlsh username@hostname
      Enter 키를 누르면 암호를 입력하라는 메시지가 표시됩니다.
    7. 이전에 압축이 풀린 데이터베이스를 임포트하려면 loadDump를 사용합니다.
      util.loadDump("airport-db", {threads: 16, deferTableIndexes: "all", ignoreVersion: true})
      이 단계는 몇 분 정도 걸릴 수 있습니다. 이제 빠른 간식을 잡거나 일기 예보를 확인할 수있는 좋은 기회입니다.
    8. 임포트가 완료되면 이동할 준비가 된 것입니다. 잘 했어요!
  4. 몇 가지 간단한 쿼리 실행... 적절한 조치를 위해
    나중에 HeatWave와 성능을 비교하겠습니다. MySQL 셸은 매우 강력한 도구이지만 인터페이스는 모두를위한 것이 아닙니다. 우리가 이동하기 전에, 재미를 위해 몇 가지 더 많은 쿼리를 실행하자; 그 명령줄 근육을 구부릴 수있는 좋은 기회.
    1. 질의에서 몇 개의 행을 더 선택하려고 시도하지 않는 이유는 무엇입니까?
      select * from airplane limit 10000;
    2. 보기 좋음? 단 하나의 more...for 재미!
      mysql SELECT booking.price, count(*) FROM booking WHERE booking.price > 500 GROUP BY booking.price ORDER BY booking.price LIMIT 10;
      실행 시간을 기록합니다.
    3. '\d'를 입력하고 ENTER 키를 눌러 MySQL Shell을 종료합니다.
    4. 테이블을 HeatWave로 로드하고 더 많은 쿼리 지금 great...and를 수행하고 있습니다. 더위를 켜야 할 때입니다! 이 마지막 섹션에서는 MySQL HeatWave의 뛰어난 성능을 활용할 수 있습니다.
      1. MySQL HeatWave 대시보드가 있는 브라우저 탭으로 돌아갑니다. 작업 영역 창으로 이동합니다.
      2. DB 시스템을 선택한 다음 이전에 생성한 관리 사용자 이름과 비밀번호를 입력합니다(저장했습니까?). 연결을 클릭하고 문을 여는 데 몇 초 정도 걸립니다.
      3. 이제 연결되었으므로 이전과 동일한 query를 실행해야 합니다. 이 작업은 여전히 InnoDB에 대해 실행되지만 의도적입니다.
        mysql SELECT booking.price, count(*) FROM booking WHERE booking.price > 500 GROUP BY booking.price ORDER BY booking.price LIMIT 10;
        complete...and 준비에 걸리는 시간을 확인하십시오!
    5. HeatWave 탭에서 데이터 관리로 이동하여 airportdb를 선택합니다. 그러면 DB의 모든 테이블이 선택됩니다. Load into HeatWave 버튼을 누릅니다.
      Heatwave 탭의 데이터 관리 스크린샷
      그러면 작업의 개요를 보여주는 window가 나타나며 예상 완료 시간을 제공합니다. 한 번 더 빠르게 지정한 후 Load Tables를 누릅니다.
      HeatWave에 대한 MySQL Autopilot 병렬 로드 테이블 스크린샷
      새 테이블을 HeatWave로 로드하면 앞으로 진행되는 모든 데이터가 자동으로 추적되고 로드됩니다. 또는 적어도 그 테이블을 언로드 할 때까지.
      측면 참고: 잠시 동안 HeatWave의 기능이 필요하지 않은 경우 항상 중지하여 비용을 낮출 수 있습니다. 정지되는 동안 시스템은 로드된 모든 테이블에 대한 데이터 DIFFS를 계속 추적합니다. HeatWave가 실행되면 로드된 테이블이 자동으로 업데이트됩니다.
  5. 이전 query를 다시 실행하고 성능 차이를 확인합니다.
  6. 더 큰 데이터 세트 및/또는 더 복잡한 쿼리를 자유롭게 사용해 보십시오. InnoDB와 HeatWave 간에 성능 벤치마크를 테스트하려면 언제든지 테이블을 언로드한 다음 다시 로드해야 합니다.
  7. 그것은 우리를 끝까지 인도합니다. created...and가 뒷면에 자신을 붙이는 것을 잊지 않고 리소스를 종료하거나 중지하거나 계속 실행할 수 있습니다. 좋은 일!

요약

지금까지 AWS에 MySQL 데이터베이스 인스턴스 및 HeatWave 클러스터를 생성하고, 일부 데이터를 로드하고, 시스템 주변을 조금씩 호출했습니다. 시스템 간에 데이터를 ETL할 필요 없이 HeatWave...all에서 쿼리를 실행하여 성능이 크게 향상되었습니다. 이러한 모든 기능을 손쉽게 이용할 수 있으므로 성능과 기능을 지속적으로 살펴보는 것이 좋습니다. 우리는 단지 표면을 긁었습니다!

더 자세한 내용이 궁금하다면? 토론에 참여하려면 공용 Slack 채널이 필요합니다!