안녕하세요. 말아탕 입니다.
마지막으로 그림으로 이해하는 AWS 구조와 기술 책을 읽고 이해한 내용을 간략하게 정리해 보자(홍보 X)
8장
알아 두면 좋은 AWS 서비스
알아 두면 좋은 AWS 서비스
Amazon Route 53
- Amazon Route 53는 DNS(Domain Name System)이다.
- Amazon Route 53는 접속할 IP 주소를 실제 운영 중인 EC2나 S3와 같은 AWS 서비스 엔드포인트(연결점)와 연결하며 이를 이름 풀이(name resolution)라고 한다.
- Amazon Route 53에서 도메인 이름도 등록할 수 있다.
- 도메인 이름 취득이란 gilbut.co.kr의 도메인 이름을 사용할 권리를 구매하여 도메인 네임 레지스트라에 신청하는 것을 말한다.
- Amazon Route 53는 엔드포인트 한 개에 트래픽이 집중되지 않게 하거나, 서비스에 장애가 발생했을 때 신속하게 다른 네트워크로 전환해 주는 기능이 있어 라우팅을 유연하게 관리할 수 있다.
- Amazon Route 53 요금 = 호스트 영역별 기본요금 + 쿼리 건수에 대한 요금 + 상태 확인 요금
※DNS : DNS란 웹 브라우저에 URL을 입력하면 'IP 주소'로 변환하는 방식을 말한다.
※레지스트라 : 도메인 등록을 담당하는 대행업체, 한국에는 후이즈와 같은 업체를 말한다.
DNS에 대한 용어
항목 | 내용 |
Resolver | 도메인 이름과 IP 주소를 상호 변환하는 것을 말한다. Amazon Route 53의 핵심 기능은 DNS 서버의 기능이다. |
라운드로빈 | 호스트명 하나에 IP 주소를 여러 개 할당하고, IP 반환을 요청하면 제일 앞쪽 IP부터 연결하려는 특성을 이용하여, 접속할 떄마다 IP 주소를 반환하는 순서를 바꾸는 방식으로 IP 주소를 자의적으로 조정한다. 접속 대상의 IP 주소가 복수이기 때문에 서버 여러 대에 분산하는 것이 가능하다. |
트래픽 흐름 | 서버의 부하와 가장 효율이 좋은 서버의 IP 주소를 반환하도록 조정하는 것을 말한다. 지연이 적은 서버에 전송하는 지연 시간 기반 라우팅, 지리적으로 가까운 서버에 전송하는 Geo DNS, 서버의 가동 여부를 체크하여 가동되고 있지 않는 서버에 할당하지 않는 DNS 페일 오버를 조합하여 구성한다. |
호스트 영역 | DNS의 설정 단위로 도메인 전체 or 서브도메인을 말한다. |
레코드 | 도메인 및 서브도메인에 설정하는 항목으로, 설정 하나당 도메인과 IP 주소를 변환하기 위한 내용이 한 개씩 기록되어 있다. |
쿼리 | DNS에 대한 요청을 말한다. |
※DNS 페일 오버 : 장애 극복 기능
Amazon Route 53 Profile 기능 출시
- 책에는 없는 내용으로, 2022년 4월 24일 기업 내 모든 계정과 VPC에서 DNS 관리를 통합하는 기능을 제공하는 Amazon Route 53 Profile을 정식 출시했습니다.
- Route 53 프로필을 사용하면 Route 53 프라이빗 호스팅 영역(PHZ) 연결, Resolver 전달 규칙, Route 53 Resolver DNS 방화벽 규칙 그룹을 비롯한 표준 DNS 구성을 정의하고 해당 구성을 동일한 AWS 리전의 여러 VPC에 적용할 수 있습니다.
- 쉽게 풀어 말하면, Multi VPC 환경에서 DNS 설정을 Amazon Route 53에서 중앙집권식으로 풀어서 사용 가능합니다.
- 신규 VPC 생성이나 AWS 계정 생성 시에도 DNS 부가적인 설정 없이 Amazon Route 53 프로필 설정합니다.
- 프로필을 통해 별도의 Route 53 리소스를 복잡하게 처리할 필요 없이 모든 VPC가 동일한 DNS 구성을 갖도록 쉽게 확인할 수 있습니다.
AWS Lambda
- AWS Lambda는 작은 프로그램을 실행하는 구조이며, 미리 등록해 두면 언제든 실행할 수 있다.
- AWS Lambda는 데이터나 요청에 대한 실시간 처리나 백엔드 처리를 자동으로 실행하는 구조이다.
- 이와 같은 처리를 위해 전용 서버를 구축하거나 따로 관리를 하지 않아도 필요한 이벤트가 자동으로 실행된다.
- 서버에 상주하는 프로그램과는 다르게 프로그램 실행 시에만 요금이 부과된다.
- Lambda 요금 = 단가 X 실행 시간(초 단위)이다.
- Lambda 함수라는 형식의 함수를 사용하지만 새로운 프로그래밍 언어는 아니다.
- 'Lambda 콘솔'을 사용하여 GUI로 만들 수 있다.
- 사용할 수 있는 언어는 자바, C#, 파이썬, 루비, Node.js, GO 등이 있으며 템플릿을 제공한다.
- Lamdba 함수는 Lambda 서비스에 저장된다.
- 임의의 작업이 트리거가 되어 함수를 호출해 특정 AWS 리소스에서 작업이 수행된다.
- 대표적인 예는 S3 버킷에 이미지를 저장하면 썸네일 생성 함수를 호출하여 자동으로 썸네일이 작성되는 예이다.
Lambda에 대한 용어
항목 | 내용 |
이벤트 구동 | S3에 파일을 저장하거나 DynamoDB에 데이터를 저장하거나 SES에 메일이 도착하는 등 AWS 서비스에 어떤 변화가 생기면 Lambda 프로그램을 실행할 수 있다. |
CGI를 대신하는 Lambda | API Gateway와 조합하여 웹 CGI처럼 사용할 수 있다. |
Lambda를 호출하는 방법
- Lambda를 호출하는 방법으로는 세 가지가 있다.
① SES
SES(Amazon Simple Email Server)는 메일을 수신하면 함수가 동작하는 형태로 사용한다.
② API Gateway
API Gateway는 웹 브라우저가 API를 호출할 때 임의의 작업을 수행하는 형태로 사용한다.
③ S3
Lambda 함수의 리소스 기반 권한 정책을 업데이트하여 Amazon S3에 호출 권한을 부여합니다.
Lambda 함수를 호출하는 Amazon S3 이벤트 알림을 생성합니다.
Lambda를 호출하는 서비스
- Lambda가 이벤트를 읽는 서비스
- Kinesis
- DynamoDB
- Lambda 함수를 동기적으로 호출하는 서비스
- ELB
- ALB
- Congnito
- Lex
- Alexa
- API Gateway
- CloudFront
- Kinesis Data Firehose
- Lambda 함수를 비동기적으로 호출하는 서비스
- S3
- SNS
- SES
- CloudFormation
- CloudWatch Logs
- CloudWatch Events
- CodeCommit
- Config
AWS 컨테이너 서비스
- AWS는 도커(Docker) 형식의 컨테이너를 지원한다.
- 컨테이너란 프로그램 실행 환경을 분리하는 방식이다.
- 버추얼박스(VirtualBox)나 VMware와 같은 가상 서버는 OS 전체가 가상 환경이다. 하지만 컨테이너는 애플리케이션 프로그램만 컨테이너로 분리하고, 애플리케이션에 필요한 라이브러리나 데이터를 포함하고 있다.
- 굉장히 가볍고 관리하기 쉽다는 장점이 있다.
- 컨테이너 서비스 요금 = 할당된 CPU당 실행 단가 X 가동 시간(분) X 컨테이너 수 + 메모리 단가 X 가동 시간(분) + 데이터 전송 요금
- 일반적으로 컨테이너 서비스에는 컨테이너를 배치, 관리하기 위한 '레지스트리 서비스'와 컨테이너로 분리된 애플리케이션의 실행과 컨테이너의 조정을 수행하는 '오케스트레이션 서비스'가 필요하다.
- AWS의 레지스트리 서비스로는 Amazon Elastic Container Registry(ECR)가 있다.
- 오케스트레이션 서비스로는 Amazon Elastic Container Service(ECS)와 Amazon Elastic Kubernetes Service(EKS)가 있다.
컨테이너에 대한 용어
항목 | 내용 |
컨테이너 | 프로그램 전체를 분리하여 실행하는 시스템 |
도커 이미지 | 컨테이너를 구성하는 프로그램이나 설정 |
도커 허브 | 도커 이미지를 등록하는 서비스이다. AWS는 도커 허브(Docker Hub)로 ECR을 사용한다. |
Amazon EC2 Container Registry(ECR) | 도커 이미지를 등록하는 서비스이다. |
Amazon ECS | 도커 이미지에서 EC2나 AWS Fargate에 컨테이너를 생성하여 실행하는 서비스이다. |
쿠버네티스 | 컨테이너를 종합 관리하는 방식 |
Amazon Elastic Container Service for Kubernetes(EKS) | AWS가 제공하는 쿠버네티스 서비스 |
AWS Fargate | 컨테이너를 실행하는 EC2를 자동으로 관리하기 위한 방식 |
AWS Fargate의 방식
- AWS Fargate는 필요에 따라 EC2 인스턴스를 기동하고 EC2 안에 컨테이너를 할당하고 실행하는 방식이다.
그 외 주목할 서비스
- Amazon SageMaker와 AWS Deep Learning AMI
AWS에서 머신 러닝을 수행하려면 Amazon SageMaker를 사용하는 방법과 AWS Deep Learning AMI를 사용하는 방법이 있다.
Amazon SageMaker : 머신 러닝 모델을 간단하고 빠르게 구축, 트레이닝, 호스트 환경에 배포하기 위한 관리형 서비스이다.
AWS Deep Learning AMI : 딥러닝 프레임워크와 인터페이스를 갖춘 Amazon EC2 인스턴스이다.
- AWS IoT Core
AWS IoT Core 장치와 AWS or IoT 장치 사이의 인터넷 접속, 통신을 수행하기 위한 관리형 클라우드 서비스이다.
- Amazon Lumberyard
Amazon Lumberyard는 게임 엔진이며 게임 편집기로 게임을 작성할 수 있다.
라이브 게임과 멀티플레이어 게임을 운영하거나 동적 컨텐츠를 이용할 떄 클라우드 컴퓨팅, 네트어크 리소스나 스토리지를 사용하므로 클라우드 운영을 전제로 한다면 AWS 클라우드와 통합된 Lumberyard의 특징을 잘 활용하면 편하다.
참조
직접 구매 한 그림으로 이해하는 AWS구조와 기술 책
'인프라 > AWS' 카테고리의 다른 글
Amazon RDS 이해 (0) | 2024.04.20 |
---|---|
Amazon VPC 이해 (0) | 2024.04.13 |
Amazon S3 이해 (0) | 2024.04.06 |
Amazon EC2 이해 (0) | 2024.03.30 |
AWS를 사용하기 위한 도구 (0) | 2024.03.23 |