Aws
AWS EC2 Instance Connect 사용 (Private Subnet 접근)
AWS EC2 Instance Connect 사용 (Private Subnet 접근)
2023.11.19Intro AWS VPC Private Subnet에 인스턴스를 위치시켰다면, 외부 인터넷 환경에서 접속은 불가능하다. Bastion Host를 사용해서 Public Subet에 위치한 인스턴스를 활용해서 터널링을 이용하는 것이 일반적이다. 하지만 Bastion Host로 사용하는 인스턴스 관리뿐만 아니라, 별도의 비용이 들기 때문에 항상 고민했었다. 그러던 와중에 EC2 Instance Connect를 발견했다. VPC 엔드포인트 서비스의 일종으로, 관리도 필요 없고 비용도 따로 없다. 적용법과 활용 방안에 대해서 소개하려 한다. (사전 준비로 Internet Gateway, NAT Gateway, VPC는 생성해야 한다.) EC2 Instance Connect 원리 EC2 Instance Connec..
AWS RDS Aurora모니터링 지표
AWS RDS Aurora모니터링 지표
2023.11.09Intro 트래픽 증가로 인해서 피크 시간에 서비스가 중단되거나, 느려지는 이슈를 경험한 후 모니터링 시스템의 중요성을 다시금 느꼈다. 사건 후 서비스들의 주요 지표에 모니터링 및 알람을 걸어두기 시작했다. 그 과정에서 RDS Aurora Mysql에서 어떠한 지표를 설정하는 게 이슈를 사전에 감지하거나 발 빠르게 대응할 수 있을지 고민했다. 하나씩 알아보자. (CloudWatch Log 내보내기를 설정이 돼 있어야 한다.) 지표 변화 요인 아래의 지표들에 영향을 미치는 것들은 다음과 같이 거의 비슷하다. 1. 트래픽의 증가 2. 장기 실행 트랜잭션 3. 많은 커넥션 (커넥션 또한 메모리를 점유하기 때문에) 4. 슬로우 쿼리 특별한 언급이 없다면, 위의 이유들이다. CPU Utilization CPU 사..
Cloudwatch LogGroup Metric, Subscribe Filter (지표, 구독 필터)
Cloudwatch LogGroup Metric, Subscribe Filter (지표, 구독 필터)
2023.11.07Intro RDS, 로드밸런서, CloudWatch Agent에서 수집되는 로그들은 지표가 존재하기에, 알람설정 혹은 대시보드로 표현할 수 있다. 애플리케이션 단에서 수집하는 로그에 대해서는 지표가 존재하지 않아 애플리케이션에서 알람 발생, 처리와 같은 로직을 수행해야 했었다. 하지만 알람의 경우 로직과 별개인 이벤트이고, 또한 비동기로 처리 가능한 오류가 있을 수 있다. 그것에 대한 방안으로 지표 필터다. 또한 로그를 스트리밍 할 수 있는 구독 필터도 있다. 언급한 2개를 활용해 보자. Metric Filter (지표 필터) 지표 필터는 로그에 대한 특정 패턴에 대해서 지표로 변환하여, 일정 수치에 도달 시 트리거를 구성할 수 있다. 지표 필터의 구성은 다음과 같다. 1. 패턴 필터링 지정 - 필터링할..
EKS Ingress Controller Group 사용
EKS Ingress Controller Group 사용
2023.11.06Intro EKS Ingress Controller로 Elastic LoadBalancer 유형을 ALB, NLB 지정해서 사용할 수 있다. 서비스가 확장됨에 따라 Namespace를 분리하는 일이 생겼다. ALB를 분리할 필요는 없었지만, Ingress Controller는 Namespace에 종속돼 있어서 여러 개의 로드 밸런서가 생기는 문제를 발견했다. Ingress Yaml 파일에 어노테이션을 추가함으로써 간단하게 해결할 수 있었는데, 알아보자. Ingress Yaml 어노테이션 추가 위에서 말했듯이 Namespace에 종속돼서 만들어지기 때문에 별도의 어노테이션을 Yaml파일에 추가해야 한다. alb.ingress.kubernetes.io/group.name을 활용하면 된다. 아래와 같이 파일을..
EKS Ingress Controller (Application LoadBalancer) 유형
EKS Ingress Controller (Application LoadBalancer) 유형
2023.10.31Intro AWS의 EKS에서는 Ingress Controller를 Helm or Manifest를 이용해서 Application LoadBalancer or Networ LoadBalancer를 만들 수 있게 해 준다. 만드는 방법은 링크를 참고하면 된다. Ingress Controller를 만들면, 우리가 만든 서비스랑 연결을 해줘야 라우팅이 가능해진다. 여기서 문서를 살펴보니, alb.ingress.kubernetes.io/target-type 라는 타입을 명시할 수가 있는데, 이걸로 네트워크 최적화가 가능했다. 한 번 살펴보자. target-type 앞에서 언급한 alb.ingress.kubernetes.io/target-type은 2가지 타입이 instance, ip 타입이 존재한다. 하나씩 알..
EKS OverProvisining - 1
EKS OverProvisining - 1
2023.10.30Intro AWS EKS를 사용하면서 서비스 규모가 확장되고, Pod의 수가 늘어나거나 HPA에 의해 Scale Out이 필요한 상황들이 발생한다. 이런 경우에 노드의 리소스 부족으로 인해 새로운 Pod를 실행할 수 없는 상황이 생길 수 있다. 이러한 문제를 해결하기 위해 EKS는 Cluster AutoScaling 기능을 제공하며, 추가적으로 Karpenter라는 도구도 사용할 수 있다. 관리형 노드 그룹에 새로운 노드를 추가하는 방식으로 동작한다. 그러나, 실제로 이 기능을 적용했을 때 문제점이 하나 있다. 바로 새로운 노드가 관리형 그룹에 추가되고 실행 가능 상태가 되기까지 약간의 시간이 소요된다는 점이다. 이때 요청이 증가해서 가동되고 있는 파드들 또한 문제가 발생한다면, 서비스의 다운타임이 발생..