데이터베이스 또는 시스템 관리자는 새 소프트웨어를 배포할 때 설정 마법사를 살펴볼 시간이 항상 있는 것은 아닙니다. 아마도 대규모 조직에서 방대한 양의 시스템을 관리하고 있기 때문일 것입니다.
그렇다면 분산 데이터베이스 클러스터에 관해서는 어떻게 하시겠습니까?
카우치베이스 서버는 다음과 같이 제공됩니다. RESTful API 는 새 클러스터를 만들거나 기존 클러스터에 가입하는 등 인스턴스를 프로비저닝하는 데 적합합니다. 이러한 API 엔드포인트 중 일부를 사용하는 방법을 살펴보겠습니다.
Mac, Linux 또는 Windows용 카우치베이스 서버 설치하기
HTTP를 통해 Couchbase Server를 구성할지 여부와 관계없이 먼저 소프트웨어를 설치해야 합니다. Mac, Linux 및 Windows용 바이너리가 있으며, 이 바이너리는 모두 다운로드 섹션 를 클릭하세요.
원하는 경우 Amazon, Azure, Docker 등의 서비스에서 사용할 수 있는 다양한 클라우드 이미지를 찾을 수도 있습니다.
명령줄로 새 클러스터 만들기
Couchbase Server가 설치 및 실행되면 RESTful API 엔드포인트를 활용하여 인스턴스 구성을 완료할 수 있습니다.
가장 먼저 할 일은 인스턴스에 할당할 메모리의 양을 정의하는 것입니다:
1 2 3 |
curl -v -X POST http://localhost:8091/pools/default -d 메모리 쿼터=512 -d 인덱스메모리쿼터=512 |
위의 명령은 인스턴스에 512MB의 메모리와 512MB의 인덱스 메모리를 할당합니다. 물론 필요에 따라 둘 다 조정해야 합니다.
또한 인스턴스에서 어떤 서비스를 사용할 수 있는지 정의해야 합니다:
1 2 |
curl -v http://로컬호스트:8091/노드/컨트롤러/setupServices -d 서비스=kv%2cn1ql%2Cindex |
위에서는 쉼표로 구분된 서비스 목록이 있는데, 쉼표는 URL 인코딩이 되어 있습니다. %2C
. 이 예의 서비스는 키-값 서비스(KV), N1QL 서비스 및 인덱스 서비스입니다. 필요에 따라 이러한 서비스를 모두 사용하도록 설정할 수도 있고 사용하지 않을 수도 있습니다.
아직 관리 계정이 생성되지 않았기 때문에 현재 Couchbase 인스턴스는 매우 개방적이고 안전하지 않습니다. 지금 관리 계정을 만드는 것이 좋습니다:
1 2 3 4 |
curl -v http://localhost:8091/settings/web -d 포트=8091 -d 사용자 이름=관리자 -d 비밀번호=비밀번호 |
위의 예에서는 관리 사용자 이름을 다음과 같이 정의하고 있습니다. 관리자 와 비밀번호는 비밀번호. 프로덕션 환경에서는 좋은 선택이 아닐 수도 있습니다.
기본적으로 Couchbase 인스턴스에는 버킷이 없으므로 버킷을 만들어야 합니다. 명령줄에서 실행합니다:
1 2 3 4 5 6 |
curl -v -u 관리자:비밀번호 -X POST http://localhost:8091/pools/default/buckets -d 이름=예제 -d 버킷 유형=카우치베이스 -d 램쿼터MB=256 -d 인증 유형=sasl |
위의 버킷 생성 명령은 꽤 많은 일을 하고 있습니다. 요청에 포함된 인스턴스에 관리 정보를 제공하고 있습니다. 생성하는 버킷의 이름은 예제 그리고 그것은 카우치베이스 버킷 유형. 선택할 수 있는 버킷 유형은 몇 가지가 있으므로 한 가지 옵션만 있다고 생각하지 마세요. 이 버킷의 메모리 할당은 이 서버에 할당된 512MB 중 256MB가 됩니다.
마지막으로, N1QL을 사용하고 있으므로 버킷에 기본 인덱스를 생성하는 것이 좋습니다. 계속해서 다음을 실행합니다:
1 2 |
curl -v http://localhost:8093/query/service -d 'statement=예제에서 기본 인덱스 생성' |
이 시점에서 새 인스턴스는 완전히 작동해야 합니다. RESTful API는 구성 측면에서 앞서 살펴본 것보다 훨씬 더 많은 기능을 제공하므로 어떤 기능을 제공하는지 확인해 보는 것이 좋습니다.
명령줄로 클러스터에 참여하기
그렇다면 이미 존재하는 클러스터에 추가할 노드를 스핀업하는 경우에는 어떻게 해야 할까요? RESTful API를 사용하여 도움을 받을 수 있습니다.
명령줄에서 다음을 실행합니다:
1 2 3 4 5 |
curl -u 관리자:비밀번호 -d 클러스터회원호스트아이피=10.0.1.99 -d 클러스터 멤버 포트=8091 -d 사용자=관리자 -d 비밀번호=비밀번호 -d 서비스=kv%2cn1ql%2cindex http://로컬호스트:8091/노드/컨트롤러/도조인클러스터 |
위의 명령은 로컬 호스트 또는 새 노드가 있는 위치에서 노드를 가져와서 클러스터에 조인합니다. 클러스터회원호스트아이피
. 모든 노드가 일치할 필요는 없지만 이 새 노드는 모두 동일한 서비스를 갖게 됩니다.
클러스터에서 노드를 추가하거나 제거할 때마다 해당 클러스터의 밸런스를 재조정해야 합니다. 이 작업은 다음과 같은 방법으로 수행할 수 있습니다:
1 2 3 |
curl -v -X POST -u [관리자]:[비밀번호] http://localhost:8091/controller/rebalance |
재조정 프로세스는 보유한 데이터의 양에 따라 시간이 걸릴 수 있습니다.
결론
지금까지 명령줄과 RESTful API 엔드포인트를 사용하여 Couchbase Server 클러스터를 구성하는 방법을 살펴보았습니다. 이 방법은 많은 서버를 관리하고 이 모든 작업을 스크립트를 통해 수행하려는 경우에 유용합니다. 이 방법이 유용한 다른 시나리오도 많이 있습니다. 지속적인 배포 파이프라인을 만들었고 여기에 데이터베이스를 포함시켜야 할 수도 있습니다.
더 많은 API 엔드포인트를 사용할 수 있으며, 더 자세한 내용은 문서 에 대해 설명합니다.