์ด๊ฒ๋ง ๋ณด๋ฉด ๋น์ ๋ AWS MSK Standard Owner!
- 2024๋ 5์ 7์ผ
- 4๋ถ ๋ถ๋
์ด๊ฒ๋ง ๋ณด๋ฉด ๋น์ ๋ AWS MSK Standard Owner!

Written by Minhyeok Cha
2๋ถ ์๋ 2๋ถ์ ๋๋ค. ์ ๋ฒ ๋ธ๋ก๊ทธ์์ ๋ง์๋๋ ธ๋ฏ ์ด๋ฒ ๊ธ์ AWS MSK๋ฅผ ๋์ฑ ๊น๊ฒ ์์๋ณด๊ณ Cluster ๋ฐ Connect๋ฅผ ๊ตฌ์ฑ๊น์ง ์์ฑํ๋ ค๊ณ ํฉ๋๋ค.
โผ ์ง๋ ๋ธ๋ก๊ทธ ๋ณด๋ฌ๊ฐ๊ธฐ
MSK(Kafka)์์ ์ฌ์ฉ๋๋ ์ฉ์ด๋ค

ZooKeeper
์ฃผํคํผ๋ ๋ธ๋ก์ปค ๊ด๋ฆฌ๋ฅผ ์ํด ์ฌ์ฉํฉ๋๋ค.
๋ธ๋ก์ปค ์ํ ๋ณ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ ์ฃผํคํผ๊ฐ ํ๋ก๋์์ ์ปจ์๋จธ์๊ฒ ์ ๋ณด๋ฅผ ์ ๋ฌํฉ๋๋ค.
Broker
๋ธ๋ก์ปค๋ MSK ํด๋ฌ์คํฐ๋ฅผ ์์ฑํ ๋ ๋ธ๋ก์ปค ๋ ธ๋ ์๋ฅผ ์ ํ๋ฉฐ ์ด๋ ํด๋ฌ์คํฐ ์์์๋ ์๋ฒ์ ๋๋ค.
ํด๋ฌ์คํฐ๋ ๊ฐ ๊ฐ์ฉ์์ญ ๋น ํ๋์ฉ์ ๋ธ๋ก์ปค๊ฐ ์์ผ๋ฉฐ ์ด๋ ํ๋ก๋์์์ ์ปจ์๋จธ๊น์ง ๋ฉ์ธ์ง๋ฅผ ์ ๋ฌํฉ๋๋ค.

Topic
๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ถํ๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋จ์์ ๋๋ค.
ํ ํฝ์๋ ํํฐ์ ์ด ์กด์ฌ ํ๋๋ฐ, ํํฐ์ ์ ์ต์ 1๊ฐ๋ ์์ด์ผํฉ๋๋ค.
Partition
ํค๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ถํ๊ณ ํค๊ฐ์ด ์์ ๊ฒฝ์ฐ ๋ผ์ด๋ ๋ก๋น ํ์์ผ๋ก ๋ฐ์ดํฐ๊ฐ ํํฐ์ ์ ์ ์ฅ๋ฉ๋๋ค.
offset
๊ฐ ํํฐ์ ๋ง๋ค ๋ ์ฝ๋(๋ฐ์ดํฐ) ์์น๋ฅผ ๋ฐฐ์ ํฉ๋๋ค.
์คํ์ ์ ๊ฐ์ ํํฐ์ ๋ด๋ถ์์ ๊ณ ์ ์ ๊ฐ์ผ๋ก ์ด์ฉ๋ฉ๋๋ค.
record
๋ ์ฝ๋๋ ๋ฐ์ดํฐ์ด๋ฉฐ ํ์์คํฌํ , ๋ฉ์ธ์ง ํค , ๋ฉ์ธ์ง ๊ฐ , ์คํ์ , ํค๋๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
์ด์ ๋๋ง ์์๋ ํ ์คํธ ๊ตฌ์ถ์๋ ๋ฌธ์ ์์ผ๋ ๋ฐ๋ก ์์ํ๊ฒ ์ต๋๋ค.
๋ฐ๋ชจ 1: MSK ๊ตฌ์ถ ์์
๊ตฌ์ถ์ AWS ์๋น์ค์์ 2๊ฐ๋ง ์์ฑํ ์์ ์ ๋๋ค.
AWS MSK cluster - ์นดํ์นด ๋ธ๋ก์ปค
Cloud9 - ํ๋ก๋์, ์ปจ์๋จธ์ฉ์ผ๋ก ๋ฉ์ธ์ง ์ ์ก ๋ฐ ์์ ํ์ธ
โป ์ ์ฉ VPC ์์ฑํด์ ์งํํ๊ธฐ ๋๋ฌธ์ VPC ๋ฐ ์๋น์ค ์ฌ์ ์์ฑAWS MSK Cluster

๋น ๋ฅธ ์์ฑ์ผ๋ก ํ๋ฉด ์์ฒญ ๊ฐ๋จํ๊ธด ํ๋ฐ, ๊ธฐ๋ณธ๊ฐ(VPC, ์๋ธ๋ท, ๊ฐ์ฉ ์์ญ)์ผ๋ก ์ค์ ๋๋ ๊ฒ๋ค์ด ๋ง์์ ์ฌ์ฉ์ ์ง์ ์ผ๋ก ์์ฑํ๊ฒ ์ต๋๋ค.
ํ ์คํธ ์ฉ์ด๋ ์ฌ์์ ์ต์ํ ์๊ฒ ์ฌ์ฉํฉ๋๋ค.
์ถ๊ฐ๋ก ๊ฐ์ฉ์์ญ = 2, ๋ธ๋ก์ปค = 2๋ก ์ด 4๊ฐ์ ๋ธ๋ก์ปค๋ฅผ ๊ฐ์ง๊ฒ ๋๋ฉฐ, ์ด๋ 2๊ฐ์ AZ์ ๊ท ๋ฑํ๊ฒ ๋ฐฐํฌ๋ฉ๋๋ค.
Network

ํด๋ฌ์คํฐ ์์ฑ ์ ๋ธ๋ก์ปค์ ์์ญ์ 2๊ฐ๋ก ์ค์ ํ๊ธฐ ๋๋ฌธ์ VPC ์ค์ ํ ๋ด๋ถ ์๋ธ๋ท 2๊ฐ๋ฅผ ์ง์ ํฉ๋๋ค.

MSK ํด๋ฌ์คํฐ๋ ๋ณด์๊ทธ๋ฃน์ด ๋ค์ด๊ฐ๋๋ฐ, ์ด๋ ์ด ๋ณด์๊ทธ๋ฃน์ ์ถ๊ฐํ cloud9๊ณผ ๋์ผํ๊ฒ ์ฌ์ฉํด์ผ ์ฐ๊ฒฐ์ด ๊ฐ๋ฅํฉ๋๋ค.
Security

์ธ์ฆ๋์ง ์์ ์ก์ธ์ค๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ์ ๋ํ ์ธ์ฆ ์์ ์์ด ํ์ฉํ๋๋ก ํฉ๋๋ค. ์ถ๊ฐ๋ก ์ ์ก ๋ฐ์ดํฐ ๋ฐ ์ ์ฅ ๋ฐ์ดํฐ์ ์ํธํ๋ ์์ ๊ฐ์ด ์ฒดํฌํ์๋ฉด ๋ฉ๋๋ค.
Monitoring

๋ง์ฐฌ๊ฐ์ง๋ก ๊ธฐ๋ณธ ํ ์คํธ๋ ๊ธฐ๋ณธ ๋ชจ๋ํฐ๋ง์ผ๋ก ์ค์ ํ์๋ฉด ๋ฉ๋๋ค.
์ดํ ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ๋ฉด ๋๋๋ฐ ์์ฑ์ 20๋ถ ์ ๋ ์ก์๋จน์ต๋๋ค.
20๋ถ๊ฐ cloud9 ์์ฑ ๋ฐ ์นดํ์นด ์ฑ์ ์ค์นํ๋๋ก ํ๊ฒ ์ต๋๋ค.
Cloud9
์๋ฒ์์ฑ
Cloud9์ ๊ตฌ์ฑ์ ์์ฒญ ๊ฐ๋จํ๊ธฐ ๋๋ฌธ์ ์ ์ฌ์ง๊ณผ ๊ฐ์ด ํด์ฃผ์ธ์.
์ฃผ์์ฌํญ์ผ๋ก๋ VPC ์ค์ ์ ํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ VPC์ ๊ตฌ์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ MSK ํด๋ฌ์คํฐ๋ฅผ ์์ฑํ ๊ณณ๊ณผ ๊ฐ์ ๊ณณ์์ ์์ฑํด์ผ ํฉ๋๋ค.
EC2๋ก ๋์ด๊ฐ Cloud9 ์ญํ ์ถ๊ฐ

FM์ผ๋ก ์งํํ๋ ค๋ฉด MSK arn ์ฐ๊ณ ํ๋์ฉ ๊ถํ๋ถ์ฌ๋ฅผ ํด์ผํ์ง๋ง, ํ ๊ฒ ๋ง์ผ๋ admin ํ๋ ์ฅ์ด์ฃผ๊ณ ๋์ด๊ฐ์๋ค.
Cloud9 ํฐ๋ฏธ๋ ์ ๊ทผ ํ ๋ค์ ๋ช ๋ น์ด ์คํ
$ sudo yum -y install java-11
$ wget https://archive.apache.org/dist/kafka/{YOUR MSK VERSION}/kafka_2.13-{YOUR MSK VERSION}.tgz
$ tar -xzf kafka_2.13-{YOUR MSK VERSION}.tgz
์๋ฐ ๋ฐ ์ํ์น ์นดํ์นด๋ฅผ ์ค์นํฉ๋๋ค. ์ด๋ MSK ํด๋ฌ์คํฐ ๋ฒ์ ๊ณผ ๋์ผํ๊ฒ ์ค์นํ๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.
*ํ ์คํธ ํด๋ดค๋๋ฐ, ๋ฒ์ ์ ํ๋ ค๋ ์ฐ๊ฒฐ์ ๋ฌธ์ ๊ฐ ์๊ธด ํ์ต๋๋ค.
$ cd kafka_2.13-{YOUR MSK VERSION}/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 kafka_2.13-{YOUR MSK VERSION}/bin
$ vi 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
Amazon MSK IAM JAR ํ์ผ์ ๋ค์ด๋ก๋ ํฉ๋๋ค. Amazon MSK IAM JAR์ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ ๋จธ์ ์ด ํด๋ฌ์คํฐ์ ์ก์ธ์ค ๋ฐ ์ฌ์ฉ๋๋ ๋ณด์ ๋ฐ ์ธ์ฆ ๊ตฌ์ฑ์ ์ ์ํฉ๋๋ค.
์ดํ MSK ํด๋ฌ์คํฐ๊ฐ ์์ฑ๋๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ํตํด ๊ฐ๋จํ topic ์์ฑ ๋ฐ producer์์ consumer๋ก ๋ฉ์ธ์ง๋ฅผ ๋์ ธ๋ณด๊ฒ ์ต๋๋ค.
$ cd kafka_2.13-{YOUR MSK VERSION}/bin
$ ./kafka-topics.sh --create --bootstrap-server <MSK ํด๋ฌ์คํฐ ์ผ๋ฐ ํ
์คํธ> --command-config client.properties --replication-factor 2 --partitions 1 --topic MSKTutorialTopic
$ ./kafka-console-producer.sh --broker-list <MSK ํด๋ฌ์คํฐ ์ผ๋ฐ ํ
์คํธ> --producer.config client.properties --topic MSKTutorialTopic
# ํฐ๋ฏธ๋ ์ถ๊ฐ ํ ๋์ผํ ๋๋ ํฐ๋ฆฌ์ ๋ค์ด๊ฐ ์คํ
$ ./kafka-console-consumer.sh --bootstrap-server <MSK ํด๋ฌ์คํฐ ์ผ๋ฐ ํ
์คํธ> --consumer.config client.properties --topic MSKTutorialTopic --from-beginning


์๋จ์ producer ํฐ๋ฏธ๋์์ ์๋ consumer ํฐ๋ฏธ๋๋ก ๋ฉ์ธ์ง๊ฐ ์ ์ ๋ฌ๋๋ ๋ชจ์ต์ ํ์ธํ ์ ์์ต๋๋ค.
๋ฐ๋ชจ 2: MSK Connect ๋ฅผ ์ฌ์ฉํด S3๋ก ๋๊ธฐ๊ธฐ(S3 Sink Connector)
๋จผ์ ์ด MSK Connect๋ ์ธ๋ถ ์์คํ ๊ณผ ์นดํ์นด ํด๋ฌ์คํฐ ์ฌ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ฝ๊ฒ ํด์ฃผ๋ ์๋น์ค์ ๋๋ค.
Kafka Connect ๋ง ์ฌ์ฉํ์ฌ CDCํ๊ฒฝ์ ๊ตฌ์ถํ๋ฉด ์๋นํ ๋ง์ ์ธํ๋ผ ์์์ ์ ํ์๋ก ํ๋๋ฐ, MSK Connect๋ฅผ ์ฌ์ฉํ๋ฉด AWS Console ์์์ ์ฝ๊ฒ Kafka Connect๋ฅผ ๊ตฌ์ฑํ๊ณ ๋ฐฐํฌ ํ ์ ์์ต๋๋ค.

์ ๊ทธ๋ฆผ์์ ๋ณด๋ฉด MSK ํด๋ฌ์คํฐ ์์ชฝ์ MSK Connect๊ฐ ์๋๋ฐ, ๊ฐ๊ฐ Source Connector๋ Producer์ ์ญํ Sink Connector๋ Consumer์ ์ญํ ์ด๋ผ๊ณ ์๊ฐํ์๋ฉด ํธํฉ๋๋ค.
๋ํ MSK Connect๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํ๋ฌ๊ทธ์ธ์ด ํ์ํ๋ฐ ์ด ๋ํ ์ฌ๋ฌ๊ฐ์ง์ ์คํ์์ค (Debezium, Confluent ๋ฑ๋ฑ) ๊ฐ ๋ง๋ จ๋์ด ์์ต๋๋ค.
์ฐ๋ฆฌ์ ๋ชฉํ๋ ์ธ์คํด์ค์์ ๋ฐ๋ ๋ฉ์ธ์ง๋ก MSK์์ S3๊น์ง๊ฐ ๋ชฉ์ ์ด๊ธฐ ๋๋ฌธ์ Amazon S3 Sink Connector ํ๋ฌ๊ทธ์ธ์ ์ค์นํ์ฌ ๋ฐ๋ชจ๋ฅผ ์งํํ๋๋ก ํ๊ฒ ์ต๋๋ค.
โป ์ํคํ
์ณ์ MSK Sink Connetc์ ํด๋นํ๋ฉฐ ์๋์ ํ๋ฌ๊ทธ์ธ ์ค์น ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์.๊ธฐ์กด MSK ํด๋ฌ์คํฐ ์์ฑ์ ์คํตํ๊ณ ์งํํ๋๋ก ํ๊ฒ ์ต๋๋ค.
S3 ๋ฒํท ์์ฑ

์ ๋งํฌ์์ ๋ฐ์ ํ๋ฌ๊ทธ์ธ์ ์์ฑํ ๋ฒํท์ ์ ๋ก๋ํฉ๋๋ค.
์ดํ MSK Connect๊ฐ ํด๋น ๋ฒํท์ ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ๊ธฐ ์ํ IAM์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
IAM ์์ฑ
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:DeleteObject"
],
"Resource": "<์์ฑ ๋ฒํท ARN>"
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:AbortMultipartUpload",
"s3:ListMultipartUploadParts",
"s3:ListBucketMultipartUploads"
],
"Resource": "*"
}
]
}์ ๋ขฐ๊ด๊ณ ํ์ฑ
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "kafkaconnect.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}์์์ ์์ฑํ ์ญํ ์ S3 ๊ธฐ๋ฐ ๋กค๋ก ์์ฑํฉ๋๋ค. ์ด๋ ์ ๋ขฐ๊ด๊ณ์์ ๋ณด์ด๋ "Service"๋ฅผ S3์์ kafkaconnect๋ก ๋ณ๊ฒฝํด์ผ์ง MSK Connect์์ ํด๋น ๋กค์ ์์นํฉ๋๋ค.
S3 ์๋ํฌ์ธํธ ๊ฒ์ดํธ์จ์ด

๋ง์ง๋ง์ผ๋ก MSK์์ S3๊น์ง ๋ฐ์ดํฐ๊ฐ ์ ํ๋ฅผ ์ ์๋๋ก S3 endpoint๋ฅผ ์์ฑํ์ฌ ๋ฐฐ์นํด์ค๋๋ค.
MSK Connect ํ๋ฌ๊ทธ์ธ ๋ฐ ์ปค๋ฅํฐ ์์ฑ

์์ S3์ ์ ๋ก๋ํ ํ๋ฌ๊ทธ์ธ ์์ถํ์ผ๊น์ง ๊ฒฝ๋ก๋ฅผ ์ ์ฌ์ง์ฒ๋ผ ์ง์ ํ ๋ค ์์ฑํฉ๋๋ค.

์์์ ๋ง๋ ํ๋ฌ๊ทธ์ธ์ ๋ฐ๋ก ์ปค๋ฅํฐ ์์ฑ์ ํ๋ฌ๊ทธ์ธ์ ์ ํํ์ฌ ์์ฑํด์ฃผ๋๋ก ํฉ๋๋ค.
์ปค๋ฅํฐ ๊ตฌ์ฑ ํ๋


๋ง์ง๋ง์ผ๋ก ์๊น ๋ง๋ค์ด ๋ ํด๋น MSK Connect๊ฐ S3 ๋ฒํท ์ ๊ทผ์ด ๊ฐ๋ฅํ๋๋ก ๋ง๋ ์ญํ ์ ๋ฃ์ต๋๋ค.
(MSK Connect๋ MSK Cluster์ฒ๋ผ ๋ง๋๋๋ฐ ์๊ฐ์ด ์ข ๊ฑธ๋ฆฝ๋๋ค.)
๋ง์ง๋ง์ผ๋ก Cloud9์ ๋ค์ด์ kafka/bin ๋๋ ํฐ๋ฆฌ์ client.propertiesย ํ ์คํธ ํ์ผ์ ์์ฑํ๊ณ ๋ค์ ๋ด์ฉ์ ์ฝ์ ํฉ๋๋ค.
security.protocol=PLAINTEXT์ด๋ Kafka ํด๋ฌ์คํฐ์์ ํต์ ์ ์ฌ์ฉ๋๋ ๋ณด์ ํ๋กํ ์ฝ์ ์ง์ ํ๋ ๊ฒ์ ๋๋ค.
์ฌ์ ์ ๋ง๋ ํด๋ฌ์คํฐ๊ฐ ์ผ๋ฐ ํ ์คํธ๋ก ๊ตฌ์ฑํ๊ธฐ ๋๋ฌธ์ "PLAINTEXT"๋ผ๋ ํ๋กํ ์ฝ์ ๊ธฐ์ ํ์์ต๋๋ค.
์ดํ producer๋ฅผ ํตํด ๋ฉ์ธ์ง๋ฅผ 3๊ฐ ์ ๋ ๋ณด๋ด๋ณด๊ฒ ์ต๋๋ค.


3๊ฐ์ ๋ณด๋ธ ๋ฉ์ธ์ง๋ ๋ค์๊ณผ ๊ฐ์ด S3์์ ํ์ธํ ์ ์์ต๋๋ค.
์ถ๊ฐ๋ก ์ค๋ช ๋๋ฆด ๊ฒ์ S3 ์๋จ์ ๊ฒฝ๋ก๋ฅผ ๋ณด์๋ฉด ๋ฐ๋ก json ๋ฉ์ธ์ง๊ฐ ๋์ค๋๊ฒ ์๋๋ผ ์ฌ๋ฌ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ฒฝ์ ํด์ ๋์ฐฉํ ๊ฒ์ ๋ณด์ค ์ ์์ ๊ฒ์ ๋๋ค.
์ด๋ MSK Connect ๊ตฌ์ฑ์ topics.dir=testchamsk์ ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํ์ฌ ์ฃผ์ ๋ฐ ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ๋ถ์์ผ ๋์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ฟ๋ง ์๋๋ผ MSK Connect ๊ตฌ์ฑ ํ๋๋ ๋ค์ ํ๋ฌ๊ทธ์ธ ๋งํฌ๋ฅผ ํตํด ์ปค์คํ ํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ง๋ฌด๋ฆฌ
์๋๋ AWS MSK ๋ชจ๋๊ฐ ์๋ค ์ํผ ์คํ์์ค ๊ธฐ๋ฐ์ด๊ธฐ ๋๋ฌธ์ EC2์ kafka๋ฅผ ์ง์ ์ค์นํด์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ MSK๋ฅผ ํตํด ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋น์ฉ์ฐจ์ด๋ ํ์ธํด ๋ณผ ๊ณํ๊น์ง๋ ์ก์ ๋์๋๋ฐ ๋ด์ฉ์ด ๋ฐ๋ชจ๊ฐ ๊ธฐ์ค์ด๋ค ๋ณด๋๊น ๋ฃ์ง๋ฅผ ๋ชปํ๋ค์.
๋ฟ๋ง ์๋๋ผ ์ฝ์ ๋ฐ ํด๋ฌ์คํฐ ๋จ์ ์์ค์ด ์๋๋ผ ๋์ฑ ๋๊ฐ ๋ฐ์ดํฐ ๋ ์ฝ๋, ์คํ์ ์ค์ ๋ฑ ๋ชปํ๊ฒ ์์ฝ์ต๋๋ค.
๋ถ๋ ์กฐ์ ์คํจโฆ
์ถ๊ฐ๋ก S3 Sink Connector๋ฅผ ํ๋ฉด์ ์๊ฒ๋ ์ฌ์ค์ด์ง๋ง ์ปค๋ฅํฐ๋ฅผ ์์ฑํ๋ ๊ฒ๋ณด๋ค ์๋ ์ ์ถ์๋ Amazon MSK, Kinesis Data Firehose๋ฅผ ํตํด Kafka ํ ํฝ S3 ์ ์ก ๊ธฐ๋ฅ์ด ๋์๋๋ผ๊ณ ์. ๊ตณ์ด ํ๋ฌ๊ทธ์ธ์ ์ค์นํ์ง ์์๋ AWS ๋ด๋ถ์์ ์ ๋ถ ํด๊ฒฐํด ์ค๋ค๋ ์ ์ด ํธ๋ฆฌํ ๊ฒ ๊ฐ์ต๋๋ค.
๋ค์ ์ฃผ์ ๋ก๋ ์ด์ด์ Kinesis๋ก ์ฐพ์๋ต๋๋ก ํ๊ฒ ์ต๋๋ค.














