kafka
메세지 큐
분산환경 특화
분산 메세징 처리 시스템
데이터 영속성 보장
대용량 실시간 로그 처리에 특화
링크드인에서 개발
producer와 Consumer
실습 구성도
EC2 두 개를 띄워서, 실습
AWS 로그인은 2가지 방식
루트사용자, IAM 사용자 2가지 옵션 존재
리전 -> 한국어, 언어 -> 한국어 설정
AWS 는 약 180여가지의 서비스가 존재
스타트업에서는 row 레벨의 코딩을 통한 서비스 배포를 하겠지만
대기업이나 엔터프라이즈에서는 서비스를 구매하여 사용하는 옵션도 존재
스타트업도 규모가 커질수록 서비스를 사용해야 할 수 있음
리전 -> 서울
좌측 언어 -> 한국어
EC2 검색 -> EC2 인스턴스 생성하기
인스턴스 시작 -> AMI 아마존 머신 이미지 선택 -> 유형 선택 -> 인스턴스 세부 정보 구성 -> 스토리지 추가 -> 태그 추가 -> 보안 그룹 구성
CentOS는 가벼운 장점이 있음 (서버용)
t 타입을 주로 사용함 (마이크로 프리티어)
VPC, 네트워크
태그는 default로 꼭 넣어준다 (Name class-master) -> 협업할때 필요함
인바운드, 아웃바운드
보통 인바운드로 해킹 방지
새 보안 그룹 생성
class-bigdata-sg
규칙 추가 HTTP -> 80포트 자동으로
소스: 위치 무관
키 페어 생성
-> RSA 키를 이용하여 보안
- 키 페어 이름에 리전 이름 넣는게 좋음
- pam 파일을 다운 받게됨
인스턴스
인스턴스 ID
프라이빗 IP, 퍼블릭 IP
VPC ID, 서브넷 ID
키페어
연결 버튼 -> 인스턴스 연결 (브라우저 바로 연결)
SSH 클라이언트 연결
- 터미널 열고
- pam파일을 chmod명령어로 400 권한을 준다
- ssh 명령어로 SSH 접속
git 설치 전
sudo yum update를 통해서 라이브러리 업데이트를 진행한다.
sudo yum install git
리소스 다운로드
git clone -b master --single-branch https://github.com/njkwon/fc-bigdata/
엑세스 키 말고 IAM 권한을 이용하여 보안을 해주는것이 좋음
역할만들기
- EC2
- Admin
- 실제로는 어드민 권한을 주면 안된다.
- EC2Admin
다시 EC2에 들어가서 권한을 다시 부여해야함
- 작업
- 보안
- IAM 역할 수정
- 저장하기
aws s3 ls -> 실행이 되면 IAM 부여가 잘 된 것임
버켓 생성
- 유일한 이름으로 만들어야 한다.
- aws s3 mb s3://$bucketname
S3 검색
- 버켓 검색 가능
- 리전에 대해서 항상 주의해아함
- 멀리 있는 리전에서 데이터를 가져오면 비용이 든다.
- 서울 리전에 생성하는 것을 추천
- aws s3 mb s3://$bucketname --region ap-northeast-2
- 버켓 이름을 바꿔야 돌아갈 수 있음(반영이 늦어서)
- export bucketname=fc-class
- export 명령어로 변수 저장
git 다운로드 한걸 S3로 옮겨야 함
.git 파일 제외하고 보내는 명령어
aws s3 sync . s3://$bucketname --exlcude '.git/*'
버킷에 올렸을 때 나오는 화면
logstash 설치 -> 트위터 데이터를 받아서 넣어줌
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.4.0.tar.gz
tar xvf logstash-7.4.0.tar.gz
ln -s logstash-7.4.0 logstash
vi bash_profile
logstash Path를 설정해준다
source ~/.bash_profile
설치 됐는지 확인
logstash --version
mkdir producer
cd producer
vi producer_test.conf
트위터 키를 넣어주기
output
stdout -> print 해준다라는 뜻
실행 방법
logstash -f producer_test.conf
트위터 정보를 가져와서 화면에 뿌려줌
제한이 있어서 바로 중지해야함
output 부분을 kafka 서버로 보내면 됨
cp producer_test.conf producer.conf
vi producer.conf
output 부분에 kafka IP 변경해주면 실행했을때 큐로 보내짐
여기까지가 producer와 server를 구성 한 것임
이제는 consumer를 만들어야 함
EC2 consumer 하나 또 만들기
t2.medium으로 만들기
고급 세부 정보에 자바 설치하는 커멘드 넣기
보안 그룹 class-bigdata-sg
결국 3개의 EC2를 모두 만듬
터미널 하나를 더 키고 SSH 접속을 한다
sudo yum update -y
자바는 미리 설치 됨
logstash 설치
logstash 설치 -> 트위터 데이터를 받아서 넣어줌
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.4.0.tar.gz
tar xvf logstash-7.4.0.tar.gz
ln -s logstash-7.4.0 logstash
PATH 설정하기
vi bash_profile
source ~/.bash_profile
logstash --version
mkdir consumer
cd consumer
vi consumer.conf
logstash -f consumer.conf
producer에서
logstash -f producer.conf
왼쪽이 producer인데, 데이터를 받아서 consumer에서 받는 것을 성공 시킨 그림이다.
'AWS DB PIPELINE' 카테고리의 다른 글
Data PIPELINE 용어 정리 (0) | 2022.07.02 |
---|---|
EC2, S3, RDS, api-gateway, CloudWatch (0) | 2022.06.22 |
데이터 파이프라인의 흐름 (0) | 2022.06.20 |
데이터 파이프라인 아키텍쳐 기본 설명 (0) | 2022.06.20 |