본문 바로가기

스터디 이야기63

[AEWS] 4-2. Amazon EKS - Observability (Prometheus) 사전 준비 더보기 위와 같이 사전 준비가 필요합니다. 저번 글에서 설명했듯이, EKS를 배포하기 위한 VPC를 생성하고, Public Subnet, Private Subnet을 생성합니다. 그 후 EKS Cluster에 접근하기 위한 bastion EC2를 미리 생성합니다. 추가로, 지난번 실습 때 진행했었던 ExternalDNS와 AWS LB Controller, EBS csi driver 설치, gp3 스토리지 클래스 생성까지 해주셔야합니다. 이번 포스팅에는 이전에 포스팅했던 블로그 글 에서 많이 인용하였습니다. Prometheus Prometheus란? Prometheus는 SoundCloud에서 처음 개발된 오픈 소스 시스템 모니터링 및 알림 툴킷입니다. 2012년에 시작된 이후로 많은 회사와 조.. 2024. 3. 29.
[AEWS] 4-1. Amazon EKS - Observability(EKS Logging) 사전 준비 더보기 위와 같이 사전 준비가 필요합니다. 저번 글에서 설명했듯이, EKS를 배포하기 위한 VPC를 생성하고, Public Subnet, Private Subnet을 생성합니다. 그 후 EKS Cluster에 접근하기 위한 bastion EC2를 미리 생성합니다. 추가로, 지난번 실습 때 진행했었던 ExternalDNS와 AWS LB Controller, EBS csi driver 설치, gp3 스토리지 클래스 생성까지 해주셔야합니다. EKS Control Plane Logging Amazon EKS는 관리형 서비스로 AWS에서 관리하는 Contol Plane과 사용자가 관리하는 Data Plane이 있습니다. Data Plane일 경우 다양한 모니터링 시스템을 적용하여 logging을 할 수.. 2024. 3. 25.
[AEWS] 3-2. Amazon EKS - NodeGroup (ARM Instance, Spot Instance) 사전 준비 더보기 위와 같이 사전 준비가 필요합니다. 저번 글에서 설명했듯이, EKS를 배포하기 위한 VPC를 생성하고, Public Subnet, Private Subnet을 생성합니다. 그 후 EKS Cluster에 접근하기 위한 bastion EC2를 미리 생성합니다. Amazon EKS NodeGroup ChatGPT가 알려주는 Amazon EKS의 NodeGroup Amazon EKS의 Node Group은 EKS 클러스터 내에서 애플리케이션을 실행하는 데 사용되는 워커 노드(또는 서버)의 집합입니다. EKS를 사용하면 Kubernetes 애플리케이션을 AWS 클라우드 인프라상에서 쉽게 실행, 관리 및 확장할 수 있습니다. 즉, Worker Node로 사용할 EC2 Instance의 묶음이라고 .. 2024. 3. 21.
[AEWS] 3-1. Amazon EKS - Storage (EBS, EFS) 사전 준비 더보기 위와 같이 사전 준비가 필요합니다. 저번 글에서 설명했듯이, EKS를 배포하기 위한 VPC를 생성하고, Public Subnet, Private Subnet을 생성합니다. 그 후 EKS Cluster에 접근하기 위한 bastion EC2를 미리 생성합니다 Kubernetes Storage Pod는 stateful하게 관리되는 리소스가 아니고 상태가 없는(Stateless) 애플리케이션이기 때문에 영구 스토리지가 없으면 Pod가 충돌하거나 종료되고, Pod의 데이터는 손실됩니다. 하지만 DB나 여러가지 데이터를 담고 있는 컨테이너들을 Pod로 만들어야 할 때 그 데이터들을 영구적으로 보존되게 해야 합니다. Kubernetes에서 Volume이라는 형태의 Storage 리소스를 제공하는데,.. 2024. 3. 19.
[AEWS] 2-5. Amazon EKS Networking - ExternalDNS 사전 준비 더보기 위와 같이 사전 준비가 필요합니다. 저번 글에서 설명했듯이, EKS를 배포하기 위한 VPC를 생성하고, Public Subnet, Private Subnet을 생성합니다. 그 후 EKS Cluster에 접근하기 위한 bastion EC2를 미리 생성합니다. ExternalDNS ChatGPT가 알려주는 ExternalDNS Kubernetes 클러스터 내의 서비스나 Ingress 리소스가 변경될 때 자동으로 DNS 레코드를 생성하거나 업데이트하는 역할을 합니다. 즉, K8s Serivce나 Ingress 생성 시 도메인을 설정하면, AWS(Route 53), Azure(DNS), GCP(Cloud DNS)에 A 레코드(TXT 레코드)로 자동으로 생성 및 업데이트 해주는 service t.. 2024. 3. 14.
[AEWS] 2-4. Amazon EKS Networking - Ingress 사전 준비 더보기 위와 같이 사전 준비가 필요합니다. 저번 글에서 설명했듯이, EKS를 배포하기 위한 VPC를 생성하고, Public Subnet, Private Subnet을 생성합니다. 그 후 EKS Cluster에 접근하기 위한 bastion EC2를 미리 생성합니다. Ingress ChatGPT가 알려주는 Ingress Ingress는 클러스터 외부에서 내부의 서비스로 HTTP와 HTTPS 트래픽을 관리하는 방법을 제공하는 API 객체입니다. 즉, Ingress를 사용하면 외부 요청을 적절한 서비스로 라우팅 할 수 있으며, 단일 IP 주소를 통해 클러스터 내의 여러 서비스에 접근할 수 있게 됩니다. 이는 특히 웹 애플리케이션에 유용하며, 로드 밸런싱, SSL 종료, 이름 기반의 가상 호스팅 등을 .. 2024. 3. 13.
[AEWS] 2-3. Amazon EKS Networking - Service 사전 준비 더보기 위와 같이 사전 준비가 필요합니다. 저번 글에서 설명했듯이, EKS를 배포하기 위한 VPC를 생성하고, Public Subnet, Private Subnet을 생성합니다. 그 후 EKS Cluster에 접근하기 위한 bastion EC2를 미리 생성합니다. Kubernetes Service란? Kubernetes에서 Pod는 언제든지 다른 노드로 이동하거나 삭제될 수 있습니다. 즉, 상태를 유지하지 않습니다.(stateless) 이렇게 이동되거나 생성될 때마다 새로운 IP를 할당받게 됩니다. 이로 인해 Pod는 외부와 지속적으로 통신하기엔 어려움이 있습니다. Kubernetes Service는 Cluster내에서 Pod들을 외부와 통신할 수 있도록 고정적인 IP를 부여하고 애플리케이션을.. 2024. 3. 13.
[AEWS] 2-2. AWS EKS Networking - Node & Pod Network 사전 준비 더보기 위와 같이 사전 준비가 필요합니다. 저번 글에서 설명했듯이, EKS를 배포하기 위한 VPC를 생성하고, Public Subnet, Private Subnet을 생성합니다. 그 후 EKS Cluster에 접근하기 위한 bastion EC2를 미리 생성합니다. Node의 네트워크 정보 위의 그림은 worker node 1의 네트워크 구성도입니다. 현재 배포되어 있는 Pod 확인 kubectl get po -o wide -A 해당 명령어로 현재 Cluster에 배포되어 있는 모든 Pod들을 보겠습니다. kube-system 네임스페이스에 각 노드별로 aws-node, kube-proxy가 띄어져 있고 하나의 node에만 제외하고 coredns pod가 띄어져 있습니다. node별 ENI 확인.. 2024. 3. 12.
[AEWS] 2-1. Amazon EKS Networking - CNI 사전 준비 더보기 위와 같이 사전 준비가 필요합니다. 저번 글에서 설명했듯이, EKS를 배포하기 위한 VPC를 생성하고, Public Subnet, Private Subnet을 생성합니다. 그 후 EKS Cluster에 접근하기 위한 bastion EC2를 미리 생성합니다. AWS VPC CNI CNI란? ChatGPT가 알려주는 CNI 컨테이너 네트워킹을 위한 플러그인 기반의 표준입니다. Linux 컨테이너와 네트워크 네임스페이스를 연결하는 방법을 정의하며, 컨테이너가 네트워크에 연결될 때 필요한 인터페이스 생성, IP 주소 할당 등의 작업을 처리합니다. 즉, CNI는 Container Network Interface의 약자로 리눅스 컨테이너와 네트워크 네임스페이스를 연결하는 방법이며, 컨테이너 네트워.. 2024. 3. 12.
[AEWS] 1-3. terraform으로 EKS Cluster 배포하기 들어가며 eks cluster를 배포하는 방법에는 AWS managed console에서 직접 리소스를 클릭하면서 설정하여 배포하는 방법이 있고, eksctl, cloudformation, terraform 등의 방식이 있습니다. 이전 포스트에서 eksctl로 eks cluster를 배포하는 실습을 진행하였는데, 요즘 가장 많이 쓰는 IaC인 terraform을 통해 배포해보자! 싶은 생각이 들어 바로 진행해보았습니다. terraform 설치 먼저 테라폼을 설치해보겠습니다. Amazon Linux라는 전제하의 아래의 명령어로 설치해줍니다. 만약 다른 OS라면 공식문서를 참고해보세요! sudo yum install -y yum-utils sudo yum-config-manager --add-repo htt.. 2024. 3. 7.
728x90