✢ 데브톡 프로젝트에서 헥사고날 아키텍처를 적용해 보자고 제안해 보기 위해 공부하였고 내용을 정리하였다. 적용해보고자 하는 이유는 데브톡은 MSA로써 Port&Adapter 아키텍처인 헥사고날 아키텍처를 사용하는 게 의존성을 관리하기 좋을 것 같았기 때문이다. (1) 전통적인 레이어드 아키텍처의 문제 1. 데이터베이스 주도 설계를 유도한다. 전통적인 계층형 아키텍처의 토대는 데이터베이스이다. 웹 계층은 도메인 계층에 의존하고, 도메인 계층은 영속성 계층에 의존하기 때문에 자연스럽게 DB에 의존하게 된다. 우리가 보통 개발하는 애플리케이션의 목적은 비지니스를 관장하는 규칙이나 정책을 반영한 모델을 만들어서 사용자가 편리하게 사용할 수 있게 하는 것이다. 이때 우리는 State가 아니라 Behavior를 중..
전체 글
단계별로 성장하자!로그 수집의 배경 쿠버네티스는 기본적으로 Pod가 정상상태가 아니라면 Pod를 kill하고 새로 생성한다. 하지만 운영자 입장에서는 Pod가 죽은 원인을 알아야 한다. 하지만, Pod가 죽으면 로그까지 같이 없어진다. (Pod 안의 임시 볼륨이 삭제됨) 따라서, 컨테이너가 살아있을 때 로그 저장소에 로그를 남겨놓아야 한다. EFK Stack 구축을 통한 로그 수집 컨테이너 환경에서는 로그 수집을 위해 EFK Stack을 구축할 수 있다. ( EFK = ElasticSearch + Fluentd + Kibana ) ElasticSearch: 대용량 로그 저장소로 이용 Fluentd: 컨테이너의 스트림 로그를 수집하는 로그 수집기. (모든 노드마다 동일하게 배포해야함) Kibana: 로그 시각화 툴 (El..
보호되어 있는 글입니다.
1. yum update 및 aws 버전 확인 ec2-user 계정으로 접속(sudo su - ec2-user) sudo yum update -y 명령을 통해 yum을 업데이트 해준다. aws --version을 통해 1.18 버전 이상인지 확인한다. => 그래야 kubectl 명령이 동작하기 때문 2. EC2 Role 생성 후 Bastion EC2(NAT 인스턴스)에 부여 Role 생성이 완료되면 이제 EC2에 들어가서 IAM 역할을 수정해주면 된다. 3. Kubectl 설치 https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/install-kubectl.html kubectl 설치 또는 업데이트 - Amazon EKS Amazon EKS 클러스터 제어 영..
VPC (Virtual Private Cloud) 독립적인 가상의 네트워크 공간으로 사용자의 설정에 따라 자유롭게 구성할 수 있는 Space 서브넷 생성, 라우팅 테이블, 인터넷 게이트웨이 등을 구성하여 사용자가 원하는 대로 네트워크 환경을 구성 및 제어 사용가능 사설 IP 대역 (RFC 1918) 10.0.0.0 ~ 10.255.255.255 172.16.0.0 ~ 172.32.255.255 192.168.0.0 ~ 192.168.255.255 서브넷 서브넷은 VPC안에 더 많은 네트워크 망을 구성하기 위해 더 잘게 나누는 것이다. 라우트란? 네트워크 요청이 발생하면 데이터는 라우터로 향하게 되고 라우팅 테이블이라는 이정표를 따라 이동하며 요청이 처리된다. VPC에는 기본 Route Table이 존재하..
이번에 프로젝트에서 MSA를 적용하게 되면서 비동기 통신 작업을 위해 Kafka를 학습하였고 환경설정을 하게 되었다. 1. kafka, zookeeper Docker Compose로 설치 version: '3.8' services: zookeeper: image: wurstmeister/zookeeper container_name: zookeeper ports: - "2181:2181" kafka: image: wurstmeister/kafka container_name: kafka ports: - "9092:9092" environment: KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_CREATE_..