AWS 서비스와 상호 작용하는 방법
API라고 하는 것은 애플리케이션 프로그래밍 인터페이스 즉 어떻게 요청을 보내면 어떻게 응답을 줄 것인지에 대한 약속이에요. 여러분은 이렇게 미리 정해진 약속인 API를 호출해서 AWS 리소스를 구성하고 또 관리할 수가 있습니다.
AWS Management Console
AWS Management Console은 Amazon 서비스 액세스 및 관리를 위한 웹 기반 인터페이스입니다. 최근에 사용한 서비스에 빠르게 액세스하고 이름, 키워드 또는 약어로 다른 서비스를 검색할 수 있습니다. 콘솔에는 작업을 수행하는 프로세스를 단순화할 수 있는 마법사 및 자동화된 워크플로가 포함되어 있습니다.
또한 AWS 콘솔 모바일 애플리케이션을 사용하여 리소스 모니터링, 경보 보기, 결제 정보 확인 등의 작업을 수행할 수 있습니다. 여러 ID가 동시에 AWS 콘솔 모바일 앱에 로그인할 수 있습니다.
우리는 콘솔을 통해서 AWS 리소스를 시각적이면서도 이해하기 쉬운 형태로 관리할 수가 있죠. 이 기능은 서비스를 처음 시작해서 관련 지식을 쌓을 때 굉장히 유용하게 사용하실 수가 있어요. 하지만 우리가 프로덕션 환경에서 실행할 준비가 끝나면 콘솔에서처럼 클릭을 통해서 AWS 리소스를 만들고 관리하는 이러한 방식에만 의존할 수는 없죠.
아래와 같이 스크립팅 또는 프로그래밍할 수 있는 도구를 사용해서 API를 호출하는 방법을 사용해야 합니다.
AWS Command Line Interface(AWS CLI)
API 요청을 수행할 때 시간을 절약하기 위해 AWS Command Line Interface(AWS CLI)를 사용할 수 있습니다. AWS CLI를 사용하면 하나의 도구를 통해 명령줄에서 직접 여러 AWS 서비스를 제어할 수 있습니다. Windows, macOS, Linux 사용자가 AWS CLI를 사용할 수 있습니다.
AWS CLI를 사용하면 스크립트를 통해 서비스 및 애플리케이션이 수행하는 작업을 자동화할 수 있습니다. 예를 들어 Amazon EC2 인스턴스를 시작하고 Amazon EC2 인스턴스를 특정 Auto Scaling 그룹에 연결하는 등의 작업을 명령을 사용해 수행할 수 있습니다.
소프트웨어 개발 키트(SDK)
AWS 서비스를 액세스 및 관리할 수 있는 또 다른 옵션은 소프트웨어 개발 키트(SDK)입니다. SDK를 사용하면 프로그래밍 언어 또는 플랫폼용으로 설계된 API를 통해 AWS 서비스를 보다 간편하게 사용할 수 있습니다. SDK를 통해 AWS 서비스를 기존 애플리케이션과 함께 사용하거나 AWS에서 실행할 완전히 새로운 애플리케이션을 생성할 수 있습니다.
AWS Elastic Beanstalk
AWS Elastic Beanstalk에서는 사용자가 코드 및 구성 설정을 제공하면 Elastic Beanstalk이 다음 작업을 수행하는 데 필요한 리소스를 배포합니다.
- 용량 조정
- 로드 밸런싱
- 자동 조정
- 애플리케이션 상태 모니터링
AWS Elastic Beanstalk은 Amazon EC2를 기반으로 하는 환경을 프로비저닝할 수 있게 지원하는 서비스입니다. 이때 우리는 네트워크, EC2 인스턴스, 규모 조정, Elastic Load Balancer를 구축하기 위해서 콘솔을 직접 클릭하거나 여러 명령을 작성하지 않아도 되죠. 대신에 AWS Elastic Beanstalk 서비스에 애플리케이션 코드 그리고 원하는 구성을 제공하시면 이러한 정보들을 바탕으로 알아서 자동으로 환경이 구축되며, 환경 구성을 이토록 쉽게 저장해서 다시 배포하실 수가 있죠.
모든 구성 요소를 개별적으로 여러분께서 프로비저닝하시고 관리하셔야 되는 그러한 번거로움이 없어집니다. 그러면서도 리소스에 대한 가시성과 제어 기능은 완벽하게 유지하실 수가 있죠. 즉 인프라가 아닌 비즈니스 애플리케이션에 집중할 수 있게 도와줍니다.
AWS CloudFormation
AWS CloudFormation은 코드형 인프라 도구로 이를 사용하여 인프라를 코드로 취급할 수 있습니다. 즉, AWS Management Console을 사용하여 개별적으로 리소스를 프로비저닝하는 대신 코드 줄을 작성하여 환경을 구축할 수 있습니다.
AWS CloudFormation은 리소스를 안전하고 반복 가능한 방식으로 프로비저닝하므로 수작업을 수행할 필요 없이 인프라 및 애플리케이션을 빈번히 구축할 수 있습니다. 이 서비스는 스택을 관리할 때 수행해야 할 적절한 작업을 결정하고 오류를 감지하면 변경 사항을 자동으로 롤백합니다.
CloudFormation 템플릿이라고 하는 JSON 혹은 YAML 텍스트 기반 문서를 사용을 하고 있고요. 이러한 문서들을 가지고 다양한 AWS 리소스를 정의할 수 있습니다. 이러한 템플릿을 사용하면 정확한 구축 방법이나 세부 사항을 여러분이 직접 지정하지 않고도 구축할 항목들을 정의하실 수가 있죠.
CloudFormation 템플릿에서 여러분께서 리소스를 정의하시면 CloudFormation이 템플릿을 분석하고 CloudFormation 엔진이라고 하는 것이 여러분께서 정의한 모든 리소스의 프로비저닝과 API 호출과 관련한 세부 사항들을 모두 처리해서 필요한 모든 것들을 구축해 줍니다. CloudFormation은 EC2 기반 솔루션에만 구축되지 않고요. CloudFormation은 스토리지, 데이터베이스, 분석, 기계 학습 등의 굉장히 다양한 AWS 리소스를 지원합니다. 즉, CloudFormation은 AWS 백엔드로 가는 모든 호출과 API를 사용자 대신해서 관리를 해준다는 것이죠.
또한 동일한 CloudFormation 템플릿을 여러 계정이나 여러 리전에서 동시에 실행한다면 여러 계정 또는 리전에서 동일한 환경이 생성됩니다. 이게 가능한 이유는 완전히 자동화된 프로세스이기 때문이죠. 그리고 이 프로세스를 사용했을 때 사람이 손으로 직접 했을 때 발생하는 오류가 발생할 여지가 적어집니다.
[출처]
AWS Cloud Practitioner Essentials
'자격증 > AWS - CLF' 카테고리의 다른 글
서브넷 및 네트워크 액세스 제어 목록 (1) | 2023.11.20 |
---|---|
AWS와의 연결 (0) | 2023.11.20 |
엣지 로케이션 (0) | 2023.10.24 |
AWS 글로벌 인프라 (0) | 2023.10.24 |
Elastic Load Balancing을 사용하여 트래픽 리디렉션 (0) | 2023.10.18 |