daybreak6 / apach-kafka-application-with-java

[아파치 카프카 애플리케이션 프로그래밍 with 자바] 스터디
0 stars 0 forks source link

8주차 스터디 인증하기! #8

Open LangVE opened 3 years ago

LangVE commented 3 years ago

완료목표

6장 끝까지

kaiwind7 commented 3 years ago

6.2 AWS MSK

MSK(Managed Streaming for Apache Kafka) AWS에서 제공하는 SaaS형 아파치 카프카 서비스.

AWS 인프라에서 카프카 클러스터를 생성, 업데이트 삭제 등과 같은 운영 요소를 대시보드를 통해 제공

또한, 안전하게 접속할 수 있도록 클러스터와 연동시 TLS 인증 보안을 설정

이점

AWS의 다양한 서비스와 자연스럽게 연동, S3에 적재하여 브로커 로그를 확인, 클러스터를 모니터링 하기 위해 따로 저장소나 수집 애플리케이션을 연동하지 않더라도 기본 모니터링 데이터를 AWS 클라우드와치로 확인할 수 있도록 제공.

클라우드와치에서 클라이언트의 지표와 브로커의 지표를 함꼐 모니터링할 수 있기 떄문에 효울은 더욱 늘어난다.

6.2.1 MSK 활용

6.2.1.1 클러스터 생성
VPC (Virtual Private Cloud) 사용자가 정의한 가상의 네트워크

온프레미스에서 운영하는 내부 네트워크의 개념과 유사

AZ(available zone)

AZ는 AWS 리전에 존재하는 개별 데이터 센터를 뜻

서브넷(subnet)

서브넷은 VPC 내부에서 생성할 수 있는 네트워크 대역.

인터넷 게이트웨이(Internet gateway)

인터넷 게이트웨이가 설정되지 않은 서브넷은 구글, 네이버와 같은 퍼블릭 네트워크와 통신할 수 없다.

그렇기 떄문에 서브넷의 네트워크 영역에 생성된 EC2 인스턴스가 퍼블릭 네트워크와 연결하기 위해서는 인터넷 게이트웨이를 설정해야 한다.

라우팅 테이블

VPC, 인터넷 게이트웨이, VPN 연결 시 서브넷 간 패킷 전달 규칙 지정

EBS(Elastic Block Store )

EC2 인스턴스에 사용할 수 있도록 설계된 볼륨 스토리지 서비스. EC2 인스턴스와 연결된 EBS는 파일 시스템으로 사용할 수 있다.

MSK 클러스터를 생성하기 위해 AWS에 로그인하여 MSK탭으로 이동.

MSK 화면에서 Create cluster 누루면 클러스터 생성을 위한 설정을 시작. 클러스터 생성은 크게 두가지 방법

  1. AWS에서 제공하는 추천 방식 5개 설정(클러스터 이름, 카프카 버전, 브로커 인스턴스 타입, EBS 용량 크기, 클라이언트 보안 방법 추천 설정 방식으로 진행할 경우 MSK 클러스터에 알맞은 네트워크가 자동으로 설정되어 편리하게 클러스터를 생성할 수 있다. 그러나 네트워크 세부 설정이 불가능하고 모니터링 설정에도 제약이 있다.
  2. 커스텀 설정 방식
    1. 클러스터 이름을 입력하고 아파치 카프카 버전을 선택.
    2. 카프카 브로커에 들어갈 커스텀 설정.
    3. 네트워크 구성 설정.
    4. MSK 클러스터를 구분할 태그를 설정
    5. 인스턴스별로 할당할 EBS 스토리지 용량을 설정
    6. 클러스터 보안 설정을 Encryption 영역에서 설정
    7. MSK의 모니터링 설정은 크게 3가지 옵션
      1. 클라우드와치를 사용한 클러스터 모니터링
      2. 프로메테우스 모니터링
      3. 브로커 로그 적재를 통한 로그 모니터링
6.2.1.2 MSK 클러스터 연동 인스턴스 생성

MSK 클러스터로 구축된 카프카 클러스터는 EC2 인스턴스에 직접 클러스터를 생성했을 떄와 다르게 클러스터 접속을 위한 퍼블릭 엔드포인트를 지원하지 않음 -> 클러스터로 접근하는 가장 쉬운 방법은 VPC 내부에 MSK 클러스터 연동을 위한 인스턴스를 생성.

6.2.1.3 토픽 생성
6.2.1.4 프로메테우스 설치 및 연동
6.2.1.5 그라파나 설치 및 연동
6.2.1.6 콘솔 프로듀서, 컨슈머 연동

6.2.2 AWS MSK 정리

MSK 클러스터는 AWS 인프라에 자연스럽게 녹아들어 생성되기 떄문에 AWS 를 사용하는 기업에서는 어렵지 않게 카프카 클러스터를 만들고 운영할 수 있다. 카프카 운영 시 필요한 고급 모니터링 기능들을 클라우드와치 또는 프로메테우스로 확장할 수 있도록 제공. 일부 브로커에 장애가 발생하더라도 클러스터 상태를 지속적으로 모니터링하여 자동으로 비정상 브로커를 교체. 이런 편의 기능들은 클러스터 운영자가 카프카 모니터링을 위한 아키텍처에 들이는 수고와 시간을 줄일수 있다는 장점이 있다.

클러스터 생성 시 MSK에서 지원하는 정해진 인스턴스 타입을 사용해야 한다는 담점.

MSK 클러스터는 예약 인스턴스를 지원하지 않기 떄문에 EC2 인스턴스에 직접 클러스터를 구축하여 사용할 떄보다 비싼 각격.

6.3 정리


  | AWS MSK | 컨플루언트 클라우드 -- | -- | -- 설치방법 | 반자동(인프라 설정) | 자동 자동 스케일아웃 | 직접 조정 | 자동 모니터링 도구 | 클라우드와치, 프로메테우스 | 제한적으로 제공 보안 | TLS | SASL_SSL 인가 | ACL 적용가능 | 자체 ACL 커넥터 | 제공안함 | 제공 REST Proxy | 제공안함 | 제공 ksqlDB | 제공안함 | 제공 브로커 로그 | 적재 옵션 제공 | 제공 안함 데이터 밸런스 최적화 | 직접 조정 | 자동