logstash로 Datadog으로 로그를 전송하고, 전송된 로그를 Querying해 Visualization해보도록 한다. Logstash 여러 곳(Source)의 데이터를 수집 / 통합시켜 지정한 곳(Destination)으로 전송하는 데이터 처리 파이프라인 도구이다. 데이터를 수집, 분석하고 정제하는 ETL(Extract, Transform, Load) 도구이며, 엘라스틱서치의 3스택(ElasticSearch, Logstash, Kibana)중 하나의 요소로 알려져 있다. 로그스태시의 파이프라인 구성파일은 크게 입력(input), 정제(filter), 출력(output)의 3개의 파트로 나누어져 있다. 이와 같은 Logstash의 또다른 특징으로 파이프라인의 각 파트별로 플러그인을 제공해 다양한 상..
Terraform apply를 통해 리소스를 생성하면 실제 인프라에 terraform 코드 내용이 반영되어 리소스가 생성된다.이렇게 apply로 생성한 리소스는 destroy로 삭제하는데, 만약 terraform으로 생성한 리소스를 웹 콘솔에서 임의로 삭제를 해버리면 어떻게 될까?혹은 terraform으로 이미 생성한 리소스에 대해서 또 다시 apply를 적용시킨다면 어떨까?더 나아가서 팀 이상의 단위로 인프라를 관리할 때 여러명이 동시에 같은 리소스에 접근하는 경우, 적용된 인프라 리소스가 충돌하는 상황이 발생할 수도 있다. 이런 문제를 해결하기위해 등장한 state와 backend 개념에 대해 알아보도록 한다. tfstateTerraform이 생성한 인프라 리소스의 상태 정보를 저장해둔 파일, 기본적..
최근에 AWS Skill builders 강의를 들었다. 아무래도 요새 AWS 측에서 밀고있는 주제가 App 현대화와 생성형 AI인 만큼 관련된 내용들이 강의로 나왔었는데, 그 중 흥미롭게 사용했었던 서비스중 하나를 가져왔다 Amazon Codewhisperer 생성형 AI기반의 코드 생성기, 주석으로 문장형 명령을 입력하면 AI가 그에 맞는 코드를 추천해주는 서비스이다. 아마존에서는 AI 코딩 동료라는 개념으로 이 서비스를 소개했다. 그리고 이 서비스는 개인 레벨의 계정에 한해서는 무료로 오픈했다고 하니, 부담없이 접근할 수 있는 장점도 있다. AI 코드 생성기 - Amazon CodeWhisperer - AWS CodeWhisperer는 사용자의 작업 방식에 꼭 맞습니다. Python, Java 및 ..
이번 글에서는 직접 간단한 인프라 아키텍쳐를 구성하고 코드를 작성해 Apply까지 진행해본다. 인스턴스 2개를 생성해 하나의 ALB로 묶은 아키텍쳐를 생성하보고자 한다. ALB 1개와 2쌍의 서브넷, 2개의 인스턴스로 구성된 아주 전형적인 ALB 아키텍쳐이다. 시작하기에 앞서, Terraform 실행을 위한 Credential을 생성해야한다. Terraform을 통해 다양한 리소스들을 관리하므로 AdministratorAccess 권한을 가진 사용자를 생성한다. 사용자 생성 후 액세스 키도 생성한다. 이렇게 생성한 Credential은 terraform 코드 내에 직접 넣을 수 있고, CLI config/credential 파일에 넣고 불러올 수도 있으며, 시스템 환경변수 식으로 설정해 불러올 수 있기도..
이번에는 Terraform에서 사용되는 기본 키워드를 몇 가지 알아보고, 직접 code를 작성해 인프라를 올려본다. 기본 키워드 Provider Terraform 템플릿으로 구성될 인프라의 타입으로, AWS / GCP / Azure와 같은 퍼블릭 클라우드 서비스 부터 SaaS 타입의 서비스까지 다양한 외부 서비스들을 Terraform과 연결해주는 기능 프로바이더는 configuration 단계에서 반드시 설정해주어야한다. 아래 링크에서 Terraform이 지원하는 Provider 목록을 확인할 수 있다. Terraform Registry registry.terraform.io Terraform은 이러한 Provider들의 API를 호출하는 식으로 실행된다. 아래 코드는 Provider를 AWS로 지정하는..
Public cloud가 발달함에 따라 많은 개인과 기업들이 운영 중인 서비스들을 클라우드로 전환하게 되었다. 클라우드로 전환하고 점차 서비스들이 확장되며, 사용중인 리소스들의 수가 증가하여 프로비저닝과 운영/관리가 복잡하고 어렵게되었다. 이에 따라, 클라우드 리소스를 코드 형식으로 관리하고자하는 움직임이 나타나고, 이번에 소개할 Terraform이 등장하게 되었다. Terraform terraform은 Hashicorp에서 개발한 오픈소스 인프라관리 도구로, 인프라의 구조를 코드로 작성해서 간단하게 구축하고 인프라의 형상을 관리할 수 있다. Terraform은 HCL(Hashicorp Configuration Language)라는 자체적인 설정 Language를 이용해 인프라 리소스들을 선언한다. 자체..
CDN Content Delivery/Distribution Network의 약자로, 서버의 컨텐츠를 빠르게 전송하기 위해 다수의 네트워크 노드들에 컨텐츠를 저장(캐싱)해두는 시스템 오리진 서버가 컨텐츠를 여러 네트워크 노드(CDN 서버)에 미리 저장해두고 클라이언트가 오리진 서버의 컨텐츠를 가져오는 상황에서, 접속하는 클라이언트의 가장 근처의 네트워크 노드에 저장된 컨텐츠를 가져오게된다. 이렇게 CDN 서버에 저장된 컨텐츠를 가져옴에 따라 오리진 서버로의 요청 수를 줄이게되어 서버의 부하를 줄일 수 있다. Cloudfront AWS에서 제공하는 CDN 서비스로, CDN 방식으로 운영되는 캐싱 기반 컨텐츠 전송 네트워크 서비스이다 전 세계에 위치한 Edge Location(엣지 로케이션)을 통해 웹 사이..
Datadog으로 AWS 서비스에서 발생하는 로그 데이터들을 모니터링하기 위해서는 로그들을 Datadog으로 쏴주는 과정이 필요하다. 로그를 쏴주는 방법에는 크게 2가지가 존재한다. 먼저, Datadog에서 AWS integration을 통해 AWS 계정 내에 Log forwarder라는 Lambda 함수를 생성해 지속적으로 로그를 쏴주는 방법이 있다. AWS integration에 대한 설명은 이전 글에서 작성했으므로 여기서는 따로 설명하지 않는다. [Datadog] AWS integration부터 로그 수집까지 배경 클라우드 상에 운영중인 외부 서비스의 로그 모니터링을 진행하고자 했다. 모니터링 할 대상은 WAF 로그, ALB 로그, DNS Query 로그가 있었고, 추가로 해외 IP 접근 이력, 관..