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 설치..
AWS Fargate 란? 컨테이너에 적합한 서버리스 컴퓨팅 엔진으로 Amazon Elastic Container Service(ECS) 및 Amazon Elastic Kubernetes Service(EKS)에서 모두 작동합니다. Fargate에서는 서버를 프로비저닝하고 관리할 필요가 없어 애플리케이션별로 리소스를 지정하고 관련 비용을 지불할 수 있으며, 계획적으로 애플리케이션을 격리함으로써 보안 성능을 향상시킬 수 있습니다. 1. fargate profile 정의하기 fargate profile이란 fargate로 pod를 생성하기 위한 조건을 명시해놓은 프로파일입니다. cat
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/ 이미 ..
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..
웹 서비스를 구성하는 백앤드, 프론트앤드를 Amazon EKS에 배포하는 방법에 대해 알아보도록 하겠습니다. 각 서비스를 배포하는 순서는 아래와 같습니다. ① 소스 코드 다운로드 ② Amazon ECR에 각 서비스에 대한 리포지토리 생성 ③ Dockerfile을 포함한 소스 코드 위치에서 컨테이너 이미지 빌드 후, 리포지토리에 푸시 ④ 각 서비스에 대한 Deployment, Service, Ingress 매니페스트 파일 생성 및 배포 아래의 그림은 사용자가 실제 서비스를 접근하는 순서를 나타냅니다. 1. 구성 파일 만들기 먼저 manifests 폴더 위치(/home/ec2-user/environment/manifests)로 이동하도록 하겠습니다. cd ~/environment/manifests/ 위의 순..
인그레스 컨트롤러란? 인그레스(Ingress) 는 주로 클러스터 외부에서 쿠버네티스 내부로 접근할 때, 요청들을 어떻게 처리할지 정의해놓은 규칙이자 리소스 오브젝트입니다. 한마디로 외부의 요청이 내부로 접근하기 위한 관문의 역할을 합니다. 인그레스는 외부 요청 처리에 대한 규칙들을 설정해놓은 것을 의미하며, 이런 설정이 동작하기 위해서 필요한 것이 인그레스 컨트롤입니다. 인그레스 컨트롤러는 클러스터와 함께 생성되지 않기 때문에 직접 구현해야 합니다. ALB(Application Load Balancer) 컨트롤러란? 인그레스 자원이 생성될 때에 ALB(Application Load Balancer) 및 필요한 자원이 생성되도록 트리거하는 컨트롤러입니다. AWS Load Balancer 컨트롤러에서 지원하..
EKS 클러스터는 클러스터 접근 제어를 위해 IAM entity(사용자 또는 역할)중 ConfigMap에서 사용되는 aws-auth라는 role을 이용한다고 합니다. 기본적으로 클러스터를 생성하는데 사용된 IAM entity에는 컨트롤 플레인에서 클러스터 RBAC 구성의 system:masters 권한이 자동적으로 부여됩니다. 클러스터 접근 제어를 위해서 AWS Console credential을 클러스터에 추가하는 작업이 필요합니다. 1. 클러스터 자격 증명 확인하기 cat ~/.kube/config eks-demo-yh 클러스터에 대한 자격증명 내용을 확인해볼 수 있습니다. 현재 사용 가능한 user에는 클러스터 생성자인 저만이 포함되어 있습니다. 클러스터를 생성한 사용자인 경우 클러스터에 대한 액세..
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..
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라고..
컨테이너 이미지란? 컨테이너 실행에 필요한 파일과 설정 값 등을 묶어 놓은 것입니다. 이런 이미지는 저장소에 올리고 받을 수 있습니다. 그 이미지를 실행한 상태가 컨테이너라고 할 수 있습니다. 공식 이미지 저장소에서 다운 받아 사용할 수도 있고, 직접 만들 수도 있습니다. 1. Dockerfile 파일 만들기 컨테이너 이미지를 만들기 위한 설정 파일인 Dockerfile을 생성합니다. 이미지가 컨테이너가 되면 실질적으로 application이 구동되는 것입니다. 파일을 등록하기위해 환경 설정 위치로 이동하겠습니다. cd ~/environment/ VI명령어를 이용해 Dockerfile을 생성했습니다. vi Dockerfile FROM nginx:latest RUN echo ' test nginx web ..