Cloudwatch는 AWS 리소스 사용의 실시간 모니터링 기능이다. 다양한 이벤트들을 수집하여 로그파일로 저장하고 이벤트 & 알람 설정을 통해 SNS, AWS Lambda로 전송 가능하다. EC2, RDS, S3, ELB등 다양한 서비스들에서 Cloudwatch를 사용할 수 있다.
CloudWatch 모니터링 종류는 다음과 같다.
설정해놓은 임의값에 도달할 시 Alarm을 울려 특정 이벤트를 작동할 수 있는 기능이다. Alarm의 State에는 3가지가 존재한다.
정해놓은 지출 임계값을 초과할 경우 SNS를 통하여 경고를 하고, 알람을 주는 기능이다. 현재 이 기능은 특정지역(us-east-1)에서만 사용이 가능하다.
Serverless의 주축을 담당하며 Events를 통하여 Lambda를 실행시킨다. NodeJS, Python, Java, GO등에서 다양한 언어를 지원한다. Lambda함수는 함수가 실행될때만 돈을 지불한다. 하지만 1,000,000번의 호출까지는 무료이다.
Lambda는 최대 300초의 런타임 시간을 허용하며 512MB의 일시적인 디스크 공간을 제공한다 (/tmp/) 람다 함수를 통해 돌아오는 데이터를 임시 저장하는 공간으로 활용한다.
S3 버켓에 데이터를 올리면 PutObject라는 함수가 실행되며 Lambda함수를 실행시킨다. 실행된 Lambda함수는 데이터를 변환하며 불필요한 데이터를 삭제한다.
두 번째 사용 용례이다. IoT에서 Topic으로 데이터를 보내면 Lambda함수를 실행한다. 자동차라고 생각해보자. 특정 Km/h를 넘기면 과속으로 측정하는 시스템이 있는데, 한국이 아니라 미국이라 mile/h로 형변환을 해야할 상황이라면 IoT에서 발생한 Topic이 Lambda 함수를 실행시켜 자동으로 형변환을 하게 되는 것이다.
Lambda를 실습할 때 함수를 생성하면 위와 같은 선택사항들을 확인할 수 있다. 새로 작성은 말 그대로 함수를 새로 생성하는 것이고, 블루프린트는 AWS에서 만든 템플릿을 사용하여 간편하게 Lambda함수를 만들 수 있게 하는 것이다.
Lambda 함수를 만들고 안에 코드를 작성해준다.
코드를 만들어 주고 코드 안에 해당 함수가 돌아가길 원하는 서비스를 작성해준다. 이후 Deploy를 누른 뒤 해당 서비스로 이동한다.
서비스(Ec2, S3 ..)로 가면 이벤트 알림을 생성할 수 있는 기능이 있다.
해당 페이지에서 작성해 둔 Lambda 함수를 적용하기 위해 만들은 Lambda 함수를 지정하면 설정이 완료된다.
CloudFront는 Edge Location을 사용하여 정적, 동적, 실시간 웹사이트 컨텐츠를 유저들에게 전달한다. 컨텐츠가 배송되는 네트워크라 하여 Content Delivery Network(CDN)이라고도 일컫는다.
위 사진의 대한민국에 그려져 있는 빨간색 원통 모양이 웹 호스팅을 하고 있는 주소라고 생각하자. 해당 웹 사이트에 접속하기 위해 세계 각지에서 접속을 시도할텐데 이를 빠르게 제공하기 위해서 각 지역마다 Edge Location을 둔다. 그럼 위 사진에서 처럼 각지에 있는 사용자들은 빨간색 웹 사이트가 아니라 초록색 Edge Location을 통해 빠르게 접속이 가능해진다. 또한, 각각의 지역에서 캐시도 관리할 수 있기 때문에 Latency가 많이 줄어들 수 있다.