devnoong.log
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 웹 애플리케이션 구축] 서비스 배포하기 (backend - express)
Cloud/AWS 2022. 8. 18. 13:04

1. 구성 파일 만들기 manifests 폴더로 이동하도록 하겠습니다. cd ~/environment/manifests/ 이미 만들어진 컨테이너 이미지를 포함한 deploy manifest를 생성합니다. vi nodejs-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: demo-nodejs-backend namespace: default spec: replicas: 3 selector: matchLabels: app: demo-nodejs-backend template: metadata: labels: app: demo-nodejs-backend spec: containers: - name: demo-nodejs-backend i..

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

웹 서비스를 구성하는 백앤드, 프론트앤드를 Amazon EKS에 배포하는 방법에 대해 알아보도록 하겠습니다. 각 서비스를 배포하는 순서는 아래와 같습니다. ① 소스 코드 다운로드 ② Amazon ECR에 각 서비스에 대한 리포지토리 생성 ③ Dockerfile을 포함한 소스 코드 위치에서 컨테이너 이미지 빌드 후, 리포지토리에 푸시 ④ 각 서비스에 대한 Deployment, Service, Ingress 매니페스트 파일 생성 및 배포 아래의 그림은 사용자가 실제 서비스를 접근하는 순서를 나타냅니다. 1. 구성 파일 만들기 먼저 manifests 폴더 위치(/home/ec2-user/environment/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 웹 애플리케이션 구축] 콘솔 크레덴셜 추가하기
Cloud/AWS 2022. 8. 17. 15:03

EKS 클러스터는 클러스터 접근 제어를 위해 IAM entity(사용자 또는 역할)중 ConfigMap에서 사용되는 aws-auth라는 role을 이용한다고 합니다. 기본적으로 클러스터를 생성하는데 사용된 IAM entity에는 컨트롤 플레인에서 클러스터 RBAC 구성의 system:masters 권한이 자동적으로 부여됩니다. 클러스터 접근 제어를 위해서 AWS Console credential을 클러스터에 추가하는 작업이 필요합니다. 1. 클러스터 자격 증명 확인하기 cat ~/.kube/config eks-demo-yh 클러스터에 대한 자격증명 내용을 확인해볼 수 있습니다. 현재 사용 가능한 user에는 클러스터 생성자인 저만이 포함되어 있습니다. 클러스터를 생성한 사용자인 경우 클러스터에 대한 액세..

article thumbnail
[EKS 웹 애플리케이션 구축] EKS 클러스터 생성하기
Cloud/AWS 2022. 8. 16. 17:30

Amazon EKS 란? 쿠버네티스를 쉽게 실행 할 수 있는 관리형 서비스입니다. AWS환경에서 Kubernetes 컨트롤 플레인 또는 노드를 직접 설치, 운영 및 유지할 필요가 없이 관리해주기때문에 쉽게 실행 할 수 있는 서비스입니다. 1. 클러스터 파일 생성하기 cd ~/environment vi eks-demo-cluster_yh.yaml apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: eks-demo # 생성할 EKS 클러스터명 region: ${AWS_REGION} # 클러스터를 생성할 리전 version: "1.21" vpc: cidr: "192.168.0.0/16" # 클러스터에서 사용할 VPC의 CIDR managedN..

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라고..