Azure SQL Database Managed Instance 살짝 만져본 후기
처음 사용자를 위한 참고 자료:
(MS Doc) What is Azure SQL Database managed instance?
(Blog) What is Azure SQL Database Managed Instance?
Managed instance T-SQL differences, limitations, and known issues
이야기 시작하기
Microsoft Azure 클라우드에서 SQL Server를 PaaS로 이용하고 싶은 사용자의 경우 기존 Azure SQL Database 서비스는 여러가지 제한사항들로 인해 편히 고를 수 있는 선택지는 아니었습니다. 이에 Managed Instance(이하 SQL MI) 서비스의 발표와 소개는 상당한 매력으로 느껴졌습니다. 나온지 얼마되지 않은 따끈 따근한 서비스에 관심이 있었지만 초기엔 테스트가 별도 신청해야만 가능했습니다.
얼마 전 기존 시스템을 SQL MI로 이전할 계획이 있다는 고객을 만났습니다. 미팅 목적은 SQL Server 모니터링 시스템으로 저희 회사의 SQLBigEyes Professional V6가 후보 군 중의 하나이며 제품에 대한 설명과 더불어 기타 궁금한 점을 묻기 위한 자리였습니다. 물론 Azure SQL에 대한 지원 여부 등도 궁금해 하셨습니다.
SQLBigEyes Professional은 Azure SQL Database 초기에도 테스틀 해 보았고, 이전엔 AWS의 RDS 서비스로 올라간 SQL Server 컨설팅 시에도 모니터링용으로 유용하게 사용한 적이 있어 지원이 가능하다고 답변을 드렸었습니다. 그리고 이제 SQL MI로 SQLBigEyes를 검토 중인 고객을 만나 저 또한 이전의 관심이 다시 떠올랐습니다, 어떻게 구성/동작하는지? 모니터링 솔루션을 구동하는데 어떤 이슈가 있을지? 등등이 궁금했고 가능하다면 해결까지 마무리해서 준비를 하고 싶은 욕심도 생겼습니다.
SQL MI 간단히 만들어 보기
Azure Potal에서 이제 SQL MI를 설치해 볼 수 있습니다. 간단합니다^^
만들어지는데 시간이 좀 많이 걸립니다, 새벽 12시 경 시작해서 한 참 기다려도 끝나지 않아 그냥 잤습니다 ^^; 해서 정확히 얼마가 걸렸는지 기록이 없습니다.
[그림] Azure SQL Database Managed Instance
구성하고 나면 SSMS나 혹은 Application에서 접속을 해야겠죠? 정식 서비스라면 VPN이든 VM이든 해서 제대로 구성하고 연결해야겠으나 저는 간단한 테스트 용도라서 별 다른 구성없이 바로 접속하도록 처리했습니다. 접속 문자열, 포트, 혹은 ADO.NET과 같은 Application에서 사용할 연결 정보나 문자열 정보는 속성에서 확인할 수 있습니다.
[그림] 연결 정보, 연결 문자열 정보
초기에 살짝 어려움이 있었지만 다행이 정상적으로 연결했고 여러가지 테스트를 해 봤습니다.
1)우선 데이터베이스를 하나 만들어 봤는데 아래 보시는 것처럼 On-Premise에서 하듯이 파일/파일그룹 구성이나 크기 등등 구성 항목이 전부 노출되지는 않습니다, 일부 옵션을 스크립트로 직접해 보니 오류 메시지가 떨어지기도 했습니다.
[그림] 데이터베이스 생성
2) SQLBigEyes Professional에서 접속한 뒤 모니터링을 수행해 봤습니다. 데시보드에서부터 몇 가지 오류가 발생했습니다, 예를 들어 Managed Instance가 다른 말로 하자면 Named Instance처럼 동작하는 것으로 보였습니다. SQL MI에 연결할 때는 연결 문자열로 사용하지만 내부적으로는 Instance 명을 할당받게 되므로 이에 대한 고려가 필요한 것이죠. 다행이도 해결 방안을 생각해서 조치를 했고 모니터링이 정상적으로 수행되도록 수정을 완료했습니다.
3) 기능 테스트를 위해서 샘플 DB가 필요한 관계로 확인해 보니 SSMS에서 복원이 가능했습니다. 다만 Azure인 관계로 Azure Storage에 연결된 컨테이너를 통해서 백업 파일을 지정하고 복원으로 연동이 가능합니다. 해서 그렇게 맞추어서 작업을 했고 AdventureWorks DB를 샘플로 복원에 성공하고 기능 테스트를 수행했습니다. 혹시나해서 샘플로 스크립트 기반으로 DB도 만들어 봤습니다, 위에서 언급한 DB생성 자체에서의 제한 사항을 제외하고는 모두 정상적으로 처리되었습니다. 실제로 Migration을 한다면 Azure Database Migration Service 같은 것을 이용하시게 될겁니다.
[그림] 데이터베이스 복원
마무리
아마도 앞으로 SQL MI를 테스트해 볼일이 계속 생기지 않을까 기대 아닌 기대를 해 봅니다. 더불어 Microsoft Azure에서 SQL Server 모니터링이 필요한 고객들에게 SQLBigEyes Professional이 좋은 선택지가 될 수 있기를 희망해 봅니다 😀