[DB] Azure MySQL (PaaS) 장단점 과 프리뷰 기간 사용기

DB
작성자
Roronoa
작성일
2018-03-19 13:25
조회
20642
드디어 Azure MySQL(PaaS) 가 General Availability (GA) 가 되었다. 프리뷰 기간(약1년)동안 약 500회 이상 배포 30개의 라이브서버를 사용해보았으며 많은 피드백을 Microsoft에 보내왔으며 이 피드백에 대한 답변을 Microsoft 본사 담당자와 직접 만나서 답변을 받게 되었다. 또한 현재도 Azure MySQL 팀과 컨택하여 다양한 피드백을 직접 보낼 예정이며 다양한 정보에 대해 NDA가 아닌 정보를 공유할 예정이다.

무엇이 바뀌었나?

  1. 가장 중요한점은 Azure MySQL의 성능 지표인 DTU에서 Vcore로 바뀐점이다. 이는 Amazon RDS와 직접 비교가 이제 가능하며 일반적인 유저에게 쉽게 접근하도록 바뀌었다.

  2. 롤백 저장소가 기본 제공이 된다 - 이는 기본 제공되므로 AWS RDS와 비교된다. S3가격이 비용 절감될수 있다.

  3. 읽기 전용 Read Replica 가 기본 제공된다. - 이는 기본 제공되므로 AWS RDS와 비교된다.  Read Replica 기능이 기본이면 비용 절감 될수 있다.

  4. 퍼포먼스 측면에서도 프리뷰 기간동안 보다 훨씬 좋아졌으며 프리뷰기간보다  더 최적화 되었다.

  5. Generation 4, 5라는 이름으로 바뀌었다.

  6. SKU가 Basic, Standard, Premium 에서 Basic, General Purpose, Memory Optimized 로 바뀌었다.

  7. 프리뷰에서 고정된 Capacity 의 GB만 사용할수 있었으나 Flexibility 하게 바뀌었다. 바 버튼을 누르는 GUI로 바뀌었다.


가격이 RDS보다 저렴하다는 장점이있으나 아직 기능이 조금 부족하다. 물론 Aurora 하고 비교한건 아니며 일반적인 웹용으로 사용한다면 RDS와 경쟁이 가능하며 나쁘지 않은 선택이다. 또한 기능 부족은 이미 Microsoft에서 추가 해줄 계획이 정확히 잡혀있다.

현재 구현되지 않은 점 


    • 현재 Korea South는 선택만 가능하다. Korea Central도 계획에 잡혀있다. Azure MySQL, PostgreSQL Korea Central 데이터센터 가능

    • Basic에서 General 로 현재 SKU이동이 되지 않지만 계획에 잡혀있다.

    • General 에서 Memory로만 가능 Basic으로는 불가능 - Azure MySQL, PostgreSQL 티어이동 가능 (2018.6.14)


    • MyISAM 엔진은 Azure에서 지원할 계획이 없다. 라고 직접 Azure MySQL 팀에서 답변이 밑에 처럼 써있다. 그러므로 InnoDB 만 사용한다. 일반적으로 InnoDB가 데이터가 동시에 많이 쓰이는 작업에 적합하며 MyISAM은 상대적으로 작음 규모 이며 Select가 많은 환경에서 적합하며 자세한 내용은 생략한다. 테이블 생성할때만 InnoDB로 생성하면 된다.

    • General Purpose 급 기준으로 35일간 롤백 복구 가능하지만 스냅샷 기능은 없다.  스냅샷을 바로 Blob Storage에 쌓아져 야한다.

    • 현재는 Stop기능 없어서 RDS처럼 멈출수 없다.


    • Master, Slave 기능이 없다.

    • Write Replica 기능이 없다

    • 로그 기록이 Slow Log 만 된다.

    • 물론 PaaS 이므로 Superadmin 권한은 없다.


    • ssl 적용시 Endpoint 가 바뀌며 이부분은 공식문서에 언급되지 않아서 삽질했으며 밑에 팁이 있다. 밑에 코드는 PHP 이다.

    • 프리뷰기간에 만든 Azure MySQL은 용량은 최저가 125GB였는데 현재 줄일수 없다.  새로 만든다면 5GB로 만들수 있다.

    • Virtual Network 안에 Azure MySQL을 넣을수 없다.  Azure MySQL, PostgreSQL에서도 Virtual Network 연동가능 (2018. 8.16)

    • Cluster 기능이 없다. Elastic Pool

    • 우리나라에서 많이 쓰이는 PHPMyadmin이 기능으로 들어가면 좋을듯하다.

    • Active Geo-Replication 이 계획중이다.

    • SSL이 기본 제공되나 커스텀 SSL은 사용할수 없다.

    • Azure MySQL, PostgreSQL 4TB 가능 (2018.6.28)



AWS RDS 보다 좋은점은 ? 

Azure MySQL은 Shell 접속이 가능하다.

 

삽질 꿀팁



      • MySQL Workbench로 접속하려면 6.3.9 버전으로 설치하지 않으면 SSL 에러가 생긴다. 꼭 6.3.9 버전이상으로 설치한다. 일주일 삽질했음..

      • SSL 로 코드에서 Host에 이름을 (서버이름.mysql.database.azure) 를 (cr2.생성한지역이름.control.database.windows.net)으로 바꾸고 연결해야함 DNS 리다이렉트 되는 부분에서 구현이 안됨을 삽질로 해결함. Ping으로 원본 엔드포인트를 체크해보면 리다이렉트된 엔드포인트를 역추적 할수 있다.




MySQL 마이그레이션 툴

https://datamigration.microsoft.com/scenario/mysql-to-azuremysql

PostgreSQL 사용방법 동영상

https://channel9.msdn.com/Events/Connect/2017/T147?ocid=player

결론

결론적으로 가격이 RDS보다 저렴하다는 장점이있으나 아직 기능이 조금 부족하다. 물론 Aurora 하고 비교한건 아니며 일반적인 웹용으로 사용한다면 RDS와 경쟁이 가능하다. 또한 기능 부족은 이미 Microsoft에서 추가 해줄 계획이 정확히 잡혀있으므로 나쁘지 않은 선택이라고 생각된다.