Elasticsearch가 처음이신가요? Elasticsearch 입문용 웨비나에 참여하세요. 지금 무료 클라우드 체험을 시작하거나, 내 기기에서 Elastic을 사용해 볼 수 있습니다.
이 문서는 다양한 인프라를 사용하여 Elasticsearch를 설치하는 방법을 알아보는 시리즈의 일부입니다.

ECK는 마켓플레이스 기반 Elastic Cloud 솔루션보다 훨씬 더 많은 노력이 필요하지만, Kubernetes 운영자가 시스템 오케스트레이션과 노드 확장을 처리하기 때문에 직접 VM을 배포하는 것보다 훨씬 더 자동화되어 있습니다.
이번에는 자동을 사용하여 Azure Kubernetes Service(AKS)로 작업해 보겠습니다. 다른 문서에서는 Azure VM 및 Azure Marketplace를 사용하는 방법에 대해 알아보세요.
AKS 자동이란 무엇인가요?
Azure Kubernetes Service(AKS)는 클러스터 설정을 자동으로 관리하고, 리소스를 동적으로 할당하고, 보안 모범 사례를 통합하는 동시에 Kubernetes 유연성을 유지하므로 개발자는 컨테이너 이미지에서 배포된 애플리케이션으로 몇 분 내에 전환할 수 있습니다.
AKS Automatic은 대부분의 클러스터 관리 오버헤드를 제거하고 단순성과 유연성 간의 균형을 잘 맞추고 있습니다. 올바른 선택은 사용 사례에 따라 다르지만, 계획이 있다면 더 쉽게 결정할 수 있습니다:
- 테스트 환경을 배포하세요: 배포가 빠르고 간단하여 빠른 실험이나 단기간의 클러스터에 이상적입니다.
- 엄격한 가상 머신, 스토리지 또는 네트워킹 요구 사항 없이 작업하세요: AKS 자동은 사전 정의된 기본값을 제공하므로 필요에 맞는 기본값을 사용하면 추가 구성이 필요하지 않습니다.
- Kubernetes로 처음 시작하세요: AKS Automatic은 클러스터 설정의 대부분을 처리함으로써 학습 곡선을 낮추고 팀이 애플리케이션에 집중할 수 있도록 합니다.
Elasticsearch의 경우, Elastic Stack의 Kubernetes 배포 오케스트레이션을 간소화하는 공식 Elastic Kubernetes 운영자인 ECK(Elastic Cloud on Kubernetes )를 사용하겠습니다.
AKS 자동 설정 방법
1. Microsoft Azure 포털에 로그인합니다.
2.오른쪽 상단의 Cloud Shell 버튼()을 클릭하여 콘솔에 액세스하고 거기에서 AKS 클러스터를 배포합니다. 또는 Azure Cloud Shell을 사용할 수도 있습니다.
튜토리얼을 진행하는 동안 프로젝트 ID를 자신의 것으로 업데이트하는 것을 잊지 마세요.

AKS를 열면 위의 스크린샷과 같은 화면이 나타납니다.
3. aks-preview Azure CLI 확장을 설치합니다. 이 미리 보기 버전에서는 클러스터 생성 시 --sku automatic 을 선택하면 AKS 자동 기능을 사용할 수 있습니다.

이 메시지가 표시되면 AKS 확장 프로그램이 제대로 설치되었다는 뜻입니다.
4. az feature register 명령을 사용하여 기능 플래그 등록하기
방금 생성한 기능 구독에 대한 세부 정보가 표시됩니다:

등록 상태가 "등록중"에서 "등록됨"으로 변경될 때까지 등록 상태를 확인합니다. 등록을 완료하는 데 몇 분 정도 걸릴 수 있습니다.

az provider register 을 실행하여 변경 사항을 전파합니다.
5. 리소스 그룹 만들기
리소스 그룹은 관리 및 배포할 Azure 리소스의 논리적 그룹입니다.

6. 자동 조종 장치 클러스터를 생성합니다. 이름을 myAKSAutomaticCluster로 지정하고 방금 만든 리소스 그룹을 사용하겠습니다. 다음 VM 크기 중 하나에서 16개의 vCPU를 사용할 수 있는지 확인합니다: Standard_D4pds_v5, Standard_D4lds_v5, Standard_D4ads_v5, Standard_D4ds_v5, Standard_D4d_v5, Standard_D4d_v4, Standard_DS3_v2, AKS용 Standard_DS12_v2 리소스 할당에 사용할 수 있습니다.
*MissingSubscriptionRegistration오류가 표시되면 누락된 구독이 있는 4단계로 돌아가세요. 예를 들어 The subscription is not registered to use namespace 'microsoft.insights' 실행이 필요합니다. az provider register --namespace Microsoft.Insights.
대화형 로그인을 따르세요:
"az login"을 실행하라는 메시지가 표시됩니다. 해당 명령을 실행한 다음 기다려야 합니다.

7. 준비가 될 때까지 기다립니다. 생성하는 데 약 10분이 걸립니다.

8. kubectl 명령줄 액세스를 구성한다.

저희가 설치한 확장 프로그램은 AKS 자동을 활성화하고 있습니다.
9. 노드가 배포되었는지 확인합니다.
금지된 오류 메시지가 표시되면 오류에서 사용자 ID를 복사합니다.

10. AKS 액세스 제어에 사용자를 추가합니다.
AKS ID를 받습니다. 명령에서 출력을 복사합니다.

AKS ID와 사용자의 대표 ID를 사용하여 역할 할당을 생성합니다.
11. 노드가 다시 배포되었는지 확인합니다.

12. Kubernetes(ECK) 운영자에 Elastic Cloud를 설치합니다.
13. 기본값을 사용하여 단일 노드 Elasticsearch 인스턴스를 생성해 보겠습니다.
기본 AKS 머신의 vm.max_map_count 값이 너무 낮기 때문에 nmap 을 비활성화했습니다. 비활성화하는 것은 프로덕션에는 권장되지 않지만 vm.max_map_count 의 값을 늘리는 것은 권장됩니다. 자세한 방법은 여기에서 확인할 수 있습니다.
14. 또한 Kibana 단일 노드 클러스터를 배포해 보겠습니다. Kibana의 경우, 로드 밸런서를 추가하여 장치에서 Kibana에 접속하는 데 사용할 수 있는 외부 IP를 제공합니다.
기본적으로 AKS 자동은 로드 밸런서를 공개로 구성하며, 메타데이터 주석을 설정하여 동작을 변경할 수 있습니다:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
15. 파드가 실행 중인지 확인합니다.

16. 또한 kubectl get elasticsearch 및 kubectl get kibana 을 실행하여 Elasticsearch 버전, 노드 및 상태와 같은 보다 구체적인 통계를 확인할 수 있습니다.


17. 서비스에 액세스합니다.

그러면 EXTERNAL-IP 아래에 Kibana의 외부 URL이 표시됩니다. 로드 밸런서가 프로비저닝하는 데 몇 분 정도 걸릴 수 있습니다. EXTERNAL-IP 값을 복사합니다.
18. 'elastic' 사용자의 Elasticsearch 비밀번호를 가져옵니다:

19. 브라우저를 통해 Kibana에 액세스합니다:
a. URL: https://<EXTERNAL_IP>:5601
b. 사용자 이름:elastic
c. 비밀번호: c44A295CaEt44D6xIzN6Zs5m(이전 단계부터)

20. 브라우저에서 Elastic Cloud에 액세스하면 시작 화면이 표시됩니다.

노드 변경 또는 크기 조정과 같이 Elasticsearch 클러스터 사양을 변경하려는 경우, 새 설정으로 YML 매니페스트를 다시 적용할 수 있습니다:
이 예제에서는 노드를 하나 더 추가하고 RAM과 CPU를 수정하겠습니다. 보시다시피 이제 kubectl get elasticsearch 에 2개의 노드가 표시됩니다:

Kibana도 마찬가지입니다:
컨테이너 CPU/RAM 및 Node.js 메모리 사용량(최대 이전 공간 크기)도 조정할 수 있습니다.
기존 볼륨 클레임은 크기를 줄일 수 없다는 점에 유의하세요. 업데이트를 적용한 후 운영자는 중단 시간을 최소화하면서 변경 작업을 수행합니다.
불필요한 비용을 피하려면 테스트가 끝나면 클러스터를 삭제하는 것을 잊지 마세요.
결론
ECK와 함께 Azure AKS Automatic을 사용하면 운영 복잡성을 줄이고, 자동화된 확장 및 업데이트를 보장하며, Kubernetes의 유연성을 활용하는 등 Elasticsearch와 Kibana를 배포하기 위한 균형 잡힌 솔루션을 제공합니다. 이 접근 방식은 모든 인프라 세부 사항을 수동으로 관리하지 않고도 안정적이고 반복 가능하며 유지 관리가 가능한 배포 프로세스를 원하는 팀에 이상적이며 테스트 및 프로덕션 환경 모두에 실용적인 선택이 될 수 있습니다.
다음 단계
Kubernetes에 대해 자세히 알아보려면 여기에서 공식 문서를 확인하실 수 있습니다:





