1. 지역(region) 선택
- 지역은 AWS 리소스가 있는 지리적 영역
- 지역을 선택할 때에는 서비스, 데이터 및 애플리케이션에 적합한 지역을 결정할 때 네 가지 비즈니스 요소를 고려해야 함
1) 데이터 커버넌스 및 법적 요구 사항 준수
- 회사와 위치에 따라 특정 영역에서 데이터를 실행해야 하는 경우
- 예: 회사에 모든 데이터를 영국 내부에 유지해야 한다는 규정이 있는 경우 런던 리전 선택
2) 고객과의 접근성
- 고객과 가까운 리전을 선택하면 고객에게 콘텐츠를 더 빠르게 제공하는데 도움이 됨
- 예: 본사는 워싱턴 DC에 있고 고객 중 다수가 싱가포르에 거주하고 있는 경우, 인프라를 본사와 가까운 버지니아 북부 리전에서 실행할 지, 고객과 가까운 싱가포르 리전에서 실행할 지 고려하여 리전 선택
3) 지역 내에서 사용 가능한 서비스
- 경우에 따라 고객에 제공하려는 기능이 가장 가까운 지역에 없을 수 있으므로 서비스를 제공하는 리전 중 하나에서 선택
- 예: 개발자가 Amazon Braket(AWS 양자 컴퓨팅 플랫폼)을 사용하는 애플리케이션을 빌드하기를 원하지만 Amazon Braket이 전 세계 모든 AWS 리전에서 제공되지 않으므로 개발자는 서비스가 제공 가능한 지역 중 하나에서 이 플랫폼을 실행해야 함
4) 요금
- 여러 요소에 의해 서비스 비용이 지역마다 다름
- 예: 미국과 브라질에서 애플리케이션을 실행할 것을 고려해야하는 경우 브라질의 세금 구조 때문에 상파울루 리전은 오레곤 리전과 비교하여 동일한 워크로드를 실행하는 데 50% 더 많은 비용이 소요될 수 있음
2. 가용 영역(AZ: Availablility Zone)
- 지역(region) 내의 단일 데이터 센터 또는 데이터 센터 그룹
- 서로 수십 마일 떨어져 있으며, 이 간격은 가용 영역 간의 지연 시간(콘텐츠가 요청된 시점과 수신된 시점 간의 차이)이 짧을 정도로 충분히 가깝지만 지역의 한 부분에서 재해가 발생할 경우 여러 가용 영역이 영향을 받을 가능성을 줄일 만큼은 멀리 떨어져 있음
- 장애 계획을 수립하고 여러 가용 영역에 애플리케이션을 배포하는 것은 복원력 있는 고가용성 아키텍처를 구축하는 데 중요한 부분
- 캘리포니아 북부, 오레곤, GovCloud(미국 서부)는 별도의 지역(rigion)
- 캘리포니아 북부 지역은 'us-west-1'이라고 하며, 이 지역에는 3개의 가용 영역(AZ)인 1a, 1b, 1c 가 있으며 그 가용영역 내에 각 3개의 데이터 센터를 가짐
3. 엣지 로케이션(Edge locations)
- Amazone CloudFront가 더 빠른 전송을 위해 콘텐츠의 캐시된 사본을 고객에게 더 가깝게 저장하는 데 사용하는 사이트
- Amazon EC2 인스턴스 오리진: 회사의 데이터가 브라질에 저장되어 있음
- 엣지 로케이션: 중국 내 고객과 가까운 엣지 로케이션에 사본을 로컬로 캐시할 수 있음
- 고객: 중국 내에서 고객이 파일을 요청하면 Amazon CloudFront는 엣지 로케이션의 캐시에서 해당 파일을 검색하여 고객에게 전송
4. AWS 서비스와 상호 작용하는 방법
1) AWS Management Console
- Amazone 서비스 액세스 및 관리를 위한 웹 기반 인터페이스
- 최근에 사용한 서비스에 빠르게 액세스하고 이름, 키워, 약어로 다른 서비스를 검색할 수 있음
- 콘솔에는 작업을 수행하는 프로세를 단순화할 수 있는 마법사 및 잗종화 및 워크플로가 포함되어 있음
- AWS 콘솔 모바일 애플리케이션을 사용하여 리소스, 모니터링, 경보 보기, 결제 정보 확인 등의 작업 가능
- 여러 ID가 동시에 AWS 콘솔 모바일 앱에 로그인 가능
2) AWS 명령줄 인터페이스(AWS Command Line Interface)
- API 요청을 수행할 때 시간을 절약하기 위해 사용
- 하나의 도구를 통해 명령줄에서 직접 여러 AWS 서비스를 제어할 수 있음
- Windows, macOS, Linux 사용자가 사용할 수 있음
- 스크립트를 통해 서비스 및 애플리케이션이 수행하는 작업을 자동화할 수 있음
- Amazon EC2 인스턴스를 시작하고 Amazon EC2 인스턴스를 특정 Auto Scaling 그룹에 연결하는 등의 작업을 명령을 사용해 수행할 수 있음
3) 소프트웨어 개발 키트(Software Development kits)
- 프로그래밍 언어 또는 플랫폼용으로 설계된 API를 통해 AWS 서비스를 보다 간편하게 사용할 수 있음
- AWS 서비스를 기존 애플리케이션과 함께 사용하거나 AWS에서 실행할 완전히 새로운 애플리케이션을 생성할 수 있음
- 지원되는 프로그래밍 언어에는 C++, 자바, .NET 등이 있음
4) AWS Elastic Beanstalk
- 사용자가 코드 및 구성 설정을 제공하면 아래와 같은 작업을 수행하는데 필요한 리소스 배포
- 용량 조절
- 로드 밸런싱
- 자동 조정
- 애플리케이션 상태 모니터링
5) AWS CloudFormation
- AWS Management Console을 사용하여 개별적으로 리소스를 프로비저닝하는 대신 코드 줄을 작성하여 환경을 구축
- 리소스를 안전하고 반복 가능한 방식으로 프로비저닝하므로 수작업을 수행하거나 사용자 지정 스크립트를 작성할 필요 없이 인프라 및 애플리케이션을 빈번히 구축할 수 있음
- 스택을 관리할 때 수행해야 할 적절한 작업을 결정하고 오류를 감지하면 변경 사항을 자동으로 롤백함
*프로비저닝: 사용자가 요청한 IT 자원을 사용할 수 있는 상태로 준비하는 것, IT 인프라를 생성하고 설정하는 프로세스