본문 바로가기

반응형

AWS

(55)
[EKS] EKS Cluster 구축 시 고려 사항 정리 (Terraform, Terragrunt, IRSA, Atlantis, Addon, ..) 1. 개요 EKS Cluster를 구성할 때 고려해야 할 사항들에 대해서 정리해본다. - Terraform으로 인프라 구성 - IRSA(IAM Role for Service Account) - 애드온 서비스들 (AWS Load Balancer Controller, Secrets Store CSI Driver, Cluster Autoscaler, External DNS, EBS CSI Driver, EFS CSI Driver, ..) - Monitoring, Logging - .. 2. Terraform으로 인프라 구성 Terraform으로 인프라를 구성할 때는 다음의 고려 사항이 필요했다. [1] 공용으로 사용하는 변수들을 어떻게 관리할 것인가? [2] Terraform을 Local에서 수행할 것인가, ..
[ECS] FireLens로 ECS Fargate 컨테이너 로그 ElasticSearch로 보내기 1. 개요 ECS Fargate를 사용하다보면 Log를 어떻게 보내야할지에 대해 고민하게 된다. Fargate이기 때문에 별도 서버는 없고, Log는 수집해야 하는데 어떻게 보내야할지에 대해서 막막할 수 있는데 이러한 고민을 덜기 위해 AWS에서는 FireLens라는 기능을 출시하였다. 내부적으로 Fluentd 혹은 FluentBit 이미지를 가지고 AWS가 목적에 맞게 커스터마이징하여 개발한 Container Image라고 생각하면 되며 Task Definition에 Value만 전달하여 Log를 전달할 수도 있다. 좀 더 Custom하게 사용하고 싶다면 S3에 fluent-bit.yml 파일을 올려서 설정 값을 전달할 수도 있고 Image를 Pull하여 Container에 접속하여 설정값을 변경한 뒤..
[ECS] ECS Exec를 사용하여 ECS Fargate 컨테이너에 접속하기 Fargate는 기본적으로 AWS에서 서버를 관리하기 때문에 운영 관리에 대한 부분을 최소화할 수 있다. 하지만 컨테이너에 Issue가 발생했다거나, 디버깅을 위해 컨테이너에 접속하고 싶을 경우에 상당히 까다로울 수 있다. EC2 기반의 ECS를 운영할 경우 그냥 EC2에 접속하여 docker exec -it {container_id} /bin/sh 등의 명령어를 수행하면 되지만 Fargate일 경우 EC2에 접속할 수 없기 때문이다. Fargate에 작업을 배포하는 ECS 사용자들은 주로 Fargate를 사용하면 SSH로 연결할 수 있는 EC2 인스턴스가 없기 때문에 EC2 인스턴스에 SSH로 연결하는 옵션도 없었다. Fargate의 ECS에서는 컨테이너로 실행하는 것이 불가능하다. 그럼 어떻게 해야할..
[AWS] Multi Account에서 IAM 내역 감사하기 #4 - Lambda를 활용한 Slack Notification 아래의 글과 대략적인 흐름은 비슷하다. https://nyyang.tistory.com/126 [Lambda] IAM, SG 변경 사항을 Slack으로 알람 받기 개요 IAM 혹은 Security Group에서의 변경 사항이 감지되면 Slack으로 통보를 받고 싶습니다. ⇒ Notification을 받는 방법은 여러 가지가 있을 것이다. AWS Config를 통해 감지할 수도 있고, 필자의 방식대로 nyyang.tistory.com 1. 아키텍처 1. CloudTrail 추적을 활성화하면 Default EventBus에서 API가 감지된다. 2. Event Rule에서 Event Pattern에 의해 API를 필터링하면 Default EventBus에서 Capture 된다. (Security Accoun..
[AWS] Multi Account에서 IAM 내역 감사하기 #3 - 테라폼으로 인프라 프로비저닝 2 https://nyyang.tistory.com/145 [AWS] Multi Account에서 IAM 내역 감사하기 #2 - 테라폼으로 인프라 프로비저닝 1. 개요 Multi Account 환경에서 IAM 관련 Action에 대한 감사를 하기 위해서는 Log들을 Security 관련 Account에서 수집해야 한다. 이에 대한 인프라 프로비저닝은 Terraform을 사용하였다. (부분 부분 웹 콘솔 nyyang.tistory.com 위 글에 이어서 작성하는 글이며, Security Account 외 다른 어카운트들에서 동일한 Resource를 배포하기 위한 Terraform 코드이다. 가장 중요한 부분은 Provider Alias를 이해하는 부분이다. 아래 글을 읽으면 빠르게 이해가 될 것이라고 생각한다..
[AWS] Multi Account에서 IAM 내역 감사하기 #2 - 테라폼으로 인프라 프로비저닝 1. 개요 Multi Account 환경에서 IAM 관련 Action에 대한 감사를 하기 위해서는 Log들을 Security 관련 Account에서 수집해야 한다. 이에 대한 인프라 프로비저닝은 Terraform을 사용하였다. (부분 부분 웹 콘솔로 진행한 부분도 있기 때문에 참고만 하면 좋을 것이다.) 2. 구조 프로젝트의 폴더 구조는 아래와 같다. 별도의 모듈은 굳이 사용하지 않았으며, resource, data, variable, local 등을 활용하여 리소스를 Code로써 표현하였다. # another-accounts EventBridge에서 기 정의한 IAM Action이 Pattern에 걸릴 경우 Security Account의 EventBus로 전달한다. # security-accounts..
[AWS] Multi Account에서 IAM 내역 감사하기 #1 - 개요, 아키텍쳐, 고려 사항 1. 개요 Multi Account 환경에서 IAM 관련 Action에 대한 감사를 하기 위해서는 Log들을 Security 관련 Account에서 수집해야 한다. 이에 대해 다음의 AWS 서비스들을 활용하였다. Terraform : 인프라스트럭쳐 프로비저닝 CloudTrail : AWS API 감사해주는 서비스 Event Bus : AWS Event가 흐르는 통로 Event Rule : AWS 특정 Pattern을 지닌 API를 잡아내기 위함 CloudWatch Logs : 각 Account에서 발생하는 Log들을 수집 Subscription Filter : CloudWatch Logs로 적재되는 Log들을 Amazon ES로 보내기 위한 구독 필터 설정 Amazon OpenSearch : Log 중앙..
[Python] CLB 인스턴스 상태 및 등록, 해제하는 파이썬 스크립트 Shell Script 작성 글 https://nyyang.tistory.com/109?category=990664 [Shell Script] CLB 인스턴스 상태 및 등록, 해제하는 쉘 스크립트 업무 중 특정 고객사에서 CLB에 등록된 웹 서비스에서 배포 작업이 있을 때 팀 내 엔지니어가 서로 연락을 취하면서 1) CLB에 등록된 인스턴스 해제 2) A 웹 서비스 배포 및 서비스 재시작 3) CLB에 등 nyyang.tistory.com 위에 Shell Script로 작성했던 글을 Python으로도 작성해보았다. ### 스크립트 목적 - 고객사 중 한 곳이 Legacy하게 배포 작업을 진행하는 곳이 있음 (SFTP 수동 배포) 1) 특정 CLB에 붙어 있는 Instance 중 A존 Detach 2) 배..

반응형