본문 바로가기

전체 글54

[AEWS2] 6-3. EKS IRSA & Pod Identity ✍ Posted by Immersive Builder Seong IRSA(IAM Role for Service Account) 파드 내 어플리케이션 컨테이너가 IAM 역할을 사용할 수 있게 해주는 기능입니다. 파드가 특정 IAM 역할로 Assume할 때 토큰을 AWS에 전송하고, AWS는 토큰과 EKS IdP를 통해 해당 IAM 역할을 사용할 수 있는지 검증합니다. 파드(어플리케이션)에 Service Account를 할당하고 IAM Role을 RoleBinding하여 구현합니다. 파드에 Access Key ID를 하드코딩하지 않아 보안상 바람직하고, 노드의 인스턴스 프로파일을 공유하지 않으므로 최소 권한 원칙을 만족합니다. * Service Account Token Volume Projection - 서.. 2024. 4. 13.
[AEWS2] 6-2. EKS Authentication & Authorization ✍ Posted by Immersive Builder Seong 1. Kubernetes Authentication & Authorization Service Account 어플리케이션 파드에서 AWS 리소스에 접근하기 위해 사용하는 인증정보입니다. 파드마다 별도의 Service Account를 할당하고 IAM Role을 바인딩해서 필요한 리소스에만 접근하도록 할 수 있습니다. API Server 접근 과정 kubectl, HTTP/HTTPS, CLI 등 다양한 방법으로 API Server에 접근이 가능합니다. Authentication → Authorizaion -> Admission Control 순으로 진행됩니다. Authentication 인증은 사용자를 식별하고 신원을 증명하는 프로세스입니다. .. 2024. 4. 13.
[AEWS2] 6-1. JWT 란? ✍ Posted by Immersive Builder Seong JWT(Json Web Token) Json 포맷의 데이터를 네트워크를 통해서 서로 다른 장치끼리 안전하게 전송하기 위한 방법입니다. Header, Payload(claims), Signature 3가지 구성요소로 이루어집니다. Header에는 타입(JWT)과 Signature에 적용된 암호화 알고리즘이 표기됩니다. ex) HS256 Payload 내에 Json 포맷의 데이터가 담깁니다. Signature는 Payload의 무결성을 검증하는 고유한 값입니다. Header, Payload, Signature를 각각 Base64 방식으로 인코딩하여 '.' 으로 연결한 텍스트가 바로 JWT입니다. Signature 클라이언트 또는 서버 단에서 J.. 2024. 4. 13.
[AEWS2] 5-2. Karpenter ✍ Posted by Immersive Builder Seong Karpenter 란? Karpenter는 AWS로 구축된 오픈 소스 고성능 쿠버네티스 클러스터 오토스케일러입니다. 어플리케이션 워크로드의 변화에 대응하여 적절한 크기의 컴퓨팅 리소스를 신속하게 실행합니다. 그리고 클러스터의 컴퓨팅 리소스 공간을 자동으로 최적화하여 비용을 절감하고 성능을 개선합니다. 중간에 ASG 없이 동작하므로 CA와 비교하여 몇 초만에 컴퓨팅 리소스를 제공할 수 있는 점이 가장 큰 특징입니다. 작동 방식 Provisioning : 모니터링 ▶ 스케줄링 되지 않은 파드 발견 ▶ 스펙 평가 ▶ 생성 Deprovisioning : 모니터링 ▶ 비어있는 노드 발견 ▶ 제거 파드에 적합한 가장 저렴한 인스턴스로 증설됩니다. 자동.. 2024. 4. 7.
[AEWS2] 5-1. EKS AutoScaling ✍ Posted by Immersive Builder Seong HPA(Horizontal Pod Autoscaler) 파드의 수를 스케일 아웃하여 서비스 요청을 여러 파드로 분산시키는 방법입니다. 쿠버네티스의 HPA 컨트롤러는 주기적으로 메트릭스토어로부터 파드의 메트릭을 취득하며, 취득한 메트릭을 기반으로 필요한 파드 수를 계산하고, 레플리카셋 및 디플로이먼트 파드 수를 변경합니다. HPA가 동작하는 모습을 kube-ops-view와 그라파나를 통해 모니터링해봅시다. 반복 연산을 수행하는 php-apache 서버를 배포하여 접속합니다. # php-apache server 배포 $ curl -s -O https://raw.githubusercontent.com/kubernetes/website/main/.. 2024. 4. 7.
[AEWS2] 4-2. Prometheus & Grafana ✍ Posted by Immersive Builder Seong 1. Prometheus Stack Prometheus 란? 오픈 소스 기반의 시스템 모니터링 및 알람 도구입니다. 다차원 데이터 모델 : 시계열 데이터를 저장(TSDB)하며 다양한 차원에서 데이터를 쿼리하고 필터링할 수 있습니다. PromQL : Prometheus Query Language, 시계열 데이터베이스에서 데이터를 쿼리하고 분석하기 위한 언어입니다. 분산 저장소에 의존하지 않고, 단일 서버 노드가 자체적으로 동작합니다. Pull 모델 방식 : Prometheus 서버가 노드에 주기적으로 요청하여 데이터를 가져옵니다. 데이터 수집은 HTTP 요청으로 이루어집니다. 중계 게이트웨이 : 시계열 데이터를 전송함에 있어 송신자와 수신자 .. 2024. 3. 31.