CloudEngineering (AWS)
-
Amazon ECR 와 PrivateLinkCloudEngineering (AWS)/EKS 2022. 2. 12. 19:37
"우리 Onprem에 있는 Jenkins 서버에서 ECR을 접근해야 하는데 접근이 안되네요 왜 그런 거죠?" 이 고객사는 Jenkins 서버를 VPN이 연결되어 있는 Onprem에 위치해 놓았다. 그리고 외부 통신은 제한을 해 둔 것이다. 외부 통신이 제한된 환경에서 왜 ECR에 접근되지 않을까? ECR 접근 ECR에 대해 Docker 클라이언트를 인증할 때의 커맨드이다. aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin ************.dkr.ecr.ap-northeast-2.amazonaws.com 위의 커맨드 중 ****. dkr.ecr.ap-northeast-2.am..
-
AWS EventBridge을 이용한 보안감사CloudEngineering (AWS)/Security 2022. 2. 7. 22:35
액세스 키 유출로 인해 계정이 탈취된 경험을 겪은 회사 혹은 개인이 생각보다 많을 것이다. 계정을 탈취하여 과도한 스펙을 가진 EC2를 생성하여 채굴을 한다거나 정말 악의적인 목적으로 리소스를 모두 지운 뒤 금전을 요구한다거나 하는 일이 발생하곤 한다. 과스펙의 EC2로 인한 과금은 내용 증명만 잘한다면 한 번쯤은 AWS에서 구제를 해줄 수는 있다. 하지만 리소스를 모두 지워버린다면 정말 답이 없는 상황이다. 이를 예방하기 위해 가장 중요한 것은 기본적인 보안이나 AWS Config 혹은 CloudTrail와 EventBridge를 통해 실시간으로 보안 감사를 적용할 수 있다. AWS Config AWS Config 서비스는 리전에 종속되어 주로 사용하는 리전에 개별로 적용할 때 유용하다. Config의..
-
Cluster Autoscaler (CA)CloudEngineering (AWS)/EKS 2021. 12. 3. 11:32
AWS EKS를 사용 중에 있으니, 리소스가 부족하면 자동확장이 되는 것이 맞죠?라는 질문을 받았다. 아니다. EKS 클러스터는 클러스터 내부의 상황에 자동으로 대처해주지 않는다. 이전 글에서 노드 그룹에는 pod 수에 제한이 있다고 했다. pod 수가 초과되어 스케줄링되지 못한 상황과 클러스터에 CPU / Memory 자원이 부족하여 pending상태일 경우 이럴 때는 여분의 노드가 필요할 것이다. Cluster Autoscaler - Amazon EKS Cluster Autoscaler Kubernetes Cluster Autoscaler는 포드가 실패하거나 다른 노드로 다시 예약될 때 클러스터의 노드 수를 자동으로 조정합니다. Cluster Autoscaler는 일반적으로 클러스터에 배포로 설치됩니..
-
EKS 환경에서 kubeconfig 적용하기CloudEngineering (AWS)/EKS 2021. 11. 5. 21:24
개요 EKS의 사용률이 높아지면서 운영자의 입장에서는 그만큼 관리해야 할 클러스터가 많아질 것이다. EKS 기본 환경 Setting부터 여러 개의 클러스터 접근 방법에 대해 알아보려 한다. 쿠버네티스는 kubectl에 대한 인증정보를 kubeconfig라는 yaml파일에 저장한다. EKS 클러스터는 어떻게 접근을 하는지, 어떻게 인증을 받아오는지 알아보자. Kubeconfig EKS 클러스터에 접근 가능한 kubeconfig파일을 생성하는 것은 간단하다. aws command 한 줄이면 인증 정보를 kubeconfig 파일에 저장할 수 있다. aws eks --region update-kubeconfig --name EKS에 인증을 받아오는 구조는 어떤 방식일까? EKS 클러스터의 세부 정보 탭에 API..
-
Custom AMI 로 EKS NodeGroup 배포CloudEngineering (AWS)/EKS 2021. 9. 4. 16:15
개요 EKS NodeGroup에 Custom AMI를 배포하는 법을 알아보겠다. EKS NodeGroup 즉, EC2에 각 보안 요소를 적용하거나 에이전트를 설치하여 Golden Image로 운영을 필요로 하는 분들이 많을 것이다. EKS NodeGroup은 기본적으로 AutoScaling이 적용되어 있기 때문에 서버가 Scale IN/OUT 될 때마다 보안 요소를 적용하고 에이전트를 일일이 설치할 수는 없을 것이다. Custom AMI 생성 노드 그룹에 적용할 Custom AMI는 EKS가 운영되는 클러스터의 버전에 맞는 이미지를 기반으로 생성해야한다. 또한, EKS 클러스터는 주기적으로 버전 업그레이드가 필요하다. 이때 노드 그룹(Data Plane) 또한 버전을 함께 변경해 줘야 한다. Custom..
-
EC2 메타데이터 서비스 (IMDS)CloudEngineering (AWS)/EC2 2021. 8. 22. 18:14
개요 운영을 하면서 인스턴스 메타데이터가 필요할 때가 있다. 물론 AWS 콘솔상에 인스턴스의 정보는 확인이 가능하지만 모니터링 에이전트나 특정 애플리케이션에서 참조를 하는 경우가 있다. 특정 고객사에서 모니터링 에이전트에서 인스턴스 정보를 전달하지 못하는 현상이 있었다. 다른 데이터는 모두 긁어가지만, 인스턴스 id와 같은 정보를 못 긁어 가는 것 같아 확인해봤다. IMDS 지원 방식 인스턴스 메타데이터 서비스(IMDS)는 인스턴스의 코드가 인스턴스 메타데이터에 안전하게 액세스 하기 위해 사용하는 온 인스턴스 구성 요소라고 한다. IMDS에는 버전 1, 2로 나뉘는데 IMDSv1의 경우 요청/응답 형식이었다면 IMDSv2는 세션 지향 요청을 사용하여 기존의 v1의 취약성을 개선한 듯 하다. IMDSv1 ..
-
AWS 전용 호스트(Dedicated Host) RecoveryCloudEngineering (AWS)/EC2 2021. 7. 29. 15:15
개요 Dedicated Host(전용 호스트)를 운영하던 고객사에서 EC2가 하나씩 상태 검사 실패하더니 모든 EC2에 상태 검사 실패가 뜨는 장애가 발생했다. DH(Dedicated Host) 대시보드의 상태는 Under assessment를 나타냈고 CaseOpen을 진행하던 중 한 시간이 조금 넘게 흘렀을 때 EC2의 상태는 정상적으로 작동했다. 서비스 장애 시간이 한시간 넘게 지속된 것이다. AWS 사용자 입장에서는 할 수 있는 것이 아무것도 없다. 그렇다면 비싼 돈을 내고 Dedicated Host를 사용하는 이유가 없지 않은가? 이와 같은 장애에 대처하는 방법은 정말 없을까? 일단 Host Recovery를 설정해야 겠다. 설정 방법은 AWS 공식문서를 참고하여 설정하도록 하자. Host re..
-
EKS 환경에서 RBAC 적용하기CloudEngineering (AWS)/EKS 2021. 7. 21. 17:44
개요 EKS는 사용자가 IAM 사용자를 인증받아 대상 클러스터에 kubectl 명령어로 접근할 수 있도록 설정한다. 하지만 이 IAM은 정책 기반으로 AWS 서비스에 대한 접근 제어만 가능할 것이다. kubernetes의 리소스를 제한하고 싶을 경우에는 어떻게 해야 할까? Cluster 인증 EKS Cluster에 인증받는 순서가 아래 그림에 아주 자세하게 나와있다. 그림을 보고 테스트를 따라 해 본다면 쉽게 이해가 갈 것이다. 요약하자면 IAM과 kubernetes의 user 혹은 group을 aws-auth의 ConfigMap과 묶어 인증받는 순서이다. 같이 적용해 보도록 하자. AWS는 EKS 클러스터를 생성할 때의 IAM을 클러스터 master 계정으로 생성한다. master 계정 외에 다른 계정..