MSK 설정

문학적인유사성·2023년 12월 11일
0

AWS

목록 보기
62/64

-ing ... 계속 쓰는중...

MSK 설정

프로젝트에서 쓴다니까 connector랑 같이 아주 고수가 되야한다.
일단 시작해보자.. 어떤 겆ㄴ지..
카프카 아키텍쳐 공식문서
MSK 시작하기 공식문서
MSK 공식 워크샵
참고 여기어때 테크 블로그 - MSK 구축
올리브영 MSK 운영하기
펠프렌즈 기술블로그 msk connect도입
MSK 설정값
0. Custom Create 선택

  • Cluster name : yusa-msk
  • Cluster type : Provisioned
  • Apache Kafka version : 3.5.1 ( recommended 되있는거 그냥 골랐음 )
  • Brokers : type은 dev니까 제일 작은 t3.small 고름, AZ 3개가 recommend, brokers per zone도 알맞게 넣기.. 나는 1개만 넣음.. ebs도 1GB, custom은 굳이 안함.
  1. Networking 그냥 맞춰서 넣으면 되고. public access는 만들고나서 설정 가능.
  1. Security에서 설정할 것들
  • Unauthenticated access : 클라이언트 암호 인증 필요하지 않음
  • SASL/SCRAM authentication : SCRAM은 SASL 프레임워크 사용해서 ID/PW 인증방법 제공, secrets manager이용 가능
  • TLS : Private ACM으로 암호화
  • plantext 체크시 SASL/SCRAM, IAM 제어 방법에서 plaintext 트래픽 전송 불가.
  • encrypt data at rest : 공유할꺼면 custom 으로 해야됨.
  1. monitoring
  • enhanced partition-level
  • prometheus, jmx, node 활성화
  • 위치는 내가 정하면되는데, cloudwatch가 난 편한듯.

30분 정도 기다리기....

Ec2 클라이언트 라이브러리 도구 설치

카프카 릴리즈 공식문서
EC2에 IAM 롤 연결해두기

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:Connect",
                "kafka-cluster:AlterCluster",
                "kafka-cluster:DescribeCluster"
            ],
            "Resource": [
                "arn:aws:kafka:region:Account-ID:cluster/MY_MSK_Cluster_NAME/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:*Topic*",
                "kafka-cluster:WriteData",
                "kafka-cluster:ReadData"
            ],
            "Resource": [
                "arn:aws:kafka:region:Account-ID:topic/MY_MSK_Cluster_NAME/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:AlterGroup",
                "kafka-cluster:DescribeGroup"
            ],
            "Resource": [
                "arn:aws:kafka:region:Account-ID:group/MY_MSK_Cluster_NAME/*"
            ]
        }
    ]
}
$ sudo yum install java-1.8.0 
$ wget https://downloads.apache.org/kafka/3.5.1/kafka_2.13-3.5.1.tgz
$ tar -xzf kafka_2.13-3.5.1.tgz
$ cd /path/to/ur/install/libs
$ wget https://github.com/aws/aws-msk-iam-auth/releases/download/v1.1.1/aws-msk-iam-auth-1.1.1-all.jar
$ cd /path/to/ur/install/bin
$ ./kafka-topics.sh --create --bootstrap-server [BootstrapserverIAM] --command-config client.properties --replication-factor 3 --partitions 1 --topic MSKTutorialTopic

아 컨슈머 프로듀서 하려는데 폭발
다시 지워두고 찬찬히 읽으면서 다시봐야겠다.

msk-password 설정

https://catalog.us-east-1.prod.workshops.aws/workshops/c2b72b6f-666b-4596-b8bc-bafa5dcca741/en-US/mskconnect

UI for Apache kafka 설정

eks 쓰던거 있으니까 하나 올리고
UI for Apache Kafka 공식문서

helm values 설정/ 일단 없는거로 한번 되는지 확인

yamlApplicationConfig:
  kafka:
    clusters:
      - name: yaml
        bootstrapServers:  ~~~~:9092
  auth:
    type: disabled
  management:
    health:
      ldap:
        enabled: false
helm repo add kafka-ui https://provectus.github.io/kafka-ui-charts
kubectl create ns kafka-ui
helm install kafka-ui kafka-ui/kafka-ui -f ui_for_apachekafka_values.yaml -n kafka-ui

ingress 만들기

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: kafka-ui
  name: kafka-ui-ingress
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
    alb.ingress.kubernetes.io/load-balancer-name: ddo-kafka-ui
    alb.ingress.kubernetes.io/target-type: ip
    alb.ingress.kubernetes.io/ssl-redirect: '443'
    alb.ingress.kubernetes.io/certificate-arn: ${acm arn}
spec:
  rules:
    - host: kafka.XXXX.XXXX
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: kafka-ui
                port:
                  number: 80
kubectl apply -f ingress.yaml

접속해서 화면을 바로 볼수있음.

ACL, IAM 설정

이제 보안관련 설정 하나씩 확인해보자

profile
유사 IT 항해

0개의 댓글