

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 프라이빗 고정 IP를 사용하여 Amazon EC2에 Cassandra 클러스터를 배포하여 리밸런싱 방지
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing"></a>

*Dipin Jain, Amazon Web Services*

## 요약
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing-summary"></a>

Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스의 프라이빗 IP는 수명 주기 내내 유지됩니다. 하지만 Amazon Machine Image(AMI) 업그레이드와 같이 계획된 또는 예상치 못한 시스템 충돌 중에 프라이빗 IP가 변경될 수 있습니다. 일부 시나리오에서는 프라이빗 고정 IP를 유지하면 워크로드 성능 및 복구 시간을 개선할 수 있습니다. 예를 들어, Apache Cassandra 시드 노드에 고정 IP를 사용하면 클러스터에 리밸런싱 오버헤드가 발생하는 것을 방지할 수 있습니다. 

이 패턴은 보조 엘라스틱 네트워크 인터페이스를 EC2 인스턴스에 연결하여 리호스팅 중에 IP를 고정 상태로 유지하는 방법을 설명합니다. 이 패턴은 또한 Cassandra 클러스터에 초점을 맞추지만, 이 구현 방법을 프라이빗 고정 IP의 이점을 활용하는 모든 아키텍처에 사용할 수 있습니다.

## 사전 조건 및 제한 사항
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing-prereqs"></a>

**사전 조건 **
+ 활성 Amazon Web Services(AWS) 계정

**제품 버전**
+ DataStax 버전 5.11.1
+ 운영 체제: Ubuntu 16.04.6 LTS

## 아키텍처
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing-architecture"></a>

**소스 아키텍처**

소스는 온프레미스 가상 머신(VM)의 Cassandra 클러스터 또는 AWS 클라우드의 EC2 인스턴스일 수 있습니다. 다음 다이어그램은 이 두 번째 시나리오를 설명합니다. 이 예제에는 4개의 클러스터 노드(시드 노드 3개와 관리 노드 1개)가 포함됩니다. 소스 아키텍처에는 각 노드에 단일 네트워크 인터페이스가 연결되어 있습니다.

![각각 단일 네트워크 인터페이스가 연결된 4개의 Amazon EC2 클러스터 노드.](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/47ca4dbc-0922-4e65-b66c-4db5122fc4ac/images/5d80cfc9-4b72-4c72-aefd-b77cc0fb58e3.png)


**대상 아키텍처 **

대상 클러스터는 다음 다이어그램에 설명된 대로 각 노드에 보조 엘라스틱 네트워크 인터페이스가 연결된 EC2 인스턴스에서 호스팅됩니다.

![각각 보조 탄력적 네트워크 인터페이스가 연결된 4개의 Amazon EC2 클러스터 노드.](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/47ca4dbc-0922-4e65-b66c-4db5122fc4ac/images/d1e22017-f041-426b-9204-31ac158a407d.png)


**자동화 및 규모 조정**

또한 [AWS 지식 센터](https://www.youtube.com/watch?v=RmwGYXchb4E) 동영상에 설명된 대로 두 번째 엘라스틱 네트워크 인터페이스를 EC2 Auto Scaling 그룹에 자동으로 연결할 수 있습니다.

## 에픽
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing-epics"></a>

### Amazon EC2에서 Cassandra 클러스터 구성
<a name="configure-a-cassandra-cluster-on-amazon-ec2"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| EC2 노드를 실행하여 Cassandra 클러스터를 호스팅합니다. | [Amazon EC2 콘솔](https://console.aws.amazon.com/ec2/)에서 AWS 계정의 Ubuntu 노드에 대해 EC2 인스턴스 4개를 시작합니다. 세 개의 (시드) 노드는 Cassandra 클러스터에 사용되고 네 번째 노드는 DataStax Enterpris(DSE) OpsCenter를 설치할 클러스터 관리 노드 역할을 합니다. 자세한 지침은 [Amazon EC2 설명서](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance)를 참조하세요. | 클라우드 엔지니어 | 
| 노드 통신을 확인합니다. | 네 개의 노드가 데이터베이스 및 클러스터 관리 포트를 통해 서로 통신할 수 있는지 확인하세요. | 네트워크 엔지니어 | 
| 관리 노드에 DSE OpsCenter를 설치합니다. | 관리 노드의 Debian 패키지에서 DSE OpsCenter 6.1을 설치합니다. 자세한 지침은 [DataStax 설명서](https://docs.datastax.com/en/opscenter/6.1/opsc/install/opscInstallDeb_t.html)를 참조하세요. | DBA | 
| 보조 네트워크 인터페이스를 생성합니다. | Cassandra는 해당 노드에 대한 EC2 인스턴스의 IP 주소를 기반으로 각 노드에 대한 범용 고유 식별자(UUID)를 생성합니다. 이 UUID는 링에 가상 노드(vnode)를 배포하는 데 사용됩니다. Cassandra를 EC2 인스턴스에 배포하면 인스턴스가 생성될 때 IP 주소가 인스턴스에 자동으로 할당됩니다.  계획된 또는 예상치 못한 중단이 발생하는 경우, 새 EC2 인스턴스의 IP 주소가 변경되고 데이터 배포가 변경되며 링 전체를 재조정해야 합니다. 이는 바람직하지 않습니다. 할당된 IP 주소를 보존하려면 고정 IP 주소가 있는 [보조 엘라스틱 네트워크 인터페이스](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#scenarios-enis)를 사용합니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing.html)<br />네트워크 인터페이스를 생성하는 방법에 대한 자세한 내용은 [Amazon EC2 설명서](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#create_eni)를 참조하세요. | 클라우드 엔지니어 | 
| 보조 네트워크 인터페이스를 클러스터 노드에 연결합니다. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing.html)네트워크 인터페이스 연결에 대한 자세한 내용은 [Amazon EC2 설명서](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#attach_eni)를 참조하세요. | 클라우드 엔지니어 | 
| Amazon EC2에 경로를 추가하여 비대칭 라우팅을 처리합니다. | 두 번째 네트워크 인터페이스를 연결하면 네트워크가 비대칭 라우팅을 수행할 가능성이 큽니다. 이를 방지하기 위해 새 네트워크 인터페이스에 경로를 추가할 수 있습니다.<br />비대칭 라우팅에 대한 자세한 설명과 해결 방법은 [AWS 지식 센터 동영상](https://www.youtube.com/watch?v=RmwGYXchb4E) 또는 [Overcoming Asymmetric Routing on Multi-Home Servers](http://www.linuxjournal.com/article/7291)(패트릭 맥마너스의 2004년 4월 5일 *Linux Journal* 기사)를 참조하세요. | 네트워크 엔지니어 | 
| 보조 네트워크 인터페이스 IP를 가리키도록 DNS 항목을 업데이트합니다. | 노드의 정규화된 도메인 이름(FQDN)이 보조 네트워크 인터페이스의 IP를 가리키도록 합니다. | 네트워크 엔지니어 | 
| DSE OpsCenter를 사용하여 Cassandra 클러스터를 설치하고 구성합니다. | 클러스터 노드에 보조 네트워크 인터페이스가 준비되면 Cassandra 클러스터를 설치하고 구성할 수 있습니다. | DBA | 

### 노드 장애로부터 클러스터 복구
<a name="recover-cluster-from-node-failure"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 클러스터 시드 노드에 대한 AMI를 생성합니다. | 노드 장애 발생 시 데이터베이스 바이너리로 복원할 수 있도록 노드를 백업합니다. 자세한 지침은 Amazon EC2 설명서의 [AMI 생성](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-ami.html)을 참조하세요. | 백업 관리자 | 
| 노드 장애로부터 복구합니다. | 장애가 발생한 노드를 AMI에서 시작된 새 EC2 인스턴스로 교체하고 장애가 발생한 노드의 보조 네트워크 인터페이스를 연결합니다. | 백업 관리자 | 
| Cassandra 클러스터가 정상인지 확인합니다. | 교체 노드가 가동되면 DSE OpsCenter에서 클러스터 상태를 확인합니다. | DBA | 

## 관련 리소스
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing-resources"></a>
+ [Debian 패키지에서 DSE OpsCenter 6.1 설치](https://docs.datastax.com/en/opscenter/6.1/opsc/install/opscInstallDeb_t.html) (DataStax 설명서)
+ [Ubuntu EC2 인스턴스에서 보조 네트워크 인터페이스를 작동시키는 방법(](https://www.youtube.com/watch?v=RmwGYXchb4E)AWS 지식 센터 동영상)
+ [Amazon EC2에서 Apache Cassandra 실행에 대한 모범 사례](https://aws.amazon.com/blogs/big-data/best-practices-for-running-apache-cassandra-on-amazon-ec2/)(AWS Blog 게시물)