온프레미스에서 AWS의 Elastic으로 Elastic 워크로드 마이그레이션을 자동화하는 10단계

blog-thumb-cloud-aws.png

자체 관리형 Elastic 워크로드를 Amazon Web Services(AWS)의 Elastic으로 마이그레이션하여 비용, 시간 및 확장 효율성을 활용할 준비가 되셨나요? Elastic이 AWS와 함께 개발한 모범 사례와 도구를 활용하여 빠르고 원활하게 전환하세요. 셀프 서비스 마이그레이션 경로 옵션을 실행한 다음, 마이그레이션을 자동화하는 간단한 "방법" 단계를 살펴보겠습니다.

경로 선택

AWS 환경에서 Elastic에 온프레미스 데이터 세트를 추가하는 세 가지 주요 옵션은 데이터 재수집, 스냅샷 및 복원, 클러스터로부터 재색인입니다.

1. 데이터 소스(애플리케이션, 데이터베이스 및 인프라)도 AWS로 마이그레이션하려는 경우, 소스에서 Elastic으로 데이터를 재수집할 수 있습니다. Elastic의 인기 있는 AWS 서비스와의 통합을 통해 데이터 수집을 간소화하도록 지원합니다. 클릭만으로 데이터를 캡처, 저장, 검색이 가능합니다.

2. 기존 클러스터의 데이터를 Elastic Cloud로 이동해야 하며 기존 클러스터가 Elastic Cloud보다 이전 버전의 Elasticsearch를 실행하고 있는 경우, 스냅샷 및 복원이 이상적입니다.

3. 다른 옵션은 클러스터로부터 재색인하는 것입니다. 데이터 볼륨이 적거나 스냅샷 및 복원 기능을 사용하는 데 제약이 있으며 기존 클러스터가 Elastic Cloud보다 이전 버전의 Elasticsearch를 실행하고 있는 경우, 가장 적합합니다. 마이그레이션 안내서에서 재색인 API 사용 방법에 대한 자세한 내용을 알아보세요.

이 블로그에서는 스냅샷 및 복원을 통해 마이그레이션 경로를 자동화하는 간단한 단계를 제공합니다.

스냅샷 및 복원을 통해 마이그레이션 자동화

스냅샷을 사용하여 데이터를 마이그레이션하고 Terraform(오픈 소스 코드형 인프라 소프트웨어)을 사용하여 복원하는 것이 얼마나 쉬운지 살펴보겠습니다. 먼저 필수 구성 요소부터 살펴보고 사용 방법에 대해 알아보겠습니다.

필수 구성 요소

  1. 대상 Elastic Cloud가 현재 Elasticsearch 클러스터와 같거나 더 높은 버전을 실행하고 있는지 확인합니다. 버전 호환성에 대한 자세한 표는 Elastic 스냅샷 및 복원 안내서에 나와 있습니다.
  2. Elastic Cloud 클러스터의 인프라 용량이 사용 사례에 대한 데이터 볼륨 및 컴퓨팅 요구 사항을 수용하기에 충분한지 확인합니다.
  3. Elastic 스냅샷 및 복원 안내서에 나열된 제한 사항과 Elastic 업그레이드 안내서의 버전별 변경 사항을 확인하여 배포의 Elastic Cloud 마이그레이션에 영향을 미치는 제약 조건이 없는지 확인합니다.
  4. 설치된 올바른 버전의 Terraform 소프트웨어를 확인하고 Terraform 볼트 기능이 활성화되었는지도 확인합니다.
  5. Elasticsearch API 키(var.apikey) 및 AWS 액세스 키(var.s3_client_access_key, var.s3_client_secret_key)와 같은 필요한 정보를 수집합니다.
  6. 온프레미스와 AWS의 Elastic VPC 및 기타 AWS 리소스 사용 권한 간의 네트워크 연결(직접 연결)을 확인합니다.
  7. 기존 Elasticsearch 클러스터에 Elasticsearch AWS CLI 및 Amazon Simple Storage Service(Amazon S3) 플러그인을 아직 가지고 있지 않은 경우, 다음 명령을 사용하여 Elasticsearch 홈 디렉터리에서 플러그인을 설치해야 합니다.
> sudo bin/elasticsearch-plugin install repository-s3
  1. 기존 Elasticsearch 클러스터의 루트 디렉토리에서 다음 명령을 사용하여 Amazon S3 액세스 키를 Elasticsearch 키 저장소에 추가합니다(메시지가 표시되면 이전 Amazon S3 버킷 생성 프로세스의 해당 키를 입력합니다).
> bin/elasticsearch-keystore add s3.client.default.access_key
> bin/elasticsearch-keystore add s3.client.default.secret_key
Elastic 클라우드 마이그레이션 아키텍처

마이그레이션 단계

  1. Amazon S3 서비스를 사용하여 Elastic Cloud 스냅샷 리포지토리를 생성하고 등록합니다.
  2. 로컬 스냅샷 리포지토리를 생성하고 구성하여 Amazon S3 버킷을 가리킵니다.
  3. 로컬 클러스터에서 새 스냅샷을 생성하여 Amazon S3 버킷에 저장합니다.
  4. Elastic Cloud 클러스터를 프로비저닝합니다.
  5. Elastic Agent에 필요한 AWS 리소스를 프로비저닝합니다.
  6. 원활한 로그 수집에 필요한 Elastic 서버리스 전달자를 프로비저닝합니다.
  7. 배포 프로세스에 필요한 AWS 서비스에 대한 액세스 권한을 세분화하여 여러 AWS 신원 및 액세스 관리(IAM) 인스턴스 역할을 생성합니다.
  8. Elastic Cloud에서 모든 인덱스를 닫습니다.
  9. Elastic Cloud의 스냅샷에서 로컬 클러스터 데이터를 복원합니다.
  10. 마지막으로, Elastic Cloud에서 모든 인덱스를 엽니다.

배포 단계

다음은 필수 비밀 액세스 키 수집과 같은 필수 구성 요소 섹션에서 간략하게 설명한 세부 단계입니다. 키가 이미 있는 경우, 3단계로 건너뛸 수 있습니다.

  1. Elasticsearch Service(ESS) API 키 생성:
    1. 브라우저를 열고 https://cloud.elastic.co/login으로 이동합니다.
    2. 이메일과 비밀번호를 사용하여 로그인합니다.
    3. Elasticsearch Service를 클릭합니다.
    4. 기능 > API 키로 이동하여 API 키 생성을 클릭합니다.
    5. API 키의 이름을 선택합니다.
    6. API 키를 안전한 곳에 저장합니다.
  2. AWS 액세스 키 생성:
    1. 목록, 읽기, 쓰기 권한을 허용하는 S3 버킷 정책을 생성합니다.
    2. IAM 사용자를 생성하고 위에서 만든 정책을 연결합니다.
    3. IAM 사용자를 위한 프로그래밍 방식 액세스를 확인합니다.
    4. AWS 액세스 키를 안전한 곳에 저장합니다.
  3. 다음 명령을 사용하여 Terraform Elastic Cloud 마이그레이션 리포지토리를 복제합니다.
    1. git clone https://github.com/aws-ia/terraform-elastic-cloud
    2. cd terraform-elastic-cloud
  4. HashiCorp Vault를 사용하는 경우, 다음과 같이 Vault 환경 변수를 설정할 수 있습니다.
    1. export VAULT_ADDR= "Your Vault URL"
    2. export VAULT_TOKEN= "Your Vault Token"                                                                                  Elasticsearch API 키를 추가합니다(한 예로 여기서는 경로에 "ess"를 사용했습니다).
vault kv put secret/ess apikey="Your Elastic API Key"

AWS API 키를 추가합니다(한 예로 여기서는 경로에 "aws"를 사용했습니다).

vault kv put secret/aws s3_client_access_key="Your AWS Access Key"     
s3_client_secret_key="Your AWS Secret Key"
  1. 키를 제공해야 합니다. Terraform에서 다양한 방법으로 이를 수행할 수 있습니다. 여기서는 변수 정의(.tfvars)를 사용해 보겠습니다. 이 새로 추가된 기능은 Elasticsearch 클러스터를 Elastic Cloud로 마이그레이션하는 작업을 자동화합니다. 파일은 다음과 같습니다(HashiCorp Vault를 사용하는 경우).

아래 예시와 같이 자체 관리형 Elasticsearch의 URL만 할당하면 됩니다.

    var.local_elasticsearch_url (e.g., http://127.0.0.1:9200).

    예를 들어, 아래와 같이 동일한 testing.tfvars에 var.local_elasticsearch_url을 추가할 수 있습니다(HashiCorp Vault를 사용하는 경우).

    name = "Elasticsearch Cluster"
    local_elasticsearch_url = ""
    vault_address = "Your Local Elastic Cluster URL"
    vault_ess_path = "secret/ess"
    vault_aws_path = "secret/aws"
    apikey = "hashicorp/vault"
    s3_client_access_key = "hashicorp/vault"
    s3_client_secret_key  = "hashicorp/vault"

    또는 다음과 같이 직접 키를 제공할 수 있습니다.

    name = "Elasticsearch Cluster"
    local_elasticsearch_url = ""
    apikey = "Your Elastic API Key"
    s3_client_access_key = "Your AWS Access Key"
    s3_client_secret_key  = "Your AWS Secret Key"
    1. 이러한 변수가 .tfvars 파일에 지정되면(아래 예에서는 testing.tfvars라는 파일을 사용), 다음과 같이 Terraform 모듈을 실행할 수 있습니다.
          terraform init
          terraform validate
          terraform apply -var-file="testing.tfvars"

          배포 삭제

          terraform 모듈에서 프로비저닝하는 인프라가 더 이상 필요하지 않은 경우, 다음 명령을 사용하여 모든 리소스를 쉽게 종료할 수 있습니다.
          terraform destroy -var-file="testing.tfvars"

          Elastic 및 AWS를 통해 더 많은 마이그레이션 리소스 활용

          Elastic은 자체 관리형 온프레미스 Elasticsearch 또는 ELK 워크로드를 AWS의 Elastic으로 마이그레이션하도록 지원하는 AWS ISV 워크로드 마이그레이션 프로그램(WMP) 파트너로 인증을 받았습니다. Elastic의 방법론은 고객에게 마이그레이션 도입을 가속화할 수 있는 반복 가능한 권장 접근 방식을 제공하며, AWS Well-Architected Framework, AWS Migration Acceleration Program 등 AWS가 발행한 마이그레이션 지침 및 모범 사례와 정확히 일치합니다. AWS WMP 프로그램을 통해 온보딩 안내, 마이그레이션 리소스, AWS 인프라 크레딧 및 자금 지원을 활용하여 비즈니스 목표를 달성하고 클라우드 도입 기간을 앞당길 수 있습니다.

          지금 바로 AWS의 Elastic으로 마이그레이션 시작

          팀이 이미 알고 있는 Elastic 솔루션을 사용하여 클라우드 지원 기능을 모두 활용하려면 마이그레이션하세요. 이 마이그레이션 안내서, 빠른 시작 안내서, 웹사이트설명서를 보거나 Elastic이 평가, 계획 및 재정 지원을 포함하여 마이그레이션을 어떻게 도와드릴 수 있는지에 대해 자세히 알아보려면 Elastic에 직접 문의해 주세요. 또한 복잡한 대규모 워크로드를 마이그레이션하는 데 도움을 드릴 수 있는 Elastic 컨설팅 팀에 문의하실 수도 있습니다. AWS Marketplace에서 직접 7일 무료 체험판을 활용하여 몇 분 안에 Elastic을 배포하세요.

          이 게시물에 설명된 기능의 릴리즈 및 시기는 Elastic의 단독 재량에 따릅니다. 현재 이용할 수 없는 기능은 정시에 또는 전혀 제공되지 않을 수 있습니다.