devnoong.log
article thumbnail
[EKS 웹 애플리케이션 구축] CI/CD for EKS cluster
Cloud/AWS 2022. 8. 21. 23:45

CI/CD for EKS cluster란? Github 에 위치한 application 소스와 k8s manifests 의 변경 사항이 발생될 때 마다 자동으로 Github Action 을 통해서 빌드/통합(Continous Integration) 하고, 통합된 배포 대상을 ArgoCD 를 통해 k8s 클러스터에 배포(Continous Deployment) 하는 일종의 gitops 파이프라인을 만드는 과정을 안내 합니다. 이 때 k8s manifests를 통합/패키징 하는 도구로 Kustomize를 사용 합니다. manifest 정적 분석을 위해 Checkov와 Trivy 를 함께 사용 합니다. 이를 통해 클러스터의 보안을 향상 할 수 있습니다. CI/CD 파이프라인의 동작 흐름은 다음과 같습니다. CI..

article thumbnail
[EKS 웹 애플리케이션 구축] Cluster Autoscaler 적용하기
Cloud/AWS 2022. 8. 19. 17:30

Cluster Autoscaler란? 이전 글에서 파드에 오토 스케일링을 적용해봤습니다. https://devnoong.tistory.com/28 [EKS 웹 애플리케이션 구축] HPA 적용하기 쿠버네티스 오토 스케일링이란? 오토 스케일링 서비스는 사용자가 정의한 주기 및 이벤트에 따라 서버를 자동으로 생성하거나 삭제하는 기능을 의미합니다. 오토 스케일링을 사용함으로써 애 devnoong.tistory.com 하지만 트래픽에 따라 파드가 올라가는 워커 노드 자원이 모자라게 되는 경우도 발생하게 됩니다. 즉, 워커 노드가 가득 차서 파드가 스케줄될 수 없는 상태가 되기때문에 Cluster Autoscaler(CA) 사용합니다. 1. ASG(Auto Scaling Group) 값 확인 현재 클러스터의 워커노..

article thumbnail
[EKS 웹 애플리케이션 구축] HPA 적용하기
Cloud/AWS 2022. 8. 19. 17:15

쿠버네티스 오토 스케일링이란? 오토 스케일링 서비스는 사용자가 정의한 주기 및 이벤트에 따라 서버를 자동으로 생성하거나 삭제하는 기능을 의미합니다. 오토 스케일링을 사용함으로써 애플리케이션은 트래픽에 따라 탄력적으로 대응할 수 있습니다. 쿠버네티스에는 크게 두 가지의 오토 스케일링 기능이 있습니다. HPA(Horizontal Pod AutoScaler) Cluster Autoscaler HPA는 CPU 사용량 또는 사용자 정의 메트릭을 관찰하여 파드 개수를 자동으로 스케일합니다. 그러나 해당 파드가 올라가는 EKS 클러스터 자체 자원이 모자라게 되는 경우, Cluster Autoscaler를 고려해야 합니다. 먼저 HPA를 사용하여 파드 스케일링 적용해보도록 하겠습니다. HPA(Horizontal Pod..

article thumbnail
[EKS 웹 애플리케이션 구축] EKS CloudWatch Container Insights 사용하기
Cloud/AWS 2022. 8. 19. 17:04

Container Insights란? CloudWatch Container Insight는 컨테이너형 애플리케이션 및 마이크로 서비스에 대한 모니터링, 트러블 슈팅 및 알람을 위한 완전 관리형 관측 서비스입니다. CloudWatch 콘솔에서 자동화된 대시보드를 통해 container metrics, Prometeus metrics, application logs 및 performance log events를 탐색, 분석 및 시각화할 수 있습니다. 1. mainfests 관리 폴더 생성 cd ~/environment mkdir -p manifests/cloudwatch-insight && cd manifests/cloudwatch-insight 2. CloudWatch agent, Fluent Bit 설치..

article thumbnail
[EKS 웹 애플리케이션 구축] AWS Fargate로 배포하기
Cloud/AWS 2022. 8. 19. 08:37

AWS Fargate 란? 컨테이너에 적합한 서버리스 컴퓨팅 엔진으로 Amazon Elastic Container Service(ECS) 및 Amazon Elastic Kubernetes Service(EKS)에서 모두 작동합니다. Fargate에서는 서버를 프로비저닝하고 관리할 필요가 없어 애플리케이션별로 리소스를 지정하고 관련 비용을 지불할 수 있으며, 계획적으로 애플리케이션을 격리함으로써 보안 성능을 향상시킬 수 있습니다. 1. fargate profile 정의하기 fargate profile이란 fargate로 pod를 생성하기 위한 조건을 명시해놓은 프로파일입니다. cat

article thumbnail
[EKS 웹 애플리케이션 구축] 서비스 배포하기 (frontend- react)
Cloud/AWS 2022. 8. 18. 16:39

https://devnoong.tistory.com/23?category=1040811 [EKS 웹 애플리케이션 구축] 서비스 배포하기 (backend - flask) 웹 서비스를 구성하는 백앤드, 프론트앤드를 Amazon EKS에 배포하는 방법에 대해 알아보도록 하겠습니다. 각 서비스를 배포하는 순서는 아래와 같습니다. ① 소스 코드 다운로드 ② Amazon ECR에 각 devnoong.tistory.com https://devnoong.tistory.com/24?category=1040811 [EKS 웹 애플리케이션 구축] 서비스 배포하기 (backend - express) 1. 구성 파일 만들기 manifests 폴더로 이동하도록 하겠습니다. cd ~/environment/manifests/ 이미 ..

article thumbnail
[EKS 웹 애플리케이션 구축] 인그레스 컨트롤러 만들기
Cloud/AWS 2022. 8. 17. 17:34

인그레스 컨트롤러란? 인그레스(Ingress) 는 주로 클러스터 외부에서 쿠버네티스 내부로 접근할 때, 요청들을 어떻게 처리할지 정의해놓은 규칙이자 리소스 오브젝트입니다. 한마디로 외부의 요청이 내부로 접근하기 위한 관문의 역할을 합니다. 인그레스는 외부 요청 처리에 대한 규칙들을 설정해놓은 것을 의미하며, 이런 설정이 동작하기 위해서 필요한 것이 인그레스 컨트롤입니다. 인그레스 컨트롤러는 클러스터와 함께 생성되지 않기 때문에 직접 구현해야 합니다. ALB(Application Load Balancer) 컨트롤러란? 인그레스 자원이 생성될 때에 ALB(Application Load Balancer) 및 필요한 자원이 생성되도록 트리거하는 컨트롤러입니다. AWS Load Balancer 컨트롤러에서 지원하..

article thumbnail
[EKS 웹 애플리케이션 구축] Amazon ECR에 이미지 올리기
Cloud/AWS 2022. 8. 16. 15:54

Amazon ECR이란? Amazon Elastic Container Registry (Amazon ECR) 의 줄임말로 안정적이고 확장 가능한 AWS 관리 컨테이너 이미지 레지스트리 서비스입니다. 이미지를 가용성과 확장성이 뛰어난 아키텍처에 호스팅하여 사용자는 애플리케이션을 위한 컨테이너를 안정적으로 배포할 수 있습니다. AWS IAM을 사용하여 컨테이너 이미지에 액세스할 수 있는 사용자 및 리소스에 대한 권한을 제어하고 모니터링할 수 있고, 이미지 취약점 스캔 기능도 활성화할 수 있습니다. 1. 소스 Clone git clone https://github.com/joozero/amazon-eks-flask.git 2. 이미지 리포지토리 생성 리포지토리 이름을 demo-flask-backend_yh라고..

article thumbnail
[EKS 웹 애플리케이션 구축] 도커 컨테이너 이미지 만들기
Cloud/AWS 2022. 8. 12. 16:57

컨테이너 이미지란? 컨테이너 실행에 필요한 파일과 설정 값 등을 묶어 놓은 것입니다. 이런 이미지는 저장소에 올리고 받을 수 있습니다. 그 이미지를 실행한 상태가 컨테이너라고 할 수 있습니다. 공식 이미지 저장소에서 다운 받아 사용할 수도 있고, 직접 만들 수도 있습니다. 1. Dockerfile 파일 만들기 컨테이너 이미지를 만들기 위한 설정 파일인 Dockerfile을 생성합니다. 이미지가 컨테이너가 되면 실질적으로 application이 구동되는 것입니다. 파일을 등록하기위해 환경 설정 위치로 이동하겠습니다. cd ~/environment/ VI명령어를 이용해 Dockerfile을 생성했습니다. vi Dockerfile FROM nginx:latest RUN echo ' test nginx web ..

article thumbnail
[EKS 웹 애플리케이션 구축] AWS Cloud9 환경 설정 셋팅
Cloud/AWS 2022. 8. 12. 15:29

AWS Cloud9 환경 설정 작업을 진행하도록 하겠습니다. 1. AWS REGION 설정 현재 실습이 진행되고 있는 리전을 기본 값으로 설정하겠습니다. export AWS_REGION=$(curl -s 169.254.169.254/latest/dynamic/instance-identity/document | jq -r '.region') echo명령어를 통해 설정된 값을 확인해보도록 하겠습니다. echo "export AWS_REGION=${AWS_REGION}" | tee -a ~/.bash_profile 등록한 AWS_REGION을 기본값으로 변경하도록 하겠습니다. aws configure set default.region ${AWS_REGION} 2. 계정ID 환경변수 등록하기 계정ID를 ACCO..