본문 바로가기

전체 글

(14)
[AWS] Deploy to ECS (Fargate) - Blue/Green Blue-Green 배포란Blue-Green 배포는 애플리케이션 또는 마이크로서비스의 이전 버전에 있던 사용자 트래픽을 이전 버전과 거의 동일한 새 버전으로 점진적으로 이전하는 애플리케이션 릴리스 모델입니다.이전 버전을 blue 환경으로, 새 버전은 green 환경으로 부를 수 있습니다.AWS CLI로 진행하였으며, AWS에서 제공해주는 가이드를 참고하였습니다.ECS, ALB, CodedDeploy에 대한 권한이 필요합니다. 실습1. Application Load Balancer 생성블루/그린 배포 유형을 사용하는 Amazon ECS 서비스에서는 Application Load Balancer 또는 Network Load Balancer 중 하나를 사용해야 합니다. (ALB 사용)ALB 생성aws elbv..
[Kubernetes]istio - bookinfo 실습 및 Kiali 설정 istio bookinfo 실습ns default isito-injeciton 활성화kubectl label namespace default istio-injection=enabledbookinfo.yaml 배포cd istio-x.xx.xkubectl apply -f samples/bookinfo/platform/kube/bookinfo.yamlservice 확인kubectl get servicesbookinfo 애플리케이션 확인kubectl exec "$(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}')" -c ratings -- curl -sS productpage:9080/productpage | grep -o ".*"b..
[kubernetes] istio 환경 구성 서비스 메시란?애플리케이션에의 서비스 간 모든 통신을 처리하는 소프트웨어 계층컨테이너화된 마이크로서비스로 구성서비스 간 연결을 관리하기 위해 모니터링, 로깅, 추적, 트래픽 제어와 같은 새로운 기능을 제공서비스 메시의 이점서비스 검색자동화된 서비스 검색을 제공하여 서비스 엔드포인트 관리의 운영 부하를 줄임로드 밸런싱라운드 로빈, 최소 연결 또는 가중치 로드 밸런싱과 같은 다양한 알고리즘을 사용하여 요청을 여러 서비스 인스턴스에 지능적으로 분산리소스 활용도를 높이고 고가용성 및 확장성 보장성능 최적화 및 네트워크 통신 병목 현상 방지트래픽 관리요청 라우팅 및 트래픽 동작을 세밀하게 제어할 수 있는 고급 트래픽 관리 기능을 제공트래픽 분할들어오는 트래픽을 서로 다른 서비스 버전 또는 구성 간에 분할할 수 있..
[AWS] Docker Image를 이용한 EKS로 WEB 페이지 운영하기 EKS, Docker, ECR, Nginx, Tomcat, MySQL를 이용하여 진행하였습니다.OS는 Amazon Linux 2023으로 진행하였습니다. AWS Configure 적용IAM을 통해 생성한 Access Key 등록aws configureAWS Access Key ID [None]: AWS Secret Access Key [None]: Default region name [None]: Default output format [None]: Dockerfile 생성docker 설치sudo yum install -y dockersudo systemctl start dockersudo systemctl enable dockersudo systemctl status dockerdocker image ..
[AWS] EKS - Grafana & Prometheus 연동 및 시각화 Grafana란?멑티플랙폼 오픈소스로, 메트릭 분석 및 메트릭 정보 시각화를 제공해주는 웹 어플리케이션인터렉티브한 시각화 기능 제공Prometheus, InfluxDB, Elasticsearch 등 다양한 데이터 소스와 연동 가능시계열 메트릭 데이터 수집에 최적화서버 리소스의 메트릭 정보나 로그 같은 데이터를 시각화 할 때 많이 사용Grafana 특징오픈 소스알람 기능데이터 저장 방식확장성플러그 인가시성Prometheus 란메트릭 수집, 시각화, 알림, 서비스 디스커버리 기능을 모두 제공하는 오픈 소스 모니터링 시스템Prometheus 기능풀 방식의 메트릭 수집, 시계열 데이터 저장PromQL을 활용하여 저장된 시계열을 쿼리 및 집계서비스 디스커버리데이터 시각화 Promethus 실습Prometheus ..
[AWS] EKS에 Karpenter 적용 Karpenter 란Cluster Autoscaler와 유사하게 Kubernetes 클러스터에서 자동 스케일링을 관리하기 위한 오픈 소스 도구Karpenter 동작HPA에 의해 자동확장 또는 재배포하여 새로운 Pod가 생성.Kube-scheduler에 의해 기존에 존재하는 Worker node에 새로운 Pod를 할당기존 Worker node에 새로운 Pod를 할당할 자원이 부족하여 Pod는 Pending 상태가 됨Karpenter는 Pending 상태의 Pod를 감지하고 새로운 Worker node를 생성Kube-scheduler에 의해 새로 생성된 Worker node에 Pending 상태인 Pod가 배포 실습Node IAM Role 생성Karpenter의 IAM Role 생성 및 정책 연결cat n..
[AWS] WEB/WAS/RDS 연동하기 MySQL 8.0.39로 생성DB 생성 및 데이터 생성AWS에서 제공하는 서비스로 DB 생성Database 생성mysql> create database dyyeom;mysql> use dyyeomTable 생성mysql> create table user( -> NUM varchar(10) not null, -> ID varchar(10) not null, -> PW varchar(10) not null, -> NAME varchar(10) not null, -> ADDRESS varchar(10) not null -> );mysql> create table login( -> ID varchar(20) not null, -> PW varchar(20) not nu..
[AWS] EKS - Cluster Autoscaler 설정 EKS의 worker node 는 EC2 instacne이며 아무리 작은 크기의 pod 라고 해도 무한정으로 pod를 배포 시킬 수 없음여러개의 pod 가 만들어지면 node 가 가득 차버려서 나머지 pod 들은 pending 상태가 되어 버림이러한 문제를 해결하기 위해서 사용하는 것이 Cluster Autoscaler (CA)Cluster Autoscaler (CA) 이란?node의 자원이 부족하여 pod 가 pending 될 때 node의 수를 늘려주는 것Cluster Autoscaler 로직node의 자원이 부족하여 pending 상태가 된 pod 가 있는지 확인CA가 desired capacity의 갯수를 바꿈AWS 가 새로운 EC2를 생성하며 이에 해당하는 EC2가 새로운 worker node시..