[AWS] Amazon MSK client 설정

Joney의 SW 공부 블로그·2023년 7월 17일
0

AWS MSK

목록 보기
3/4

개요

MSk Cluster에 접속하여 topic, message를 제어하기 위해서 client 설정이 필요하다.


설정 방법

IAM 설정

  • MSK Client에서 MSK Cluster에 접근하기 위한 IAM 설정
  • 신뢰 관계
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "ec2.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
  • 정책
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:Connect",
                "kafka-cluster:AlterCluster",
                "kafka-cluster:DescribeCluster"
            ],
            "Resource": [
                "arn:aws:kafka:{region}:{account number}:cluster/{cluster name}/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:*Topic*",
                "kafka-cluster:WriteData",
                "kafka-cluster:ReadData"
            ],
            "Resource": [
                "arn:aws:kafka:{region}:{account number}:topic/{cluster name}/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:AlterGroup",
                "kafka-cluster:DescribeGroup"
            ],
            "Resource": [
                "arn:aws:kafka:{region}:{account number}:group/{cluster name}/*"
            ]
        }
    ]
}

네트워크 구성

  • MSK Cluster가 구성된 VPC에 퍼블릭 Subnet을 생성
  • 퍼블릭 액세스를 위한 Client용 보안 그룹 생성
  • MSK Cluster 보안 그룹의 인바운드에 Client 보안그룹 추가

EC2 생성

  • 생성한 Subnet에 EC2 생성 (linux)
  • 큰 리소스가 필요없는 작업을 수행하므로 작은 인스턴스 유형 권장
  • 생성한 Client용 보안그룹 적용
  • 위에서 설정한 IAM 역할 적용

kafka 설치

  • 생성한 EC2에 ssh접속
  • java 설치
sudo yum -y install java-11
  • kafka 다운로드
wget https://archive.apache.org/dist/kafka/2.8.1/kafka_2.13-2.8.1.tgz
tar -xzf kafka_2.13-2.8.1.tgz
  • kafka_2.13-2.8.1.tgz/libs 에 Amazon MSK IAM JAR 파일 다운로드
cd kafka_2.13-2.8.1.tgz/libs
wget https://github.com/aws/aws-msk-iam-auth/releases/download/v1.1.1/aws-msk-iam-auth-1.1.1-all.jar
  • kafka_2.13-2.8.1.tgz/bin 폴더에 client.properties 파일을 생성
security.protocol=SASL_SSL
sasl.mechanism=AWS_MSK_IAM
sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;
sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler

설정 확인

topic 생성해보기

  • MSK Cluster의 Client Bootstrap Server 정보 가져오기

  • topic 생성 command

/home/ec2-user/kafka_2.13-2.8.1/bin/kafka-topics.sh --create --bootstrap-server {Client Bootstrap Server} --command-config /home/ec2-user/kafka_2.13-2.8.1/bin/client.properties --replication-factor 3 --partitions 1 --topic {topic_name}
  • topic 확인 command
/home/ec2-user/kafka_2.13-2.8.1/bin/kafka-topics.sh --bootstrap-server {Client Bootstrap Server} --command-config /home/ec2-user/kafka_2.13-2.8.1/bin/client.properties --list
profile
SW 지식 노트 블로그

0개의 댓글