본문 바로가기

aws15

[AWS/Route53] Route53 장애조치 레코드 생성 및 테스트 AWS Route53 도메인 호스팅 영역에는 장애조치 레코드를 제공한다 (추가 - 기존 DNS에도 장애조치 레코드의 기능들은 제공하고있다.) 장애조치 레코드란 동일한 기능을 수행하는 2개 이상의 리소스가 있는 경우, 리소스들의 상태를 확인하고 정상적인 리소스만을 사용하여 DNS 쿼리에 응답하도록 제공하는 방식이다 (단 이 방법의 경우 라우팅이 변경되는 것으로 완전 무중단은 어렵다.) 본 포스팅에서는 Route53 장애조치 레코드를 생성하고 이를 테스트해본다. 이 때 failover가 잘 되었는지 확인하기 위해 Primary와 Secondary를 각각 다른 서비스와 연결시킨다 (일반적으로는 동일 서비스에 대해 장애조치를 구성함). 장애조치 레코드의 상태에따라 Route53은 다음과 같은 작업을 수행함을 테.. 2022. 5. 13.
[EKS/Error] aws-node 동작 안됨 문제 (EKS Node NotReady) AWS EKS에 생성된 Pod들에는 EKS Cluster 생성시 선택하였던 Subnet의 IP들이 할당되며 이를 VPC 네트워킹이라고 한다. 이전 포스팅에서 EKS가 이러한 동작을 할 수 있도록 VPC_CNI 플러그인 설정을 해주었다. 이 VPC_CNI는 EKS kube-system 네임스페이스에서 aws-node라는 이름의 DaemonSet 형태로 배포되어있다. 이 aws-node가 정상적으로 동작되지 않으면 노드그룹의 인스턴스들이 모두 NotReady 상태가 된다 (Pod가 생성될 공간이 존재하지 않게 됨). AWS에서는 다음 글과 같이 aws-node가 정상 동작하지 않을 때 확인해야할 부분 (서브넷 내 가용 IP 수, CNI)을 알려주고있다 (https://aws.amazon.com/ko/prem.. 2022. 5. 5.
[AWS/EKS] AWS IAM 사용자에 대한 RBAC (Role-based Access Control) 설정하기 AWS에서 각 IAM 사용자, 역할마다 권한을 달리하듯, 쿠버네티스에는 리소스에 대한 작업을 제어하는 RBAC (Role-based Access Control)를 제공한다. 최초 EKS 클러스터가 생성되면 클러스터 생성을 수행한 IAM 계정에만 master 권한을 부여하여 EKS Cluster 사용이 가능하도록 한다. 이 외의 IAM 사용자 또는 역할은 EKS Cluster 접근, api 호출이 불가능하다 (해당 IAM에 권한을 부여해도 불가능함). 이를 해결하기 위해서는 적절한 권한이 부여된 IAM을 생성하고, 쿠버네티스의 RBAC와의 연결이 필요하다. 본 포스팅의 순서는 다음과 같으며, AWS IAM 사용자/역할은 이미 존재하는것으로 가정한다 (본 포스팅에서는 IAM 사용자를 기준으로 테스트한다). .. 2022. 4. 11.
[CodeDeploy/Error] 'ApplicationStop' hook error (ignore application stop failures로 해결) AWS의 배포 서비스 CodeDeploy로 배포를 하기위해서는 배포 애플리케이션 정의 문서(appspec.yaml or appspec.json)를 작성하게되며, 배포 대상 (컴퓨팅 플랫폼) 에따라 hook을 추가하여 해당 단계에 지정 스크립트를 구동시키는 경우가 존재한다. 예를들어 배포 대상 (컴퓨팅 플랫폼)이 EC2인 경우, appspec에 ApplicationStop을 두어 배포 전 기존 애플리케이션을 안전하게 종료하거나 배포 준비 중에 현재 설치된 패키지를 제거하는 스크립트를 실행시킬 수 있다. ApplicationStop hook이 사용하는 스크립트의 수정-배포를 반복하다보면 ApplicationStop에서 오류가 발생할 수 있다. 분명 직전 배포 ApplicstionStop 용 스크립트에서 문제.. 2022. 4. 3.