빠른 시작: Azure Managed Instance for Apache Cassandra에서 클라이언트 구성기를 사용하여 하이브리드 클러스터 구성

Azure 클라이언트 구성기는 하이브리드 클러스터를 구성하고 Azure Managed Instance for Apache Cassandra로의 마이그레이션 프로세스를 간소화하는 것을 지원하도록 만든 도구입니다. 현재 온-프레미스 데이터 센터가 있거나 자체 호스팅 환경에서 운영하는 경우 Azure Managed Instance for Apache Cassandra를 사용하여 다른 데이터 센터를 사용자 클러스터에 원활하게 통합하면서 효과적으로 유지 관리할 수 있습니다.

Important

클라이언트 구성기 도구는 공개 미리 보기로 제공됩니다. 해당 기능은 별도의 Service Level Agreement(서비스 수준 규약) 없이 제공되며, 프로덕션 작업에는 사용하지 않는 것이 좋습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

필수 조건

  • 이 문서를 진행하려면 Azure CLI 버전 2.30.0 이상이 필요합니다. Azure Cloud Shell을 사용하는 경우 최신 버전이 이미 설치되어 있습니다.

  • 자체 호스팅 또는 온-프레미스 환경에 연결된 Azure Virtual Network. 온-프레미스 환경을 Azure에 연결하는 방법에 대한 자세한 내용은 Azure에 온-프레미스 네트워크 연결 문서를 참조하세요.

  • Python 설치가 필요합니다. 터미널에서 python --version을(를) 실행하여 python이 설치되어 있는지 확인할 수 있습니다.

  • Azure Managed Instance와 온-프레미스 Cassandra 클러스터가 모두 동일한 가상 네트워크에 있는지 확인합니다. 그렇지 않은 경우 네트워크 피어링 또는 기타 연결 수단(예: Express 경로)을 설정해야 합니다.

  • 관리형 클러스터와 로컬 클러스터의 클러스터 이름이 같아야 합니다. * cassandra.yaml 파일에서 스토리지 포트가 7001로 설정되고 클러스터 이름이 관리형 클러스터와 동일한지 확인합니다.

cluster_name: managed_cluster-name
storage_port: 7001
UPDATE system.local SET cluster_name = 'managed_cluster-name' where key='local';

설치

python3 -m venv env
source env/bin/activate
python3 -m pip install -r requirements.txt
  • Azure CLI az login에 로그인
  • 기존 (온-프레미스) 클러스터의 정보를 사용하여 클라이언트 폴더 내에서 Python 스크립트를 실행합니다.
python3 client_configurator.py --subscription-id <subcriptionId> --cluster-resource-group <clusterResourceGroup> --cluster-name <clusterName> --initial-password <initialPassword> --vnet-resource-group <vnetResourceGroup> --vnet-name <vnetName> --subnet-name <subnetName> --location <location> --seed-nodes <seed1 seed2 seed3> --mi-dc-name <managedInstanceDataCenterName> --dc-name <onPremDataCenterName> --sku <sku>

참고 항목

  • subscription-id: Azure 구독 ID입니다.
  • cluster-resource-group: 클러스터가 상주하는 리소스 그룹입니다.
  • cluster-name: Azure Managed Instance 클러스터 이름입니다.
  • initial-password: Azure Managed Instance for Apache Cassandra 클러스터의 암호입니다.
  • vnet-resource-group: 가상 네트워크에 연결된 리소스 그룹입니다.
  • vnet-name: 클러스터에 연결된 가상 네트워크의 이름입니다.
  • subnet-name: Cassandra 클러스터에 할당되고 주소가 지정된 IP의 이름입니다.
  • location: 클러스터가 배포되는 위치입니다.
  • seed-nodes: 온-프레미스 또는 자체 호스팅 Cassandra 클러스터에 있는 기존 데이터 센터의 시드 노드입니다.
  • mi-dc-name: Azure Managed Instance 클러스터의 데이터 센터 이름입니다.
  • dc-name: 온-프레미스 클러스터의 데이터 센터 이름입니다.
  • sku: 가상 머신 SKU 크기입니다.
  • Python 스크립트는 install_certs.tar.gz이라는 tar 보관 계층을 생성합니다. * 이 폴더의 압축을 각 노드의 /etc/cassandra/에 풉니다.

    sudo tar -xzvf install_certs.tar.gz -C /etc/cassandra
    
  • /etc/cassandra/ 폴더 내에서 sudo ./install_certs.sh을(를) 실행합니다.

    • sudo chmod +x install_certs.sh을(를) 실행하여 스크립트가 실행 가능한지 확인합니다.
    • 이 스크립트는 Cassandra를 설치하고 Azure Managed Instance 클러스터에 연결하는 데 필요한 새 인증서를 가리킵니다.
    • 그런 다음 사용자에게 Cassandra를 다시 시작하라는 메시지를 표시합니다. Screenshot of the result of running the script.
  • 모든 노드에서 Cassandra가 다시 시작되면 nodetool status을(를) 확인합니다. 두 데이터 센터가 모두 목록에 표시되고 해당 노드는 UN(Up/Normal) 상태여야 합니다.

  • 그러면 Azure Managed Instance for Apache Cassandra에서 AllKeyspaces을(를) 선택하여 Keyspace 스키마의 복제 설정을 변경하고 Cassandra Managed Instance 클러스터로의 마이그레이션 프로세스를 시작할 수 있습니다.

    Screenshot of selecting all key spaces.

자동 복제 설정은 ARM 템플릿을 통해 사용할 수 있어야 합니다. ARM 템플릿에는 다음이 포함되어야 합니다.

"properties":{
...
"externalDataCenters": ["dc-name-1","dc-name-2"],
"autoReplicate": "AllKeyspaces",
...
}

Warning

이렇게 하면 모든 키스페이스 정의가 WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'on-prem-datacenter-1' : 3, 'mi-datacenter-1': 3 }을(를) 포함하도록 변경됩니다. 원하는 토폴로지가 아닌 경우 Cassandra Managed Instance 클러스터에서 수동으로 조정하고 nodetool rebuild을(를) 실행해야 합니다. 자동 복제에 관해 자세히 알아보기

  • Data Center 창을 선택하여 데이터 복제 진행률 업데이트 및 모니터링

    Screenshot showing replication progress.

[!정보]

다음 단계

이 빠른 시작에서는 Azure Managed Instance for Apache Cassandra 클라이언트 구성기를 사용하여 하이브리드 클러스터를 만드는 방법을 알아보았습니다. 이제 클러스터 사용을 시작할 수 있습니다.