9월 17일 공부

2021. 9. 17. 18:52공부일기

오늘도 우리 팀에는 나만 출근했다. 어제와 같이 사수님이 얘기해주신 코드를 리딩했고 서버 인프라가 대부눈 aws로 되어있는 것으로 확인했다. 우선 어떤 부분이 있는지 체크했고 모르는 aws 내용들을 정리했습니다. 

 

 

우선 지금 회사에서 사용하는 aws 들을 정리하자면 이와 같다. 

 

  • Dynamo DB
  • Load Balancing
  • kinesis
  • s3
  • lambda
  • sqs
  • route53
  • sftp
  • eks
  • nat

많다... 그래도 이게 뭔지 간략하게 정리해보겠다.

 

 

Dynamo DB

aws에 존재하는 데이터베이스이다. 기본적으로 아래와 같은 특징을 갖고 있다. 

  • NoSQL
  • key-value 저장소
  • 2번째 점의 이유로 Read 속도가 빠르고 Update가 느리다. 데이터 들이 정형화 되어 있지 않기 때문에 공통된 데이터가 또 존재하면 찾아서 지워야한다.
  • NoSQL임에도 ACID가 사용가능하다. [참고]
  • Lambda와 함께 Stream 기능을 사용하기 위해서는 트리거 기능을 활성화 시켜야한다. [참고]
 

DynamoDB 신규 기능 – 스트림 및 Lambda 데이터 트리거 + 리전간 복제 | Amazon Web Services

Amazon DynamoDB에 여러 가지 새로운 소식이 있습니다. 먼저 DynamoDB 스트림 기능이 추가되었으며, AWS Lambda를 통해 스트림 데이터 활용이 가능합니다. 두 번째는 하나의 DynamoDB 테이블에서 다른 테이블

aws.amazon.com

 

Kinesis

Dynamo DB는 어디선가 몇번 들어봤는데 Kinesis는 회사에서 처음들어봤다. 그래도 사용한다고 하니 일단 정리해야겠다. 

 

데이터의 수집 공간과 처리 공간 중간에 위치해있다. 중간에서 대용량의 데이터를 안전하게 수집하고 처리할 수 있도록 도와주는 역할을 한다. 즉 실시간으로 이동하는 대용량 데이터를 조금 더 편리하게 처리하기 위해 주로 사용한다. 

처리한 데이터를 s3, ec2, redShift 등에서 소비할 수 있도록 도와준다.

 

Load Balancing

로드 밸런싱은 모두가 아는 것과 같이 서버의 부하를 분산 시키기 위해서 주로 사용한다. 우리 회사는 정말 많은 데이터를 처리해야 하기 때문에  요청을 받아들이는 부ㄴ 7 layer 마다 역할이 나누어서 Load Balancing을 꼭해주어야 한다. 

 

현재 회사에는 

 

L7, L4 layer에 Load Balancing을 사용하고 있다. 

 

NLB(Letwork LoadBalancing): 주로 L4 네트워크 계층에 LoadBalance을 제공하고 있다. 

 

ALB(Application LoadBalancing): 주로 L7 네트워크 계층에 LoadBalance을 제공하고 있다.

 

 

SQS

SQS는 aws에서 제공하는 메세지 큐이다. 주로 특정 작업을 맡겨놓고 다른 컨슈머가 큐 안에 들어있는 정보를 확인해서 본 서버의 부담을 줄여줄 수 있거나 서버의 오류로 데이터 분실이 발생할 때 메세지 큐에 담아 두어서 잃어 버리지 않고 해결 할 수 있다.

 

주로 경쟁사로는 Kafka, Raddit MQ가 있다. 내가 한국회사에서 대부분 들은 얘기는 Kafka이다. Kafka와 SQS를 비교해서 설명하겠다. 

 

SQS는 아마존에 의해서 완전히 관리되고 있는 서비스이다. 그래서 사용성이 간단하고 신뢰성이 있다. 

하지만 아마존에서 관리해서 판매하고 있기 때문에 open Source는 아니다. 

 

데이터의 용량 상관 없이 처리할 수 있으며 동기, 비동기 상관없이 서비스를 구성할 수 있다. 

 

 

Kafka

 

예전에 링크드인에 있던 개발자가 만들었고 그 당시에 대량의 데이터를 처리할 수 있는 서비스가 없다보니 만들게 된 계기라고 카프카 개발자 유투브에서 봤다.

 

또한 pub가 이벤트 채널에 이벤트를 등록하면 sub가 가져가서 처리하는 방식이기 때문에 높은 처리량을 보여준다. 주로 비동기로 구성할 수 있고 open Source이다. 

 

'공부일기' 카테고리의 다른 글

09/29 AWS 공부(ECR, Kinesis firehose, S3 buckets)  (0) 2021.09.29
Git Ops  (0) 2021.09.24
Terraform tutorial - 2. Build Infrastructure  (0) 2021.09.24
Terraform tutorial - 1 IaC, Terraform  (0) 2021.09.24
09월 16일 공부일기  (0) 2021.09.16