[AWS] Certified Solutions Architect - Associate 취득 후기
이번에 AWS 자격증인 Solutions Architect - Associate (SAA)을 취득하였습니다!! 단순 자격증만을 취득하기 목적이 아닌 AWS 각각의 서비스들을 공부하면서 진행했기 때문에 총 2달의 시간이 소요되었습니다. 어떤 방법으로 공부했는지와 취득 시 꿀팁 등을 공유해드리도록 하겠습니다.
시험 공부
시험 공부는 크게 3단계로 공부하였으며 하나씩 공유해드립니다.
1. Udemy 강의
Solutions Architect - Associate 자격증에서 가장 유명한 Stephane 선생님의 Udemy 강의입니다.
examtopics 사이트의 장점은 Discussion을 통해 각 항목에 대한 상세한 설명을 각 유저들이 남긴 댓글을 통해 확인할 수 있어 문제를 이해하는데 큰 도움이 되었습니다. (사이트에서 틀린 정답이 있어 투표에 따른 정답을 확인하시면 됩니다. 덤프 파일 또한 실제 정답과 다른 정답이 있다고 합니다.)
추가로 빠르게 합격하고 싶으신 분은 덤프 파일을 구매하시는 것을 추천해드립니다!
시험 진행
시험 신청
AWS Training 센터를 통해 시험을 예약하였으며, 온라인 시험(OnVUE)으로 신청하였습니다.
시험 신청 시점은 시험 공부 1, 2번을 완료하고 기출 문제를 풀기 시작할 때쯤 2주 뒤로 신청했습니다. 온라인 시험이기 때문에 독립된 공간에서 혼자 진행해야되며, 마이크와 캠이 지원되는 환경에서 진행해야 됩니다.
온라인 시험 진행
온라인 시험을 진행하기 이전에 테스트 시험을 진행하였습니다. 마이크와 캠이 잘 연결되는지 확인하고, 정상적으로 테스트 프로그램이 실행되는지를 1~2일 전에 확인하였습니다.
시험 시작 30분 전에 온라인으로 체크인을 진행하였습니다. 온라인 체크인을 위한 사이트를 QR코드로 접속하여 얼굴과 신분증 사진 찍고 시험 장소(독립된 공간)의 4면을 사진 찍어 업로드하여 온라인 체크인을 완료합니다.
온라인 체크인을 완료하면 시험 감독관과 1대1로 영어로 음성 및 채팅으로 소통하면서 시험 공간에 대한 확인을 진행합니다. 책상 위에는 노트나 연필, 기타 시험에 불필요한 물건들이 없어야하며 시험 장소 전체와 책상 아래 등을 상세하게 확인합니다. 손목에 시계, 책상 위에 스피커 등 모든 항목을 시험 감독관의 지시에 따라서 이행하면 완료됩니다.
완료 이후 시험을 진행할 수 있습니다. 시험은 선택한 언어로 표시되며 영어 버튼을 클릭하면 영문으로된 문제를 바로 확인하실 수 있습니다. 한국식 표현이 조금 애매한 문제가 조금 있어 영문을 통해 문제를 몇가지 확인하였습니다. 총 시험 시간은 170분(편의 사항 요청으로 30분 추가) 중에서 70분 정도 사용하여 65문제를 풀고 결과를 제출하였습니다. 완료 후 시험에 대한 설문조사를 끝으로 마무리됩니다.
시험 결과
시험 결과는 다른 후기를 확인했을 때 보통 2~3일만에 나온다고 했지만 저는 단 3시간만에 결과를 받았습니다!! (너무 일찍 결과가 나와 사실 하루 뒤에 알았습니다 ㅎㅎ) 시험 신청 비용(17만원)이 큰 비용이었기 때문에 한번에 붙기를 기원했는데 다행이네요.
시험을 지원하셨거나 지원 예정이신 분들은 위 내용을 참고하셔서 꼭 한번에 합격하시길 바랍니다!! 예상 필요 기간은 AWS를 접해보시지 않은 분들이라면 2~3달 정도, 처음 접해보시는 분들이라면 1~2달의 시간을 투자하시면 반드시 합격하실 수 있을 겁니다!
지금까지 AWS 자격증인 Solutions Architect - Associate 취득 후기였습니다....! 끝...!
AWS에서 CloudWatch를 통해 서버의 메모리 및 디스크 사용량 등을 확인하기 위해서는 EC2 서버에 CloudWatchAgent를 설치해야 됩니다. 리눅스 서버의 서버의 메모리 및 디스크 사용량 등을 확인하기 위해 CloudWatchAgent를 설치하고, AWS를 설정하는 방법을 알아봅시다.
IAM Role 적용
EC2에서 CloudWatchAgent를 통해 EC2 인스턴스의 정보를 보낼 수 있도록 IAM 역할을 인스턴스에 연결해야 합니다. 허용이 필요한 정책은 CloudWatchAgentServerPolicy 이며, IAM 역할 추가를 통해 생성합니다.
IAM -> Roles 메뉴에서 신규로 Role을 생성합니다.
서비스는 EC2를 선택합니다.
정책은 CloudWatchAgentServerPolicy를 검색 후 해당 정책을 선택합니다.
IAM Role 이름을 설정 후 생성합니다.
생성된 IAM Role을 확인하실 수 있습니다.
이제 EC2 -> Instances 메뉴에서 역할을 적용할 EC2를 우클릭 후 Security -> Modify IAM role을 클릭합니다.
생성한 IAM role을 선택 후 업데이트하면 IAM Role 적용이 완료됩니다.
CloudWatchAgent 설치 및 설정 파일 적용
CloudWatchAgent를 설치할 리눅스 서버에 접속 후 설치 파일을 통해 패키지를 설치하고, 설정 파일을 적용해보겠습니다. 테스트한 EC2 서버의 OS는 Rocky Linux 9.2를 사용하였습니다.
설치 파일을 다운로드 하기 위해 wget 명령어를 사용합니다. wget 명령어가 없을 경우 yum 명령어로 설치합니다.
아래 명령어를 통해 추가한 config.json 파일 내용으로 AmazonCloudWatchAgent를 실행합니다.
실행 명령어
amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/tmp/config.json
결과
****** processing amazon-cloudwatch-agent ******
I! Trying to detect region from ec2 D! [EC2] Found active network interface I! imds retry client will retry 1 timesSuccessfully fetched the config and saved in /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/file_config.json.tmp
Start configuration validation...
2023/12/07 07:27:51 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/file_config.json.tmp ...
2023/12/07 07:27:51 I! Valid Json input schema.
2023/12/07 07:27:51 D! ec2tagger processor required because append_dimensions is set
2023/12/07 07:27:51 D! metric decorator required because measurement fields are set
2023/12/07 07:27:51 D! pipeline hostDeltaMetrics has no receivers
2023/12/07 07:27:51 Configuration validation first phase succeeded
I! Detecting run_as_user...
I! Trying to detect region from ec2
D! [EC2] Found active network interface
I! imds retry client will retry 1 times
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent -schematest -config /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml
Configuration validation second phase succeeded
Configuration validation succeeded
아래 명령어를 통해 정상적으로 AmazonCloudWatchAgent가 실행되었는지 확인합니다.
● amazon-cloudwatch-agent.service - Amazon CloudWatch Agent
Loaded: loaded (/etc/systemd/system/amazon-cloudwatch-agent.service; enabled; preset: disabled)
Active: active (running) since Thu 2023-12-07 07:26:19 UTC; 23s ago
Main PID: 11484 (amazon-cloudwat)
Tasks: 7 (limit: 22602)
Memory: 19.7M
CPU: 170ms
CGroup: /system.slice/amazon-cloudwatch-agent.service
└─11484 /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent -config /opt/aws/amazon-cloudwatch-agent/etc/amazon>
Dec 07 07:26:19 TEST start-amazon-cloudwatch-agent[11489]: 2023/12/07 07:26:19 Reading json config file path: /opt/aws/amazon-cloudwa>
Dec 07 07:26:19 TEST start-amazon-cloudwatch-agent[11489]: 2023/12/07 07:26:19 I! Valid Json input schema.
Dec 07 07:26:19 TEST start-amazon-cloudwatch-agent[11489]: I! Detecting run_as_user...
Dec 07 07:26:19 TEST start-amazon-cloudwatch-agent[11489]: I! Trying to detect region from ec2
Dec 07 07:26:19 TEST start-amazon-cloudwatch-agent[11489]: 2023/12/07 07:26:19 D! ec2tagger processor required because append_dimensi>
Dec 07 07:26:19 TEST start-amazon-cloudwatch-agent[11489]: 2023/12/07 07:26:19 D! metric decorator required because measurement field>
Dec 07 07:26:19 TEST start-amazon-cloudwatch-agent[11489]: 2023/12/07 07:26:19 D! pipeline hostDeltaMetrics has no receivers
Dec 07 07:26:19 TEST start-amazon-cloudwatch-agent[11489]: 2023/12/07 07:26:19 Configuration validation first phase succeeded
Dec 07 07:26:19 TEST start-amazon-cloudwatch-agent[11484]: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json does not>
Dec 07 07:26:19 TEST start-amazon-cloudwatch-agent[11484]: I! Detecting run_as_user...
인스턴스 메트릭 정보 확인
이제 CloudWatch에서 정상적으로 인스턴스의 메트릭 정보가 저장되고 있는지 확인합니다.
CloudWatch -> Metrics -> All metrics 메뉴를 통해 "CloudWatch/TestMetrics" 이름의 네임스페이스가 생성되었는지 확인합니다.
config.json 파일에서 정의한 DISK_USED, MEMORY_USED 정보를 검색하여 메트릭 정보를 확인하실 수 있습니다.
DISK_USED
MEMORY_USED
이제 AWS 리눅스 EC2 서버의 메모리 및 디스크 사용량 등의 인스턴스 정보를 CloudWatch를 통해서 확인하시길 바랍니다. 지금까지 CloudWatchAgent를 설치하고, AWS를 설정하는 작업을 알아보는 시간이었습니다....! 끝...!
AWS에서 CloudWatch를 통해 서버의 메모리 및 디스크 사용량 등을 확인하기 위해서는 EC2 서버에 CloudWatchAgent를 설치해야 됩니다. 윈도우 서버의 메모리 및 디스크 사용량 등을 확인하기 위해 CloudWatchAgent를 설치하고, AWS를 설정하는 방법을 알아봅시다.
IAM Role 적용
EC2에서 CloudWatchAgent를 통해 EC2 인스턴스의 정보를 보낼 수 있도록 IAM 역할을 인스턴스에 연결해야 합니다. 허용이 필요한 정책은 CloudWatchAgentServerPolicy 이며, IAM 역할 추가를 통해 생성합니다.
IAM -> Roles 메뉴에서 신규로 Role을 생성합니다.
서비스는 EC2를 선택합니다.
정책은 CloudWatchAgentServerPolicy를 검색 후 해당 정책을 선택합니다.
IAM Role 이름을 설정 후 생성합니다.
생성된 IAM Role을 확인하실 수 있습니다.
이제 EC2 -> Instances 메뉴에서 역할을 적용할 EC2를 우클릭 후 Security -> Modify IAM role을 클릭합니다.
생성한 IAM role을 선택 후 업데이트하면 IAM Role 적용이 완료됩니다.
CloudWatchAgent 설치 및 설정 파일 적용
CloudWatchAgent를 설치할 윈도우 서버에 접속 후 설치 파일을 통해 패키지를 설치하고, 설정 파일을 적용해보겠습니다. 테스트한 EC2 서버의 OS는 Windows Server 2022를 사용하였습니다.
아래 명령어를 통해 추가한 config.json 파일 내용으로 AmazonCloudWatchAgent를 실행합니다.
& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -s -c file:"C:\Program Files\Amazon\AmazonCloudWatchAgent\config.json"
****** processing amazon-cloudwatch-agent ******
I! Trying to detect region from ec2
D! [EC2] Found active network interface
I! imds retry client will retry 1 timesSuccessfully fetched the config and saved in C:\ProgramData\Amazon\AmazonCloudWatchAgent\Configs\file_config.json.tmp
Start configuration validation...
2023/12/06 09:21:38 Reading json config file path: C:\ProgramData\Amazon\AmazonCloudWatchAgent\Configs\file_config.json.tmp ...
2023/12/06 09:21:38 I! Valid Json input schema.
I! Trying to detect region from ec2
D! [EC2] Found active network interface
I! imds retry client will retry 1 times2023/12/06 09:21:38 D! ec2tagger processor required because append_dimensions is set
2023/12/06 09:21:38 D! metric decorator required because measurement fields are set
2023/12/06 09:21:38 D! pipeline hostDeltaMetrics has no receivers
2023/12/06 09:21:38 Configuration validation first phase succeeded
Configuration validation second phase succeeded
Configuration validation succeeded
AmazonCloudWatchAgent has been stopped
AmazonCloudWatchAgent has been started
아래 명령어를 통해 정상적으로 AmazonCloudWatchAgent가 실행되었는지 확인합니다.
운영중인 서비스가 점차 커진다면 대용량의 실시간 데이터를 수집, 처리 및 분석할 수 있도록 구성해야됩니다. 별도의 데이터 처리 서버를 구성할 수 있겠지만 확장성 및 실시간 모니터링 등 데이터 처리에 필요한 기능을 구현해야 하므로 어려움이 많습니다. AWS에서는 클라우드 기반 데이터 스트리밍 플랫폼인 Amazon Kinesis를 사용하여 대용량의 실시간 데이터를 수집, 처리 및 분석할 수 있습니다.
주요 기능
Amazon Kinesis의 주요 기능은 크게 4가지로 구성되어 있습니다.
Kinesis Video Streams
비디오 스트림 캡처, 처리 및 저장
Kinesis Data Streams
데이터 스트림 캡처, 처리 및 저장
Kinesis Data Firehose
데이터 스트림 AWS 데이터 스토어로 로드
Kinesis Data Analytics
SQL 또는 Apache Flink로 데이터 스트림 분석
Kinesis Video Streams
Kinesis Video Streams는 동영상 스트림을 쉽게 처리하고 저장하기 위한 기능입니다. IoT 디바이스나 카메라에서 생성되는 동영상 스트림을 실시간으로 수집하고 처리할 수 있습니다. 또한 동영상 데이터를 압축하고 인코딩하며, 실시간으로 스트리밍하거나 저장할 수 있는 인프라를 제공합니다.
Kinesis Data Streams
Kinesis Data Streams은 대량의 실시간 데이터 스트림을 처리하고 분석하기 위한 기능입니다. 데이터 스트림은 하나 이상의 샤드로 구성되며, 각 샤드는 데이터의 순서를 보장하고 병렬 처리가 가능합니다. 데이터를 수집한 후 필요한 처리를 수행하거나 다른 AWS 서비스와 연동하여 사용할 수 있습니다.
Kinesis Data Firehose
Kinesis Data Firehose는 스트림 데이터를 처리하여 다양한 대상으로 전달하는 역할을 합니다. 데이터를 Amazon S3, Amazon Redshift, Amazon Elasticsearch 등과 같은 저장소나 분석 도구로 전달할 수 있습니다. 또한 데이터 전달 과정을 자동으로 관리하므로 개발자는 데이터 전달 파이프라인을 구축하고 관리하는데 시간을 절약할 수 있습니다.
Kinesis Data Analytics
Kinesis Data Analytics는 SQL 쿼리를 사용하여 스트림 데이터를 실시간으로 분석하는 데 사용됩니다. 데이터 스트림에서 생성된 실시간 데이터를 실시간으로 데이터를 가공하고, 패턴을 발견하며, 실시간 대시보드를 생성할 수 있습니다. 또한 SQL 쿼리를 통해 분석하면서 시각화 및 모니터링에 활용할 수 있습니다.
장단점
Amazon Kinesis는 강력한 실시간 데이터 스트리밍 및 처리 플랫폼이지만, 사용 시 고려해야 할 장점과 단점이 있습니다.
장점
실시간 데이터 처리: 대량의 실시간 데이터를 처리하고 분석하는데 탁월한 성능을 제공합니다.
확장성: 데이터 스트림을 여러 샤드로 나누어 처리할 수 있으며, 필요에 따라 확장하여 데이터 처리의 확장성을 보장하면서도 성능을 유지할 수 있습니다.
다양한 데이터 유형 처리: 웹사이트 로그, 센서 데이터, 애플리케이션 로그 등 다양한 소스의 데이터 유형을 처리할 수 있습니다.
간편한 데이터 파이프라인 구축: 간편하게 데이터 파이프라인을 쉽게 구축하고, 데이터 변환과 전달을 자동으로 관리하므로 개발자는 데이터 이동에만 집중하면 됩니다.
실시간 분석 및 모니터링: 실시간으로 데이터를 분석하고 모니터링할 수 있습니다.
다양한 대상으로의 전달: 데이터를 다양한 AWS 서비스 및 저장소로 전달할 수 있습니다.
단점
복잡성: 대규모 애플리케이션에서는 설정 및 구성 과정이 다소 복잡해질 수 있습니다.
비용: 데이터 처리량 및 스트림의 크기에 따라 과금되므로, 대규모 데이터 처리 시 비용이 증가할 수 있습니다.
모니터링 및 디버깅: 대용량 데이터 처리 시 모니터링 및 디버깅이 복잡해질 수 있습니다.
서비스 의존성: AWS 서비스에 의존성이 높아지므로, AWS 서비스가 불안정한 경우 영향을 받을 수 있습니다.
비용
Amazon Kinesis의 비용은 사용되는 리소스와 데이터 처리량에 따라 다를 수 있습니다
Kinesis Data Streams
데이터 샤드 수: 가장 큰 비용 요소는 데이터 샤드 수입니다. 데이터 샤드 수가 많을수록 비용이 증가합니다. 데이터 샤드 시간당 비용: 각 데이터 샤드당 시간당 비용이 부과됩니다.
Kinesis Data Firehose
전송량: 전송된 데이터 양에 따라 비용이 부과됩니다. 데이터 전송량이 많을수록 비용이 증가합니다. 전송 시간당 비용: 데이터 전송 시간당 비용이 부과됩니다.
Kinesis Data Analytics
처리량: 처리되는 데이터 양에 따라 비용이 부과됩니다. 처리량이 많을수록 비용이 증가합니다. 처리 시간당 비용: 처리된 시간당 비용이 부과됩니다.
활용
웹 사이트 모니터링 및 분석
모바일 서비스 발전에 따라 모바일에서 어플이나 웹 사이트를 통해 다양한 서비스를 이용하고 있습니다. 어플이나 웹 사이트에서 생성되는 로그 데이터를 수집하고 분석하여 성능, 사용자 동작, 에러 등을 실시간으로 모니터링 및 분석할 수 있습니다. 실시간 대시보드 및 경고 시스템을 구축하여 웹사이트의 상태를 실시간으로 파악하고 개선할 수 있습니다.
금융 거래 감지 및 분석
결제, 입출금, 주식 거래 등 실시간으로 많은 수의 금융 거래가 실시간으로 계속 발생되고 있습니다. 금융 거래 데이터를 실시간으로 처리하여 부정 거래나 신용카드 사기 등을 감지할 수 있습니다. 또한 금융 거래의 이상 패턴을 실시간으로 분석하여 신속하게 대응할 수 있습니다.
게임 분석
온라인 게임에서는 실시간으로 다른 플레이어들과 상호작용을 하면서 다양한 게임 플레이를 진행합니다. 온라인 게임에서 생성되는 사용자 데이터를 실시간으로 분석하여 게임 플레이, 플레이어 상호작용, 성과 등을 추적하고 게임 개선에 활용할 수 있습니다.
Amazon Kinesis를 통해 대용량의 실시간 데이터를 유연하게 처리해보시기 바랍니다. 지금까지 Amazon Kinesis를 알아보는 시간이었습니다....! 끝...!
EC2(온디맨드, 스팟, 예약) 인스턴스를 실행할 때, 인스턴스들은 물리적으로 AWS의 데이터 센터에 배치(Placement)되어 실행됩니다.
이렇게 AWS의 데이터 센터에 배치되는 위치를 EC2 Placement라고 하며, EC2 Placement에는 가용 영역 (Availability Zone)과 배치 그룹 (Placement Group), 두 가지 주요 요소가 있습니다
가용 영역 (Availability Zone)
가용 영역(Availability Zone)은 AWS의 데이터 센터가 물리적으로 분리된 지리적 위치입니다.
각 가용 영역은 고유한 전력, 네트워킹 및 연결성을 갖고 있으며, 장애가 발생할 경우 다른 가용 영역은 독립적으로 작동할 수 있습니다. 따라서 가용 영역을 사용하여 고가용성 및 내구성을 보장할 수 있습니다.
배치 그룹 (Placement Group)
배치 그룹은 동일한 물리적 하드웨어에서 여러 EC2 인스턴스를 실행할 수 있도록 지원하는 것입니다.
배치 그룹을 사용하면 인스턴스 간의 네트워크 지연 시간을 최소화하고 클러스터 컴퓨팅 또는 데이터 간의 고성능 통신을 제공할 수 있습니다. 배치 그룹은 크게 세 가지의 유형을 선택하여 생성할 수 잇습니다.
클러스터 배치 그룹(Cluster Placement Group)
클러스터 배치 그룹은 하나의 물리적 호스트에 인스턴스를 모아서 실행되어, 가장 높은 네트워크 성능을 제공합니다. 짧은 네트워크 지연 시간, 높은 네트워크 처리량 또는 둘 다의 이점을 활용할 수 있는 애플리케이션에 권장됩니다. 하지만 특정 가용 영역에 제한되어 물리적 호스트에 장애 발생 시 모든 EC2에 장애가 발생할 수 있어 고가용성은 떨어집니다.
파티션 배치 그룹(Partition Placement Group)
파티션 배치 그룹은 EC2를 파티션으로 분리하여 여러 물리적 호스트에 분산하여 실행합니다. 배치 그룹 내 파티션이 동일한 랙을 공유해지 않으므로 하드웨어 장애 가능성을 줄이는데 도움이 됩니다. 여러 가용 영역에 걸쳐 고가용성을 제공할 수 있지만 파티션 장애 발생 시 같은 파티션의 EC2에 모두 장애가 발생할 수 있습니다.
스프레드 배치 그룹(Spread Placement Group)
스프레드 배치 그룹은 인스턴스를 가능한 한 물리적으로 분리된 호스트에 실행하여 가용 영역 및 물리적 하드웨어에서 실패가 발생해도 안정성을 보장합니다. 서로 떨어져 있어야 하는 중요 인스턴스의 수가 적은 애플리케이션에서는 분산형 배치 그룹이 권장됩니다.
비용
EC2 Placement를 사용하여 EC2 인스턴스를 구성할 때, 추가 비용 없이 인스턴스의 배치를 최적화하여 성능과 가용성을 개선할 수 있습니다.
EC2 Placement는 인스턴스를 배치하는 방법에 대한 설정이며, 이는 인스턴스의 가격이나 인스턴스 자체에 영향을 미치지 않습니다. 비용은 EC2 인스턴스의 유형, 크기, 운영 체제 등과 같은 인스턴스 자체의 속성에 따라 결정됩니다.
EC2 Placement는 성능, 내구성 및 확장성을 위해 중요한 요소이며, 올바르게 구성하고 관리함으로써 안정적인 인스턴스 운영과 서비스 제공에 도움을 줍니다. 따라서 인스턴스를 실행하기 전에 가용 영역 및 플레이스먼트 그룹을 신중하게 선택하고 구성해보시기 바랍니다.
도메인은 인터넷에서 웹사이트나 이메일 등을 식별하는 주소로, 사용자가 웹사이트를 방문하거나 이메일을 보낼 때 사용됩니다.
도메인을 사용하기 위해서는 도메인 서버를 직접 구성하거나 가비아, 후이즈 등 도메인 리셀러를 통해서 공인 도메인을 구매하여 사용이 가능한데요.
Amazon에서는 가용성과 확장성이 뛰어난 클라우드 기반 DNS 웹 서비스를 Route 53을 통해 제공합니다. Route 53을 통해 EC2, ELB, S3 버킷 등 다양한 AWS 서비스와 연동하여 사용할 수도 있습니다.
주요 기능
Amazon Route 53은 확장 가능하고 안정적인 DNS 서비스로서, 도메인 이름 관리와 DNS 라우팅을 효과적으로 수행하는 데 필요한 주요 기능을 제공합니다.
도메인 등록 및 관리
Route 53을 사용하여 도메인을 등록하고, 도메인 이름의 소유권을 관리할 수 있습니다.
도메인은 amazon.com을 사용할 수 있지만 Route 53에서 바로 리셀러를 선택하여 공인 도메인을 구매하여 사용할 수 있습니다.
관리 콘솔을 통해 도메인 이름 등록, 갱신, 이전, 삭제 등의 작업을 손쉽게 수행할 수 있습니다.
DNS 라우팅
Route 53은 DNS 라우팅을 제공하여 도메인 이름을 해당하는 웹 서버 또는 AWS 리소스와 연결할 수 있습니다.
라우팅 정책을 사용하여 트래픽을 여러 리소스 간에 분산하거나, 특정 리전 또는 지연 시간이 가장 낮은 리소스로 트래픽을 전달할 수 있습니다.
고가용성 및 신뢰성
Route 53은 글로벌로 분산된 네트워크를 통해 DNS 서비스를 제공하므로 고가용성과 신뢰성이 높습니다.
전 세계의 DNS 서버로 트래픽을 분산하여 서비스 지연 시간을 최소화하고, 장애 발생 시 자동으로 트래픽을 다른 서버로 전환하여 연결성을 유지합니다.
상태 확인과 모니터링
Route 53은 지정된 도메인 또는 리소스에 대한 상태 확인 및 모니터링 기능을 제공합니다.
도메인 또는 엔드포인트의 가용성, 지연 시간, 성능 등을 모니터링하고, 상태가 변경되면 경고 및 알림을 제공합니다.
작동 방식
Amazon Route 53은 사용자(End User)의 요청을 AWS 또는 온프레미스에서 실행되는 인터넷 애플리케이션에 연결합니다.
리소스의 상태를 확인하기 위해서 Health Check를 통해 정상 작동 중인지 확인하고, AWS CloudWatch를 통해 모니터링 매트릭 및 알람을 관리합니다.
다이어그램
Amazon Route 53을 사용하는 웹 애플리케이션의 아키텍처입니다.
Amazon Route 53의 기능을 통해 DNS 서비스를 제공하고, 전체 웹 트래픽을 클라우드 프런트를 통해 전달됩니다. 또한 서비스 요청에 따라 특정 리전의 EIP 또는 ELB로 라우팅하거나, AWS에서 사용 중인 다른 리소스로 전달할 수도 있습니다.
각 요소들
DNS (Domain Name System)
인터넷에서 도메인 이름과 해당 도메인에 대한 IP 주소를 매핑하는 시스템입니다.
사용자가 사람이 이해하기 쉬운 도메인 이름을 입력하여 웹사이트나 이메일 서버 등의 리소스에 접근할 수 있게 합니다.
DNS 레코드 (DNS Record)
도메인 이름과 해당 도메인과 연결된 IP 주소 또는 서비스의 정보를 매핑하는 기록으로, 인터넷에서 도메인을 식별하고 해당 도메인으로의 트래픽을 올바르게 전송하는 역할을 합니다.
각각의 DNS 레코드 유형(A, CNAME, MX, TXT 등)은 특정 도메인 이름과 IP 주소, 서브도메인 등의 매핑 정보를 정의하여 웹사이트 호스팅, 이메일 전송, 서비스 지정 등을 가능하게 합니다.
호스팅 영역(Hosted Zone)
Amazon Route 53에서 도메인 이름의 DNS 정보를 저장하고 관리하는 영역입니다.
Route 53의 Hosted Zone을 사용하여 DNS 레코드를 추가, 수정, 삭제하여 도메인 이름과 관련된 리소스를 관리할 수 있습니다.
DNS 쿼리 (DNS Query)
사용자 또는 클라이언트(예: 웹 브라우저)가 도메인 이름을 IP 주소로 변환하기 위해 DNS 서버에 보내는 요청으로, 도메인 이름에 대한 정확한 IP 주소나 다른 DNS 레코드 정보를 받아오는 프로세스를 말합니다.
요금
Amazon Route 53은 사용한 내역에 대해서만 요금을 지불합니다. 큰 항목으로는 호스팅 영역 관리, DNS 쿼리 제공, 도메인 이름 관리 항목에서 요금이 지불됩니다.
호스팅 영역 및 레코드
처음 25개 호스팅 영역의 경우 월별 호스팅 영역당 0.50 USD
추가 호스팅 영역의 경우 월별 호스팅 영역당 0.10 USD 호스팅 영역 하나에는 10,000개의 레코드가 포함되며, 영역당 10,000개를 초과하는 각 레코드에는 월 0.0015 USD의 요금이 부과됩니다.
쿼리
표준 쿼리
월별 첫 10억 개 쿼리의 경우 1백만 쿼리당 0.40 USD
월별 10억 개를 초과하는 쿼리의 경우 1백만 쿼리당 0.20 USD
지연 시간 기반 라우팅 쿼리
월별 첫 10억 개 쿼리의 경우 1백만 쿼리당 0.60 USD
월별 10억 개를 초과하는 쿼리의 경우 1백만 쿼리당 0.30 USD
지역 DNS 및 지역 근접성 쿼리
월별 첫 10억 개 쿼리의 경우 1백만 쿼리당 0.70 USD
월별 10억 개를 초과하는 쿼리의 경우 1백만 쿼리당 0.35 USD
IP 기반 라우팅 쿼리*
월별 첫 10억 개 쿼리의 경우 1백만 쿼리당 0.80 USD
월별 10억 개를 초과하는 쿼리의 경우 1백만 쿼리당 0.40 USD
도메인 이름
도메인 이름에 대한 요금은 최상위 도메인(Top-level domain, TLD)별로 다릅니다. < TLD별 현재 요금에 대한 전체 목록 > 도메인 이름은 1년 단위로 등록되며, 계정당 최대 20개까지 도메인 이름을 등록할 수 있습니다
그외에는 DNS 방화벽, DNSSEC, 쿼리 로깅등을 구성한 경우 요금이 부과될 수 있습니다.
활용
DNS 라우팅 및 로드 밸런싱 Cloud 환경에서 서비스 운영 시 확장성과 가용성을 고려하여 서비스를 설계하고 운영해야합니다. 서비스는 DNS를 기반으로 운영되기 때문에 Amazon Route 53을 통해 DNS 라우팅을 구성하여 도메인 이름과 해당하는 리소스(예: 웹 서버, 로드 밸런서)를 연결할 수 있습니다. 라우팅 정책을 설정하여 트래픽을 분산하거나 지연 시간에 따라 트래픽을 가장 빠른 리소스로 전달하여 확장성과 가용성을 향상시킬 수 있습니다.
지리적 라우팅 SaaS 서비스를 국내 뿐만 아니라 해외 고객에 제공할 경우 각 서비스 사용자들은 해외 네트워크를 통해 서비스를 사용하게 됩니다. 해외에서 접속하는 서비스 사용자들은 지역에 따라 네트워크 지연에 따른 서비스 이용에 지연이 발생할 수 잇습니다. Amazon Route 53을 활용하여 지리적 라우팅을 구성하여, 사용자들의 지역에 따라 트래픽을 다른 리소스로 라우팅하여 지역별로 최적화된 서비스를 제공할 수 있습니다.
SSL/TLS 인증서 관리 HTTPS로 웹 서비스를 운영하기 위해서는 공인 도메인 발급 후 SSL/TLS 인증서 발급 및 적용이 필요합니다. Amazon Route 53을 사용하여 SSL/TLS 인증서를 발급하고 관리할 수 있습니다. 또한 SSL/TLS 인증서를 추가로 구매하여 사용할 필요 없이 Amazon Certificate Manager(ACM)과 통합하여 무료로 SSL/TLS 인증서를 쉽게 구성할 수 있습니다.
지금까지 Amazon에서 제공하는 클라우드 기반 DNS 웹 서비스를 Route 53을 알아보는 시간이었습니다....! 끝...!