본문 바로가기

반응형

AWS

(55)
[Lambda] IAM, SG 변경 사항을 Slack으로 알람 받기 개요 IAM 혹은 Security Group에서의 변경 사항이 감지되면 Slack으로 통보를 받고 싶습니다. ⇒ Notification을 받는 방법은 여러 가지가 있을 것이다. AWS Config를 통해 감지할 수도 있고, 필자의 방식대로 EventBridge를 통해 특정 API CALL이 발생될 경우에 감지될 수 있도록 설정할 수도 있다. 간단하게는 API CALL이 감지될 경우 SNS - Email로 보내는 방법이 있는데 보기에 이쁘지가 않다. 그렇기 때문에 Lambda를 Trigger하여 문자를 Parsing하고 Template대로 Slack에 Webhook을 보내 Slack에서 Notification을 받는 방법이 보기에 깔끔할 것이라 생각한다. 전제 조건 SLACK APP을 미리 생성해둔 후에 ..
[Lambda] CW Logs 구독 필터와 Lambda 연결, Slack으로 인스턴스 스케줄러 동작 내역 확인하기 1. 배경 AWS Instance Scheduler로 EC2와 RDS를 정해진 시간에 Start하고, Stop한다고 가정해보자. 관리자들은 어떠한 서버들이 주기적으로 켜지고 꺼지는지 알아야 할 필요성이 있다. 만약 이러한 내용들을 Slack을 통해 Notification을 받고 싶다면 어떻게 해야 할까? Keyword : CloudWatch Logs, Subscription filter, Lambda, Slack 2. 아이디어 및 아키텍처 우선, 인스턴스 스케줄러는 CloudFormation으로 간단하게 EC2와 RDS를 스케줄링 할 수 있도록 도와주는 툴?이다. AWS 측에서 개발하였으며, Lambda와 CloudWatch, DynamoDB 등을 활용하여 사용자가 정의한 대로 스케줄링 하도록 도와준다...
[WEB] Apache Log 포맷 기본 정리 (+ Client의 IP를 보고 싶을 경우) 웹 서버 중 많이 사용되는 아파치의 로그 포맷을 수정하는 방법에 대해서 정리해본다. Apache 관련 설정은 conf 파일에 보통 존재한다. 만약 아파치를 컴파일하여 설치하게 된다면 /usr/share/... 혹은 별도 운영 관리자가 설정한 디렉터리 내에 존재할 것이며, 단순 yum 등의 패키지 매니저를 통해 간단하게 설치하였을 경우 /etc/httpd/conf 디렉터리 내에 httpd.conf 파일에서 설정할 수 있을 것이다. conf.d 파일 내에서 별도의 log.conf 등의 파일을 만들어서 관리해도 되고, httpd.conf 파일에서 관리해도 무방하다. Apache는 Module 기반으로 동작하기 때문에 특정 기능을 사용하기 위해서는 1) Module을 Load하고, 2) 정의된 설정 값을 기입해..
[EKS] EKS 환경에서 ArgoCD 설치, 배포, 롤백 Ref : https://www.s-core.co.kr/insight/view/%EB%8D%B0%EB%B8%8C%EC%98%B5%EC%8A%A4%EC%9D%98-%ED%99%95%EC%9E%A5-%EB%AA%A8%EB%8D%B8-%EA%B9%83%EC%98%B5%EC%8A%A4gitops-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-2/ GitOps란 DevOps를 실천하는 방법 중 하나이다. 그 중에서도 Cloud Native한 Application을 대상으로 CD(Continuous Deployment)에 초점을 두고 있다. Application 배포와 운영에 관련된 모든 요소를 코드화하여 Git에서 관리(Ops)하는 개념을 GitOps라고 한다. 그렇다고 IaC와 유사하지만 같..
[EKS] Jenkins로 CI 수행하기 - Maven Build 및 Image ECR Push 전체적인 과정은 다음과 같다. 1. Git -> main 브랜치에서 Push 이벤트가 발생하면 Webhook이 발생한다. 2. Webhook은 Jenkins 서버에게 POST로 날린다. 3. Jenkins는 기 설정된 Trigger 조건(Github hook trigger for GITScm polling)에 의거하여 Trigger가 되며, Jenkins Pipeline을 수행하게 된다. 4. Jenkins 서버 내에서 Pipeline에 정의된 대로 작업들을 수행한다. 1) Git Checkout (소스 코드를 받아온다.) 2) Maven으로 Springboot 프로젝트를 Build하여 JAR 파일로 떨군다. 3) Docker를 이용하여 Image 파일로 생성하고, ECR 컨테이너 레지스트리로 Push한..
[EKS] Amazon EBS CSI Driver 설치 및 사용하기 EBS CSI드라이버에서는 Amazon EKS 클러스터가 영구 볼륨을 위해 Amazon EBS 볼륨의 수명 주기를 관리할 수 있게 해주는 CSI 인터페이스를 제공한다. ⇒ EBS CSI 드라이버를 EKS 클러스터에 배포하고 제대로 동작하는지 확인 순서 1. IRSA를 위한 IAM Policy 생성 (EBS CLI Controller 파드를 위한 정책 생성) 2. 기 생성한 IAM 정책을 IAM Role에 연결 a. IAM Role의 신뢰 관계는 EKS의 OIDC b. Condition에는 ebs-csi-controller-sa 서비스어카운트만 허용한다. 3. EBS CSI Driver 설치 4. 동작 테스트 및 Log 확인 IAM Policy (JSON) to Terraform data block => ..
[EKS] External DNS 설치 및 사용하기 External DNS란 Ingress 리소스를 생성함과 동시에 Route 53 ↔ ALB ↔ Node ↔ Pod로 트래픽이 단번에 라우팅될 수 있도록 한다. => ALB가 생성될 때 자동으로 Route53 Record에 등록되기 위함이다. 관련 자료 https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/aws.md https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/examples/echo_server/#setup-external-dns-to-manage-dns-automatically + Security Context 관련 트러블슈팅 자료 https:/..
[EKS] Terraform으로 EKS Cluster 생성 실습용으로 EKS Cluster를 생성하여 이것 저것 해보고 싶지만 생성할 때마다 Web Console로 만들면 반복 작업인데 반해 시간이 다소 소요되고 계속 만들어놓으면 비용이 발생하기 때문에 Terraform으로 필요할 때마다 Apply 하여 리소스를 생성하고 필요가 없어지면 Destroy를 하여 리소스를 삭제하면 어떨까 하여 Terraform으로 EKS Cluster를 생성하게 되었다. 아래 작성한 Terraform Code 외에 추가로 고려해야 할 사항들에 대해서 정리 1. EKS의 Worker Node는 Launch Template으로 생성하는 방법과 Managed Worker Node로 생성하는 방법 2가지가 있다. 만약 자사 보안상 Worker Node 내부에 여러가지 보안 솔루션이 설치되어..

반응형