1. ExternalDNS 란?external-dns는 Kubernetes 클러스터에서 생성되는 service나 ingress 리소스를 기반으로 외부 DNS 레코드를 자동으로 생성 및 관리해주는 도구이다.즉, Kubernetes 클러스터가 실행 중인 환경에서 DNS를 자동화하는 역할을 한다. 이 도구를 사용하면 Kubernetes 애플리케이션을 배포할 때 외부 DNS 서비스(ex. Route53)에 수동으로 레코드를 추가할 필요 없이, DNS 레코드가 자동으로 업데이트된다.2. ExternalDNS의 주요 기능자동화된 DNS 관리: Kubernetes 클러스터에 새로운 서비스나 인그레스 리소스를 배포할 때 해당 리소스에 대한 DNS 레코드를 자동으로 생성하고 관리한다.다양한 DNS 제공자 지원: AWS ..
전체 글
0. 실습 아키텍처User ⮕ S3 Static Website: 사용자는 브라우저에서 웹 애플리케이션을 열면, S3 버킷에 저장된 정적 웹사이트가 로드된다.S3 Static Website ⮕ Amazon API Gateway: 웹 애플리케이션의 JavaScript 코드가 데이터를 저장하거나 조회할 때, Amazon API Gateway로 API 요청을 보낸다. Amazon API Gateway ⮕ Lambda: API Gateway는 사용자의 요청을 받아 Lambda 함수로 전달한다. Lambda ⮕ DynamoDB: Lambda 함수는 DynamoDB와 직접 상호작용하여 데이터를 저장하거나 조회한다. 그 후, Lambda 함수는 처리된 결과를 API Gateway를 통해 다시 사용자에게 반환한다.1. ..
1. Ingress 란?Amazon EKS에서 Ingress는 클러스터 외부에서 내부 서비스로 HTTP 및 HTTPS 라우팅을 관리하는데 사용한다.Ingress는 단순히 서비스 앞에 배치된 로드 밸런서 역할을 하며, 보다 복잡한 HTTP 및 HTTPS 라우팅을 지원한다.Ingress를 사용하면 경로 기반 라우팅, 호스트 기반 라우팅, TLS/SSL 종료 등의 기능을 활용할 수 있다.EKS에서는 여러 Ingress Controller를 사용할 수 있으며, 일반적으로 AWS Load Balancer Controller, NGINX Ingress Controller 등이 있다.2. AWS Load Balancer Controller2-1. AWS Load Balancer Controller이란?AWS Load..
1. IAM 이란?AWS IAM (Identity and Access Management)는 AWS에서 제공하는 보안 관리 서비스이다.IAM을 사용하면 AWS 리소스에 대한 액세스를 안전하게 관리할 수 있다.사용자, 그룹, 역할 및 정책을 사용하여 AWS 계정 내의 액세스를 제어한다.2. IAM 구성1) User (사용자)실제 AWS를 사용하는 사람 또는 어플리케이션을 의미한다.각 사용자는 고유한 자격 증명(액세스 키, 비밀번호 등)을 가지며, 이를 통해 AWS 리소스에 액세스할 수 있다.2) Group (그룹)사용자의 집합이다.여러 사용자를 그룹으로 묶어 공통된 권한을 할당할 수 있다.그룹을 사용하면 사용자 관리가 더 쉬워지며, 개별 사용자가 아닌 그룹 단위로 권한을 설정할 수 있다.3) Role (역..
1. X-Forwarded-For 란?주로 프록시 서버나 로드 밸런서가 원본 클라이언트의 IP 주소를 서버에 전달할 때 사용하는 HTTP 헤더 중 하나로, 클라이언트의 IP 주소를 식별하는 데 사용된다.클라이언트-서버의 중간에 프록시 서버나 로드 밸런서가 있을 경우 서버는 클라이언트의 IP 대신 프록시 서버나 로드 밸런서의 IP 주소를 보게되어 클라이언트의 실제 IP 주소를 알기 어렵다. 이때 X-Forwarded-For 헤더를 사용하여 클라이언트의 실제 IP 주소를 확인할 수 있다.클라이언트의 IP 주소 등과 같은 민감한 개인정보를 노출 시킴으로 이 헤더를 사용할 때에는 사용자의 프라이버시를 주의해야한다.웹 서버는 X-Forwarded-For 헤더 값을 사용하여 클라이언트의 실제 IP 주소를 얻을 수 ..
1. Landing Zone 이란?Landing Zone이란 용어 그대로 비행기나 우주선이 안전하게 착륙할 수 있는 구역을 의미한다.이를 클라우드 환경에 대입하면, Landing Zone은 안전하고 효율적인 클라우드 환경 구성을 위해 모범 아키텍처와 구성 방안을 제시하며, 이를 통해 기업의 워크로드가 성공적으로 클라우드 환경에 배포되고 운영되도록 돕는다.즉, 클라우드 자원을 체계적이고 효율적으로 관리하며 조직의 클라우드 도입을 가속화하는데 도움이 되는 프레임워크라고 할 수 있다.2. Azure Landing Zone 이란?Azure Landing Zone은 8개의 디자인 영역에서 주요 디자인 원칙을 따르는 클라우드 환경이다.이러한 디자인 원칙을 통해 확장 가능하고 안전한 Azure 환경을 설계하고 구축할..
1. Azure Virtual WAN 이란?Azure Virtual WAN은 네트워킹, 보안 및 라우팅 기능을 결합하여 단일 운영 인터페이스를 제공하는 네트워킹 서비스이다.Azure Virtual WAN은 분기(VPN/SD-WAN 디바이스), 사용자(Azure VPN/OpenVPN/IKEv2 클라이언트), ExpressRoute 회로 및 가상 네트워크를 위한 확장 및 성능이 기본 제공되는 허브 및 스포크 아키텍처이다. Virtual Hub란?Microsoft에서 관리하는 가상 네트워크이다.Virtual Hub은 표준 Virtual WAN에서 Vnet, ER, VPN 등을 풀 메시로 연결한다.2. Azure Virtual WAN 구성 및 테스트2-1. 사전 구성테스트용 vnet 2개 생성dev-vnet: ..
이전글: https://lilylabs.tistory.com/48 Secret 데이터 암호화를 위해서는 EncryptionConfiguration Object 생성과 kube-apiserver 설정 작업이 필요합니다. 자세한 내용은 하기 본문에 정리하였습니다. [Kubernetes] Secret 생성 및 조회1. Secret 이란?Secret은 암호, 토큰 또는 키와 같은 중요한 데이터를 포함하는 오브젝트이다.Secret은 기본적으로 ETCD에 저장되며, K8s API Server를 통해 파드 내 컨테이너로 전달된다. 기본적으로 API 서lilylabs.tistory.com 1. EncryptionConfiguration Object 생성1-1. EncryptionConfiguration란?이전글: ht..
1. Secret 이란?Secret은 암호, 토큰 또는 키와 같은 중요한 데이터를 포함하는 오브젝트이다.Secret은 기본적으로 ETCD에 저장되며, K8s API Server를 통해 파드 내 컨테이너로 전달된다. 기본적으로 API 서버의 기본 데이터 저장소인 ETCD에 암호화되지 않은 상태로 저장된다.이에, API 또는 ETCD에 접근할 수 있는 모든 사용자는 시크릿을 조회하거나 수정할 수 있다.2. Secret 생성 및 조회2-1. Secret 생성생성한 Secret 값을 확인해 보면 Secret은 base64로 인코딩만 되고 암호화되지 않는 것을 확인할 수 있다.# Secret 생성kubectl create secret generic secret01 --from-literal username=adm..
1. ConfigMap, Secret 이란?ConfigMap, Secret은 Kubernetes 클러스터의 기본 개체로서, 파드 내에서 참조할 환경변수를 생성하는 리소스이다.각 리소스마다 특성과 사용 목적이 다르다.Kubernetes RBAC에 연결되어 승인된 사용자와 애플리케이션만 ConfigMap, Secret의 정보를 읽을 수 있다.ConfigMap 소개Secret 소개1-1. ConfigMapConfigMap은 키-값 쌍으로 기밀이 아닌 데이터를 저장하는 데 사용하는 API 오브젝트이다. 파드는 볼륨에서 환경 변수, 커맨드-라인 인수 또는 구성 파일로 ConfigMap을 사용할 수 있다.ConfigMap은 데이터를 평문으로 저장하며 보안 또는 암호화를 제공하지 않는다.저장하려는 데이터가 기밀인 경..