DevOps 49

[AWS] IAM과 Linux Ubuntu환경에 AWS CLI 설치

빛나는 8GB 맥북을 사용하기 위해 AWS EC2에 linux Ubuntu를 설치하여 linux를 학습하고 있다. 오늘은 AWS IAM에 대해 알아보고 AWS CLI를 Linuc Ubuntu 환경에 설치해보겠다. IAMglobal serviceIdentity access management유저를 만들고 그룹에 할당이 가능하다.default root user를 만들고 절대 공유하면 안된다.IAM에서 유저를 생성하고 그 유저는 조직내의 한 사람을 의미한다.그리고 사용자가 합이 맞으면 그룹화가 가능그룹은 컨테이너 사용자만 가능하고 다른 그룹은 불가 IAM 사용자를 생성하고 그룹에 권한을 부여하는 단계 AWS Management Console에서 Identity and Access Management(IAM) ..

DevOps/aws 2023.05.17

[Kafka] Python에 kafka 활용한 간단예제 ft.Event-driven microservices

파이썬에서는 kafka-python이라는 라이브러리를 통해 카프카를 활용할 수 있다. kafka-python 라이브러리를 설치 명령어 pip install kafka-python 다음은 kafka producer 예제이다. producer.send() 함수를 사용하여 토픽에 메시지를 전송할 수 있다. pythonCopy code from kafka import KafkaProducer # 카프카 서버 정보 설정 bootstrap_servers = ['localhost:9092'] # 프로듀서 생성 producer = KafkaProducer(bootstrap_servers=bootstrap_servers) # 메시지 전송 producer.send('my_topic', b'message from pytho..

DevOps/kafka 2023.05.08

[Kafka] 빅데이터 플랫폼: hadoop, spark, kafka의 역할과 데이터 아키텍쳐

데이터 플랫폼은 대용량 데이터를 수집, 저장, 처리, 분석할 수 있는 통합 플랫폼을 의미한다. 이를 위해 다양한 기술과 솔루션이 활용될 수 있으며, 하둡, 스파크, 카프카는 데이터 플랫폼 구성에서 가장 많이 사용되는 기술 중 하나이다. 하둡은 대규모 데이터를 분산 처리할 수 있는 분산 파일 시스템(HDFS)과 분산 컴퓨팅 프레임워크(MapReduce)를 제공한다. 스파크는 하둡 기반의 분산 처리 엔진으로, 메모리 기반의 빠른 처리 속도와 다양한 데이터 소스 지원 등을 특징으로 한다. 카프카는 대용량 실시간 데이터 스트리밍 플랫폼으로, 다양한 소스로부터 데이터를 수집하고, 다양한 대상에 데이터를 전송할 수 있다. 이러한 기술들이 데이터 플랫폼 구성에서 주요한 역할을 하고 있다. 여기서 관계형데이터베이스와 ..

DevOps 2023.05.08

[Kafka] Kafka Manager API를 사용하여 Kafka 클러스터 모니터링하는 법: 카프카 클러스터의 고가용성확보

카프카 클러스터에서 고가용성을 확보하기 위해서는 여러 대의 브로커 노드를 이용한 복제와 리더-팔로워 구조를 활용해야 한다. 이를 통해 카프카 클러스터 전체에서 데이터의 손실 없이 안정적으로 메시지를 처리할 수 있다. 먼저, 카프카 클러스터에서 데이터를 안정적으로 처리하기 위해서는 여러 대의 브로커 노드를 이용한 복제가 필요하다. 이를 위해 데이터를 복제할 브로커 노드를 미리 설정해야 하고 이때, 브로커 노드의 수는 홀수로 설정하는 것이 좋다. 이유는 브로커 노드 수가 짝수일 경우, 브로커 노드의 다수결로 리더 노드를 선출하는데, 만약 다수결을 가릴 수 없는 경우 브로커 노드 간에 충돌이 발생하여 데이터 손실이 발생할 수 있기 때문이다. 또한, 카프카 클러스터에서 데이터의 안정적인 처리를 위해서는 리더-팔..

DevOps/kafka 2023.05.08

[Kafka] Kafka를 활용한 대규모 데이터 실시간 전송 예제 코드

Kafka는 왜 탄생했나? 단방향 통신 App and Services → Relational Data Ware House Source Application, Target Application이 많아지면서 데이터를 전송해지는 라인이 매우 복잡해졌다. Source Application, Target Application이 많아질수록 key value Store 즉, 데이터를 전송해지는 라인도 그만큼 많아졌다. 데이터를 전송해지는 라인이 많아지면 배포와 장애에 대응하기가 어려워진다. 데이터를 전송할 때 프로토콜포멧 파편화가 심해지고 추후 데이터 포멧 내부에 변경사항이 생기면 유지보수하기어려워진다. apache kafka는 위와 같은 어려움을 해결해준다. Source Application과 Target Appl..

DevOps/kafka 2023.05.02

[AWS] 컨테이너 오케스트레이션 서비스로 비용절감하는 법

AWS에서 제공하는 컨테이너 서비스인 Amazon ECS와 Amazon EKS를 사용하는 개발자들은 컨테이너 환경에서 슬기롭게 생활한다. 이번 세션에서는 AWS에서 컨테이너 서비스를 보다 잘 활용할 수 있는 방법들을 전수받고왔다. 먼저 컨테이너 오케스트레이션 서비스에 대해 알아보도록하자. 컨테이너 오케스트레이션 서비스는 마치 내집 마련을 하는 것과 같다. AWS에서는 Amazon ECS와 Amazon EKS를 제공한다. Amazon ECS는 완전히 관리되는 컨테이너 오케스트레이션 서비스로, 간단하게 애플리케이션을 배포하고 관리할 수 있다. Amazon EKS는 Kubernetes를 사용하는 컨테이너 오케스트레이션 서비스로, 보다 유연하고 안정적인 컨테이너 환경을 제공한다. 이미지 사이즈를 줄이는 방법 이..

DevOps/aws 2023.03.31

MSA구조를 위한 서버안정화 및 과부하 분산처리를 위한 솔루션 검토

서버 자동 재시작(self- healing) bash와 crontab health Check를 위한 쉘스크립트 function isRunning { if[-s $HITUP_PID_FILE] then ps -p $(cat $HITUP_PID_FILE) > dev/null return $? else return 1 fi } JVM 실행옵션 OutOfMemoryError에러 발생 시 바로 킬하는 옵션 장애 원인을 남기기위해서 heapdump남기는 옵션 java- Xmx10x10m \\ -XX:+HeapDumOnOutOfMemoryError \\ -XX:+ExitOnOutOfMemoryError -jar may_cause_oom.jar 첫번째 OutOfMemoryError 에러가 나면 프로세스가 바로 다운이되고..

DevOps 2023.01.20

[Docker] docker 기본 명령어

버전 확인 $ docker -v 이미지 다운로드 $ docker pull [이미지 명] 다운로드된 이미지 목록 $ docker images 컨테이너 생성 $ docker create [옵션] [이미지 명] 컨테이너 생성 및 실행 $ docker run [옵션] [이미지 명] 컨테이너 실행 $ docker start [컨테이너 명] 컨테이너 재실행 $ docker restart [컨테이너 명] 컨테이너 접속 $ docker attach [컨테이너 명] 컨테이너 정지 $ docker stop [컨테이너 명] 실행중인 컨테이너 목록 $ docker ps 정지된 컨테이너 목록 $ docker ps -a 컨테이너 명 변경 $ docker rename [기존 컨테이너 명] [새로운 컨테이너 명] 컨테이너 삭제 $ ..

DevOps/docker 2023.01.06

[AWS] EC2 기본 사용법에 대해 알아보자

Elastic Compute Cloud EC2는 컴퓨터를 통째로 빌려주는 컴퓨터 임대 서비스 서비스를 이용한다고 집으로 컴퓨터가 배달되는 것은 아니다. 원격 제어를 이용해서 컴퓨터를 조작하고 더 이상 필요없어지면 언제든지 버릴 수 있는 서비스이다. AWS Mangement Console 사이트 접속 로그인/회원가입 https://ap-northeast-1.console.aws.amazon.com/ec2/home?region=ap-northeast-1#Home: EC2 검색하면 EC2 관련 대시보드 클릭 후 접속 👋🏻 인스턴스? EC2에서는 한대 한대 컴퓨터를 인스턴스라고 부른다. 인스턴스 메뉴를 통해서 내가 생성한 인스턴스들을 관리하고 새로운 인스턴스들을 시작할 수 있는 화면 새로운 인스턴스 만들기 인스..

DevOps/aws 2022.10.10