서론 복잡한 마이크로서비스 아키텍처에서 서비스 간의 흐름을 관리하고, 호출에 걸리는 시간을 알려주는 Telemetry 서비스를 구성하는 것은 반드시 필요하다. 특히 폴리그랏을 지향하는 마이크로서비스 아키텍처에서 서비스간 호출 관계를 정의하는 것은 무엇보다 중요하다고 할 수 있다. EKS가 제공하는 K8S 기반 네트워크 정책을 수립하는 것도 중요하지만 이는 쉽지않은 구성이며 이를 App Mesh로 구성할 경우 보다 유연한 트래픽 관리가 가능해진다. 바로 이러한 기술을 제공하는 것이 서비스 메시이다. Mesh란 서비스들 사이의 Network Traffic에 대한 논리적인 바운더리라고 볼 수 있다. 보다 자세한 Service Mesh에 대해 알아보고 싶을 경우 다음을 참고하자. [MSA] Internal Lo..
서론 Amazon API Gateway는 AWS가 제공하는 Managed Service이다. API의 흐름을 제어하고 인증, 로깅 등의 서비스를 제공한다. 보다 자세한 API Gateway 설명은 다음을 참고한다. [MSA] External LoadBalancer API Gateway 본 포스팅에서는 Amazon API Gateway를 구축하고 활용하는 방법에 대해 알아보도록 하자. API Gateway 구성과정 1) 샘플 애플리케이션 Deploy 2) Amazon API Gateway API 등록 3) Amazon API Gateway API 배포 및 테스트 4) Amazon API Gateway 인증 테스트 5) API Request / Response 조작하기 6) API URL 관리 샘플 애플리케..
서론 EKS는 Kubernetes 기반 Container Management를 제공하는 AWS 서비스이다. AWS는 EKS외에 ECS라는 독자적인 Container 서비스를 제공하지만, 이는 Lock In 요소와 선호도의 차이로 인해 사용률이 감소하고 있는 추세이다. 지금부터 EKS 구축 방법에 대해 알아보도록 하자. EKS는 크게 두가지 방법으로 구성해 볼 수 있다. - EKS AWS Console 사용 - EKS CloudFormation 사용 기존 AWS Console을 활용한 구성 방법은 많은 웹사이트에서 소개되고 있어 이번에는 CloudFormation을 활용한 CLI 기반으로 구성해 보도록 하자. EKS 구성과정 구성 과정은 크게 다음과 같이 구분해 볼 수 있다. 1) EKS VPC Netwo..
마이크로서비스 아키텍처는 '서비스를 설계하는 Inner 영역'과 '서비스를 지원하는 Outer 영역'으로 구분한다. Inner는 서비스를 비즈니스 영역에 맞게 쪼개고 API를 설계하는 영역이며, Outer는 API 호출이 원활하게 이루어질수 있도록 도와주는 영역이다. 이와 같이 MSA는 API를 어떻게 쪼개고 어떻게 서비스할 것인지를 결정하는 것이라 할 수 있으며, 결국 MSA의 핵심은 API라고 할 수 있다. 마이크로서비스의 API "최근 IT(Information Technology)는 진화의 과정을 거쳐 DT(Data Technology) 산업으로 확장해 나가고 있다. Data 중심의 기술로 발전하며, 데이터를 분석하는데 특화된 다양한 언어와 환경이 중요해졌으며, 이는 기존 단일화(?) 되어 있던(..
Gradle은 서브 프로젝트를 하나의 디렉토리로 관리하는 root & include 프로젝트 구성 기능을 제공한다. 이를 통해 하나의 Git / SVN Repository로 여러 동일 레벨의 Multi Project를 관리할 수 있다. Gradle Include Project (settings.gradle) 본격적인 Pub/Sub 구조의 애플리케이션 개발에 앞서 Gradle Project의 settings.gradle을 활용한 include project 생성 방법에 대해 먼저 살펴보도록 하자. 1) Gradler Project 생성 2) build.gradle 수정 buildscript { repositories { mavenCentral() } } 3) settings.gradle 구성 rootPro..
앞서 두 포스팅을 통해 Kafka(Zookeeper)의 아키텍처와 구축/기동 방법에 대해 살펴보았다. Kafka(Zookeeper) 아키텍처 Kafka(Zookeeper) 구축 이번 포스팅에서는 실제 Kafka Message Broker를 활용한 Pub/Sub SpringBoot Application 개발 방법에 대해 알아보자.Publisher Project 개발 가이드Publisher 구현은 다음과 같은 과정을 거친다.(build.gradle 구성 > @SpringBootApplication 구성 > Swagger 구성 > application.properties 정의 > KafkaPublisherConfig 정의 > domain(Sender & Reciever Message) 정의 > Controll..
앞선 포스팅에서 Kafka(Zookeeper) 아키텍처에 대해 살펴보았다. [MSA] Kafka(Zookeeper) 아키텍처 이번 포스팅에서는 다음 포스팅에서 다룰 Pub/Sub 개발을 위한 Kafka 메시지 브로커를 구성해 보도록 하자. Kafka 설치 Kafka는 사실 설치의 개념이 없다. 단순히 압축을 해제하는 것만으로 설치는 완료된다.Kafka는 다음에서 다운로드 받을 수 있다.Kafka : http://kafka.apache.org/ Kafka 디렉토리 구조 Kafka를 관리할 특정 디렉토리에 압축을 해제하면 다음과 같은 구조를 갖는다. [주요 디렉토리]- bin : Kafka와 Zookeeper를 기동하고 관리하기 위한 bat(windows) or sh(linux/unix) 파일이 위치한다.-..
Apache Kafka는 아파치 소프트웨어 재단이 스칼라로 개발한 오픈 소스 메시지 브로커 프로젝트로 pub/sub 모델의 메시지 큐를 지원한다.마이크로서비스 아키텍처에서 메시지 브러커는 Message Backing Service로써 동작하며, 메시지의 처리를 통해 비동기 애플리케이션, DB 동기화, 보상트랜잭션 구현, PUB/SUB 구현 등 다양한 형태의 애플리케이션으로 응용될 수 있다.Kafka는 대표적인 메시지 브로커로써, RabbitMQ와 많이 비교된다.일반적으로 RabbitMQ는 대표적인 신뢰성 높은 메시지 브로커로써 각광받는다. 장애 발생 시에도 데이터 복원이 쉽고, 반드시 한번의 전송을 보장한다. 다만 성능면에서 Kafka 보다 떨어진다.Kafka는 대용량 실시간 처리에 특화되어 있다. 특히..
Kubernetes에는 Linux / Unix Operation System에 존재하는 CronTab을 구현한 CronJob이 존재한다. CronJob은 반복적이고 Scheduling 된 업무를 동작하게 하는 방법 중 하나로 CronTab이 항상 OS Level의 Configuration으로 남아 있는것과 달리 휴발성 있는 컨테이너에서 Job을 실행하고 종료하는 방식으로 보다 안전한 관리 방식을 제공한다. 또한 OS 외 Kubernetes Level의 RBAC 권한 관리 방안으로 보다 안전하게 명령어 레벨을 실행할 수 있도록 제한할 수 있다. CronJob 먼저 CronJob에 대해 알아보자. CronJob은 CronTab에 정의된 한 줄의 Scheduling과 같다고 볼 수 있다. CronTab과 같이..
Kubernetes는 배포 최소단위로 Pod를 사용한다. Pod는 하나 이상의 Container를 포함하는 배포 단위이다. 이때, 컨테이너는 여러 형태로 존재할 수 있는데, 기동 시점에 처리하고 종료되고 Init Container 실제 업무를 처리하는 Runtime Container 보조 역할로써 배포되는 SideCar Container 등이 존재한다. 우리는 일반적으로 생각하는 Runtime Container만 다루곤 하는데, 때로는 다른 형태의 컨테이너를 이해하고 있어야 실제 장애에 대응할 수 있는 상황이 주어지기도 한다. 예를 들어 다음과 같은 상황을 살펴보도록 하자. 앞서 다음 포스팅에서 트러블슈팅을 진행하는 몇가지 방법에 대해 알아보았다. (참조) Kubernetes - 장애 발생 시 진단 Pr..
- Total
- Today
- Yesterday
- SWA
- k8s
- jeus
- git
- JBoss
- 쿠버네티스
- webtob
- Da
- OpenStack
- TA
- node.js
- aa
- kubernetes
- JEUS6
- 마이크로서비스
- nodejs
- 오픈스택
- apache
- 마이크로서비스 아키텍처
- API Gateway
- wildfly
- openstack token issue
- Architecture
- Docker
- openstack tenant
- SA
- 아키텍처
- JEUS7
- aws
- MSA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |