전체 글 518

SAA

[1] S3Global Accelerator :TCP,UDPCloudFront :HTTP 프로토콜S3 버킷 :Amazon S3에 저장된 객체에 대한 컨테이너, 버킷에 저장할 수 있는 객체 수에는 제한이 없음. ACL, 버킷정책 또는 둘다를 통해 버킷 및 객체에 퍼블릭 액세스 권한이 부여S3 버전관리, 버킷에 버전관리, MFA DeleteS3 Transfer Acceleration :클라이언트와 S3 버킷 간의 장거리 파일 전송을 파일을 빠르고 쉽고 안전하게 전송할 수 있는 버킷 기능. 전 세계에서 S3 버킷으로 전송 속도를 최적화. Amazon CloudFront에서 전 세계에 분산된 엣지 로케이션을 활용S3 File Gateway• 하이브리드 클라우드 스토리지 솔루션인 AWS Storage Gatewa..

[54] aws s3 ls 시 (환경변수 / credentials / IMDS slot)

[0]aws s3 ls 검색시 AWS SDK / CLI 는 1. 환경변수 2. ~/.aws/credentials 3. IMDS (Instance Role) 로 크레덴셜을 탐색하기 시작한다 - [1]Environment Variables-> 하드코딩 키 보통IAM User Access KeySTS 임시 키CI/CD 파이프라인 키AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN # (옵션, STS일 경우)EX)export AWS_ACCESS_KEY_ID=AKIA....export AWS_SECRET_ACCESS_KEY=abcd....저장 위치 : OS 환경변수수명 : 키 만료까지 (회전x)보안 x우선순위 1순위 - [2]로컬 자격증명 파일~/.aws/cr..

[53] AWS APP mesh

k8s 에코시스템으로 제공되는 OSS ------------------------ 서비스 메시MSA 아키텍쳐로 구성된 앱에서 분산된 서비스 간 통신 처리를 지원하는 기술 -------------------------- MSA에서는- HTTP 통신에서는 안정된 통신 보증x - 접근 지연, 연결 에러 발생- 신뢰할 수 없는 네트워크 공간에서는 요청의 안정성 및 정당성 검증 통신이 발생하는 MS간 - 재시도 처리, 인증 허가- 원인 특정을 위한 로깅- 추적필요 -> 프록시 라는 컴포넌트(container)를 준비하고 서비스에서 통신이 발생할 때마다 이 컨테이너를 경유해서 통신 -> 컨테이너와 프로세스는 하나씩만 매핑되므로, 여기에 사이드카로 이걸 넣는다 - 이 사이드카로 구성된 프록시가 OSS인 EnvoyE..

[52] "EC2 Launch Type" vs "ECS Fargate"

- [0] EC2 Launch TypeFargate실행 호스트EC2 직접 운영AWS가 운영노드 관리사용자AWS가 함OS 접근가능불가비용 구조인스턴스 기준Task 기준Kubernetes 비유Self-managed nodesServerless nodes - [1] - [2]스케쥴링 흐름 - [3]런치타입은 인프라 레벨 제어 가능- SSH 접속- 로그 파일 확인- docker ps- tcpdump- sysctl 튜닝 FARGATE는 컨테이너만 존재하는 공중부양 실행 환경 - [4]네트워크ECS Launch Typebridge / host / awsvpc : ENI 공유 / 분리 선택 FARGATEawsvpc onlyTASK = ENI 1개 / 그래서 Pod처럼 동작 - [5]리소스 할당 - [6]과금 기준인스..

[51] EKS console view가 proxy 쓰는 이유

[ Browser ] │ │ HTTPS ▼[ AWS Console ] │ │ IAM Auth │ Token Mint ▼[ EKS Console Proxy ] │ │ K8s API Call ▼[ Kubernetes API Server ] EKS Console View가 proxy 쓰는 이유 proxy 는 예를들어 8080 포트로 들어온 웹 서버를 8081포트 웹서버 1 8082 포트 웹서버 2 (이중화) 중 active로 보내는 이런게 프록시라고 알고있어 여기서의 proxy 맥락과 쓰는 이유에 대해 답해줘 - [1]일반 ProxyClient -> Proxy -> BE ServerexNginx reverse proxyALBHAProxy ..

[50] ECS Role VS EKS Role

[0]ECS IAM Role-> Task Execution Role (로그, ECR Pull) EKS IAM Rle-> EKS Cluster Role + Node Role혹은 Pod단위 IRSA로 분리 * EKS는 실행 주체가 더 많아서 Role도 쪼개짐 * [1]EKS Cluster RoleControl Plane이 Assume -> AWS 리소스 생성 및 관리 예시- Node Group 생성 관리- ELB / NLB 생성- Security Group 관리- ENI 관리- CloudWatch 로그 전송 즉 클러스터 인프라 오케스트레이션 대표 정책AmazonEKSClusterPolicyㄴ ec2:CreateSecurityGroupㄴ ec2:DescribeInstancesㄴ elasticloadbalanc..

[49] IAM <-> RBAC (EKS ACCESS ENTRY)

* enable_cluster_creator_admin_permissions = true클러스터 내부에서 이 옵션 넣어서 저 코드는 굳이 필요가 없다 그런데 이건 terraform(k8s provider)로 접근 가능해도AWS 콘솔 EKS 화면에서 k8s resource 보려면 별도 IAM 권한이 필요했다 Terraform CLI ↓k8s provider ↓Kubernetes API Server Browser ↓AWS Console Backend ↓AWS IAM 인증 ↓EKS Access API ↓Kubernetes API Proxy [0]IAM 주체를 k8s RBAC 권한에 매핑하는 새로운 방법- 예전에는 aws-auth ConfigMap을 직접 수정했는데- 지금은 AWS API ..

[48] cluster_enpoint_public_access

[1]cluster_endpoint_public_access = true서비스(LB) 노출 설정이 아니다EKS API서버(Control Plane) 접속 경로 설정 - [2]어떤 엔드포인트?EKS 만들면 생기는 -> 관리 Plane Endpointhttps://XXXXXXXX.gr7.ap-northeast-2.eks.amazonaws.com이건- Local PC kubectl- Terraform k8s provder- ArgoCD- CI/CD- kubelet(Node)이 접속하는 K8s API 서버 주소 인터넷에서 접속 가능 - [3]false면?VPC internel / Bastion / VPN / DX로 접속해야 한다 - [4]enable_cluster_creator_admin_permissions이..

[46] deployment 이미지

image = "nginxinc/nginx-unprivileged:stable" nginxinc라는 저장소에서,nginx-unprivileged 이미지를stable 태그 버전으로 가져와서 실행해라 --------------------------------이미지는 항상 이 구조를 가짐[레지스트리/] 리포지토리/태그docker.io/nginxinc/nginx-unprivileged:stable 도커허브 레지스트리 / 조직,리포지토리 네임스페이스 / 이미지 이름 / 태그(버전)------------------------------- 이 이미지가 하는 일Deployment가 Pod를 만들 때 흐름 1. Node(EC2)가 선택됨2. kubelet이 컨테이너 실행 준비3. container runtime(cont..