본문 바로가기

반응형

전체 글

(151)
[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에서 수행할 것인가, ..
[Datadog] AWS Events 기반으로 Datadog 알람 설정하기 1. 개요 Datadog은 SaaS 모니터링 솔루션으로 정말 많은 기능들이 포함되어 있다. Dashboards를 만들 수도 있고, Monitoring 설정을 할 수도 있고 APM을 사용하여 Application 분석을 수행할 수도 있다. 그 중 Events 기능이 있는데, 일련의 Messages 들을 모아놓은 Record라고 생각하면 된다. Kubernetes에서 발생하는 Events들은 물론 그 외에 RDS Events 등이 포함될 수 있다. 아래는 Datadog Events 예시이다. Kubernetes에서 발생하는 이벤트들, Amazon Lambda 혹은 SNS, MongoDB 등 여러가지가 Source가 될 수 있다. 만약 이러한 Events들 중 특정 Content가 포함이 될 경우 알람을 받고..
[Envoy] Envoy Proxy Architecture # 1. 개요 MSA(Micro Service Architecture)를 사용하는 기업이 많아지면서 MSA 서비스 네트워크 통신은 어떻게 처리할지 고민하게 되었고, HTTP , HTTP2 뿐만 아니라 gRPC, Kafka, MongoDB 등 여러 Protocol 간의 통신을 어떻게 효율적으로 처리할지, 분산 추적 및 헤더 등에 대한 관리는 어떻게 할지 고민하게 되었다. 이에 따라 L7 기능을 갖춘 Proxy의 필요성이 느껴지게 되었고 그 중 가장 널리 사용되고 있는 Envoy에 대해서 간단하게 설명하도록 하겠다. - L7과 L4는 아래의 차이점이 존재하며, 당연히 L4 레벨의 통신이 좀 더 빠를 수 밖에 없다. 하지만 좀 더 많은 정보를 기반으로 프록시 및 라우팅을 설정할 수 있는 것이 L7 계층이다. ..
[Terraform] Atlantis를 통한 Git 협업 #1 - Demo Git에서 Terraform으로 협업하기 위해서는 다양한 고려 사항이 필요하다. Terraform을 혼자 테스트를 하거나 소규모 인원이서 관리하는 경우 큰 무리는 없지만 다수가 Terraform 파일을 관리한다면 협업에 대한 고민을 하게 될 수 있음 실제 Production 리소스에 영향이 있기 때문에 함부로 Apply가 수행되어선 안되며 Local에서 Apply를 수행하는 방향보다는 Git에서 PR 진행 후 Plan 결과 혹은 개발계 수행 결과 문제 없을 경우 Apply가 수행되는 방향이 좋을 것을 보인다. 이러한 상황에서 고려해볼만한 Terraform Runner가 Atlantis이다. Atlantis는 Terraform Pull Request를 자동화해주는 오픈소스 솔루션으로, Github 혹은 G..
[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를 이해하는 부분이다. 아래 글을 읽으면 빠르게 이해가 될 것이라고 생각한다..

반응형