CDN Content Delivery/Distribution Network의 약자로, 서버의 컨텐츠를 빠르게 전송하기 위해 다수의 네트워크 노드들에 컨텐츠를 저장(캐싱)해두는 시스템 오리진 서버가 컨텐츠를 여러 네트워크 노드(CDN 서버)에 미리 저장해두고 클라이언트가 오리진 서버의 컨텐츠를 가져오는 상황에서, 접속하는 클라이언트의 가장 근처의 네트워크 노드에 저장된 컨텐츠를 가져오게된다. 이렇게 CDN 서버에 저장된 컨텐츠를 가져옴에 따라 오리진 서버로의 요청 수를 줄이게되어 서버의 부하를 줄일 수 있다. Cloudfront AWS에서 제공하는 CDN 서비스로, CDN 방식으로 운영되는 캐싱 기반 컨텐츠 전송 네트워크 서비스이다 전 세계에 위치한 Edge Location(엣지 로케이션)을 통해 웹 사이..
Cloud
Datadog으로 AWS 서비스에서 발생하는 로그 데이터들을 모니터링하기 위해서는 로그들을 Datadog으로 쏴주는 과정이 필요하다. 로그를 쏴주는 방법에는 크게 2가지가 존재한다. 먼저, Datadog에서 AWS integration을 통해 AWS 계정 내에 Log forwarder라는 Lambda 함수를 생성해 지속적으로 로그를 쏴주는 방법이 있다. AWS integration에 대한 설명은 이전 글에서 작성했으므로 여기서는 따로 설명하지 않는다. [Datadog] AWS integration부터 로그 수집까지 배경 클라우드 상에 운영중인 외부 서비스의 로그 모니터링을 진행하고자 했다. 모니터링 할 대상은 WAF 로그, ALB 로그, DNS Query 로그가 있었고, 추가로 해외 IP 접근 이력, 관..
실서비스를 운영하면 서버의 백업과 관리는 빠져서는 안될 필수불가결한 항목이다. 이번에는 AWS 서비스인 AWS Backup을 통해 ec2 인스턴스들에 대해 백업 작업을 진행해본다. AWS Backup AWS내의 서비스 및 일부 온프레미스의 App들에 대한 데이터들의 백업을 관리하고 자동화할 수 있는 중앙집중식 완전 관리형 서비스이다. 백업할 리소스를 지정해 직접 백업 작업을 진행할 수 있고(온디맨드 백업), 리소스와 백업 계획(일정)을 지정해 자동으로 백업을 진행할 수도 있다. Backup 서비스에서는 백업 볼트라는 개념이 존재한다. 백업볼트는 간단히 말해 백업본이 저장될 컨테이너로 볼 수 있다. 백업 서비스를 이용하기 전에 최소 1개의 vault를 가져야한다. (기본값 Default 백업볼트가 있음) ..
운영중인 웹서버 인스턴스에 대해 개발인원이 종종 SSH 접근을 해 작업을 하는 과정이 있다. SSH 접속 이상 징후를 모니터링하기 위해 SSH 접근에 대한 알림을 받고 싶다는 요청이 들어왔었다. 요청 : 인스턴스의 SSH 접속이력을 실시간 알림으로 수신 실시간 알림을 받는 서비스는 사내에서 사용중인 메신저인 Slack을 이용하기로 했다. 이 아키텍쳐를 구성하는 과정은 크게 다음과 같이 이루어져있다. 인스턴스의 SSH 접속로그를 cloudwatch로 뽑아오기 위한 Agent 설치 Slack으로 알림을 쏴줄 lambda 함수 생성 Cloudwatch에 쌓인 접속로그를 바탕으로 SSH 연결이 수립된 시점의 로그 필터링 필터링된 로그를 lambda로 전송 (lambda 트리거 설정) lambda 코드 작성 1번..
오픈한 서비스를 대상으로 보안관제에 대한 차원으로 WAF를 붙였었다. 이때, 발생한 로그들은 모두 Cloudwatch log 그룹으로 흘러들어가도록 했고, datadog forwarder를 통해 datadog으로 다시 흘러가도록 구성을 했었다. 이렇게 모니터링 인프라는 어느정도 완성이 되었지만, 비용에 대한 문제가 슬금슬금 다가오기 시작했다. 기본적으로 datadog이 비싼감이 없지않아 있었지만(Datadog의 과금 정책을 아직도 완전히 이해할 수가 없음...), 그 외에도 AWS 내부에서 외부로 데이터를 전송한다는 것에 대한 부담도 어느정도 존재했다. 그렇게 방법을 찾던 중, cloudwatch의 자체 제공 서비스 중 하나인 'log insights'를 발견하게 되었다. Cloudwatch Log In..
2023 여름방학 Todo 리스트 중 하나였던 SAA 취득을 했다. SAA를 따야겠다고 생각한것은 올해 초 쯤부터 했지만, 학기와 회사 일을 병행하다보니 그렇게 집중적으로 공부할 시간이 나오지 않았다. 7월초에 여행을 다녀오자마자 바로 공부를 시작했고, 하루 1시간 정도만 SAA 공부에 투자했다. AWS는 만져본지 햇수로는 어느새 1년 반정도를 넘어가기도 했고, 회사 일하는 과정에서 만져본 서비스들(ec2, VPC, cloudwatch, Route53 등등)이 몇가지 있어서 이 경험들이 수월하게 공부하는데 적용되었던것 같다. 시험 정보 관련 총 문항 수는 65문항으로, 모두 다지선다형 객관식으로 이루어져있다. (2개를 선택하는 문항도 존재) 결론부터 이야기하면 덤프에서 5~60% 정도 그대로 출제된다. ..
Cloudwatch에서는 Agent의 설치를 통해 컴퓨팅 서비스에 대한 상세한 모니터링을 지원한다. EC2 인스턴스와 같은 AWS 자체 컴퓨팅 서비스부터, on-premise 환경의 서버에도 Agent를 설치해 Cloudwatch에서 모니터링이 가능하다. 간단하게 Ubuntu 인스턴스에 Cloudwatch Agent를 설치 후, SSH 접근 로그와 같은 내용들의 모니터링을 진행해본다. IAM role 연결 Cloudwatch Agent는 인스턴스로부터 데이터를 받아와 Cloudwatch에 metric을 write하므로, 이에 대한 권한이 필요하다. 인스턴스에 Cloudwatch Agent를 사용하기 위해 IAM role을 연결해주어야한다. IAM > 역할 > 역할 만들기 EC2에 붙일 Role임으로 EC..
바로 이전글에서 private 서브넷에 웹 서버 인스턴스를 생성하고 ALB로 연결까지 확인했었다. 이번에는 외부 인터넷단에서 유입되는 유해트래픽을 탐지하고 차단하는 솔루션까지 로드밸런서에 연동하는 작업을 진행한다. WAF Web Application Firewall, 웹 서버 자원에 대해 유입되는 HTTP(S) 트래픽을 분석하고 차단하는 방화벽의 솔루션으로 AWS의 서비스들에 대해 적용할 수 있다. 적용가능한 서비스에는 대표적으로 Cloudfront, API Gateway, Application 로드밸런서가 존재한다. 해당 서비스들의 앞단에 붙는 형식으로 Access Control list를 정의하고, 탐지 Rule을 설정함으로써 내부 자원을 보호한다. ※ WAF는 프리티어 혜택을 받지 못하는 서비스이므..