aws (24) 썸네일형 리스트형 [Istio]Configuring istio-ingressgateway with AWS NLB AWS Load Balancer Controller AnnotationsAWS EKS Network Load BalancingIstio Ingress Gateway using Network Load Balancer on EKS개요목표: istio-ingressgateway의 로드밸런서를 CLB에서 NLB로 변경배경: Istio Helm Chart 설치 시 기본적으로 istio-ingressgateway는 AWS CLB로 설정됨주의사항교차 영역 로드밸런싱을 활성화해야 함AWS NLB는 Kubernetes에서 Alpha 기능으로, 프로덕션 환경에서 사용 시 주의 필요Kubernetes Bug #69264로 인해, 동일한 영역에서 Istio를 실행하는 두 개 이상의 Kubernetes 클러스터에서 AWS NL.. [Istio]Configuring istio-ingressgateway with AWS ALB 개요이 설정은 AWS EKS(Elastic Kubernetes Service)에서 Istio의 인그레스 게이트웨이를 AWS Application Load Balancer(ALB)와 함께 사용하는 방법을 설명합니다. 이를 통해 AWS WAF 같은 ALB 전용 서비스를 활용할 수 있습니다.전제 조건AWS LoadBalancer Controller가 클러스터에 설치되어 있어야 합니다.설정 단계1. Service Type 변경기본적으로 Istio Ingress Gateway는 LoadBalancer 타입의 서비스로 설정되어 있어 Classic Load Balancer(CLB)가 자동으로 생성됩니다. ALB를 사용하기 위해 서비스 타입을 NodePort로 변경해야 합니다.istio-gateway Helm 차트의 .. [Pulumi]Create AWS Network: NAT, RouteTable, IGW, VPCE pulumi aws api: https://www.pulumi.com/registry/packages/aws/ github: https://github.com/dewble/pulumi-aws-network/tree/v1.0.0 2024.04.07 - [IaC/Pulumi] - [Pulumi]Create AWS Network:VPC, Subnet, Security Group 위 내용에 이어 AWS NAT, RouteTable, IGW, VPCE를 생성하는 Pulumi 코드를 작성합니다. Architecture 💡기본 라우팅 테이블 설정은 배포 후 수동으로 변경(jeff-route-default)했습니다. Create NAT Gateway NAT 게이트웨이는 프라이빗 서브넷 내의 인스턴스가 인터넷이나 다른 .. [Pulumi]Create AWS Network:VPC, Subnet, Security Group pulumi aws api: https://www.pulumi.com/registry/packages/aws/ github: https://github.com/dewble/pulumi-aws-network/tree/v1.0.0 이 글은 IaC 도구인 Pulumi를 사용하여 AWS에 네트워크 리소스를 구축하는 방법을 안내합니다. 1편에서는 VPC, Subnet, Security Group를 생성하고 2편에서 NAT, RouteTable, IGW, VPCE를 생성하게 됩니다. 완성 된 네트워크 구조는 아래 Architecture 에서 확인할 수 있으며 필요한 경우 환경에 맞게 내용을 수정하여 사용할 수 있습니다. Architecture 💡기본 라우팅 테이블 설정은 배포 후 수동으로 변경(jeff-route-.. [S3]초당 쿼리 수 제한(QPS Limit)을 극복하고 성능을 향상시키는 방법 문제 특정 이벤트로 인해 사용자들이 몰리는 현상이 발생하면서 S3 버킷에 대한 요청이 급증했습니다. 이 예기치 못한 트래픽 증가로 인해 S3의 초당 쿼리 수 제한(QPS Limit)에 걸려 많은 파일들이 업로드되지 못하는 문제가 발생했습니다. S3 초당 쿼리 수 제한에 대한 이해 Amazon S3는 각 접두사(prefix) 당 3,500개의 PUT/COPY/POST/DELETE와 5,500개의 GET/HEAD 요청을 처리할 수 있는 높은 요청 빈도로 설계되어 자동 확장됩니다. 이 기본 성능은 S3의 동적 최적화와 확장 능력을 바탕으로 합니다. 그러나, 오늘과 같이 대규모 이벤트가 발생하여 요청이 급증하면, 시스템은 일시적으로 503 에러를 발생시킬 수 있으며, 이는 S3가 새로운 요청 빈도에 맞게 조정되.. [Terraform]상태 저장소 설정하는 방법(Backend) Terraform이 작업을 수행하면서 인프라의 현재 상태를 추적하기 위한 상태 파일 (terraform.tfstate)을 생성하게 되는데, 이 상태 파일의 관리 방식에 따라 로컬 상태(Locate State)와 원격 상태(Remote State)로 구분됩니다. Locate State, Remote State 차이점 Local State 정의: Terraform이 리소스를 관리할 때 기본적으로 사용하는 상태 저장 방식입니다. 파일: terraform.tfstate - 이 파일은 Terraform이 관리하는 리소스의 현재 상태를 JSON 형식으로 저장합니다. 특징: - 로컬 시스템에 상태 정보가 저장됩니다. - 팀원 간 상태 공유가 어려울 수 있습니다. - 로컬 저장소가 손실될 경우 상태 정보도 손실될 위험.. [Terraform]반복문(For)을 사용하여 resource 작성하는 방법 Terraform의 반복문(Loops) 기능은 기본적인 코드 구성을 최소화하면서 다양한 리소스를 생성하거나 관리할 때 유용합니다. 기본 문법 핵심 개념 Input Collection: for 키워드 뒤에 오는 컬렉션은 반복을 수행할 대상이 됩니다. Output Expression: 콜론(:) 뒤의 표현식은 각 반복마다의 결과를 결정합니다. Condition: if 키워드를 사용하여 조건을 지정할 수 있습니다. 이 조건에 맞는 항목만 결과로 포함됩니다. Input Types A for expression's input (given after the in keyword) can be a list a set a tuple a map an object. Lists & Sets [for in : if ] Exam.. [Terraform]조건문(Conditional)을 사용하여 resource 작성하는 방법 조건부 표현식(Conditional Expression)의 이해 조건부 표현식은 "조건 ? 참일 경우의 값 : 거짓일 경우의 값"의 형태로 사용됩니다. 이는 프로그래밍 언어에서 자주 볼 수 있는 삼항 연산자와 동일한 형태입니다. 이런 식으로 Terraform에서는 변수나 리소스의 값을 동적으로 결정할 수 있습니다. 왜 조건부 표현식이 필요한가? 인프라의 설정이나 배포 과정에서 모든 상황에 동일한 설정을 사용하는 것은 비효율적입니다. 예를 들면, 개발 환경과 실제 환경에서는 다른 설정이 필요할 수 있습니다. 이런 다양한 상황에 대응하기 위해 동적으로 리소스나 출력 값을 결정하는 것이 필요하고, 이때 조건부 표현식이 유용하게 사용됩니다. var 옵션으로 변수 재정의 tf apply -var="변수명=값" 형.. 이전 1 2 3 다음