AWS 리소스를 프로비저닝하는 방법

2021. 8. 19. 13:52카공리스트/AWS Cloud Practitioner Essentials

본 글의 내용은 AWS Cloud Practitioner Essentials (Korean)에서 발췌함

 

AWS 서비스와 사용자가 상호 작용하는 방법은 API다.

API는 애플리케이션 프로그래밍 인터페이스로 AWS의 모든 것은 API 호출과 관련된다.

 

AWS 서비스와의 상호작용 방법이 미리 정해져있다는 것이다.

이러한 API를 호출하여 AWS 리소스를 구성하고 관리할 수 있다.

(ex) EC2 인스턴스 시작, AWS Lambda 함수 생성

 

AWS에 대한 다양한 요청과 다양한 API 호출이 발생한다.

AWS Management Console, AWS CLI(명령줄 인터페이스), AWS 소프트웨어 개발 키트, 또는 AWS CloudFormation 같은 다른 도구를 사용하여 AWS API로의 전송 요청을 만들어 AWS 리소스를 생성, 관리할 수 있다.

 

 

AWS Management Console

 

AWS Management Console

 

AWS Management Console은 Amazon 서비스 액세스 및 관리를 위한 웹 기반 인터페이스다.

 

최근에 사용한 서비스에 빠르게 액세스하고 이름, 키워드 or 약어로 다른 서비스를 검색할 수 있다.

콘솔에는 작업을 수행하는 프로세스를 단순화할 수 있는 마법사 및 자동화된 워크플로가 포함되어 있다

 

또한 AWS 콘솔 모바일 애플리케이션을 사용하여 리소스 모니터링, 경보 보기, 결제 정보 확인 등의 작업을 수행할 수 있다.

여러 ID가 동시에 AWS 콘솔 모바일 앱에 로그인할 수 있다.

 

 

AWS CLI

 

API 요청을 수행할 때 시간을 절약하기 위해 AWS CLI (명령줄 인터페이스)를 사용할 수 있다.

AWS CLI를 사용하면 하나의 도구를 통해 명령줄에서 직접 여러 AWS 서비스를 제어할 수 있다.

AWS CLI는 Windows, macOS, Linux 사용자가 사용할 수 있다.

 

AWS CLI를 사용하면 스크립트를 통해 서비스 및 애플리케이션이 수행하는 작업을 자동화할 수 있다.

(ex) EC2 인스턴스를 시작하고 EC2 인스턴스를 특정 Auto Scaling그룹에 연결하는 등의 작업을 명령을 사용해 수행할 수 있다.

 

 

소프트웨어 개발 키트 (SDK)

 

AWS 서비스를 액세스 및 관리할 수 있는 또 다른 옵션은 소프트웨어 개발 키트(SDK)다.

SDK를 사용하면 프로그래밍 언어 or 플랫폼용으로 설계된 API를 통해 AWS 서비스를 보다 간편하게 사용할 수 있다.

 

SDK를 통해 AWS 서비스를 기존 애플리케이션과 함께 사용하거나 AWS에서 실행할 완전히 새로운 애플리케이션을 생성할 수 있다.

 

SDK를 사용하기 시작하는데 도움이 되도록 AWS는 지원되는 각 프로그래밍 언어에 대한 설명서와 샘플코드를 제공한다.

지원되는 프로그래밍 언어에는 C++, Javam .NET 등이 있다.

 

 

 

AWS Management Console, CLI와 SDK를 사용하여 AWS 환경을 프로비저닝하고 관리할 수 있다.

리소스를 프로비저닝하고 싶다면 콘솔에 로그인해 여러 번 클릭하거나 명령을 작성하거나 프로그램을 작성하면 된다.

 

다른 방법으로 AWS 환경을 관리할 수도 있다.

AWS Elastic Beanstalk와 AWS CloudFormation 같은 관리 도구를 사용하는 방법이다.

 

 

AWS Elastic Beanstalk

 

AWS Elastic Beanstalk은 EC2 기반 환경 프로비저닝을 지원하는 서비스다.

 

네트워크, EC2 인스턴스, 규모 조정, Elastic Load Balancer를 구축하기 위해 콘솔을 클릭하거나 여러 가지 명령을 작성하지 않아도 된다.

대신 AWS Elastic Beanstalk 서비스에 애플리케이션 코드와 원하는 구성을 제공하면 이러한 정보를 바탕으로 환경이 구축된다.

 

AWS Elastic Beanstalk를 이용하면 환경 구성을 쉽게 저장하여 다시 배포할 수 있다.

또한 모든 구성 요소를 개별적으로 프로비저닝하고 관리하는 번거로움이 없어지며 기본 리소스의 가시성과 제어 기능을 유지할 수 있다.

 

인프라가 아닌 비즈니스 애플리케이션에 집중하게 되는 것이다.

 

 

즉, AWS Elastic Beanstalk에서는 사용자가 코드 및 구성 설정을 제공하면 Elastic Beanstalk이 다음 작업을 수행하는데 필요한 리소스를 배포한다.

 

* 용량 조정

* 로드 밸런싱

* 자동 조정

* 애플리케이션 상태 모니터링

 

 

AWS CloudFormation

 

EC2 기반 솔루션에만 국한되지 않고 CloudFormation은 스토리지, 데이터베이스, 분석, 기계 학습 등의 다양한 AWS 리소스를 지원한다.

CloudFormation을 사용하여 인프라를 코드로 취급할 수 있다. (IaC)

 

즉, AWS Managment Console을 사용하여 개별적으로 리소스를 프로비저닝하는 대신 코드 줄을 작성하여 환경을 구축할 수 있다.

 

CloudFormation 템플릿에서 리소스를 정의하면 CloudFormation이 템플릿을 구문 분석하고 사용자가 병렬로 정의한 모든 리소스의 프로비저닝을 시작한다.

CloudFormation은 백엔드 AWS로 가는 모든 호출과 API를 사용자 대신 관리한다.

 

동일한 CloudFormation 템플릿을 여러 계정이나 리전에서 실행할 수 있으며 여러 계정 또는 리전에서 동일한 환경이 생성된다.

 

또한 CloudFormation은 리소스를 안전하고 반복 가능한 형식으로 프로비저닝하므로 수작업을 수행하거나 사용자 지정 스크립트를 작성할 필요 없이 인프라 및 애플리케이션을 빈번히 구축할 수 있다.

완전히 자동화된 프로세스이므로 인적 오류가 발생할 여지가 적다는 것이다.

 

이 서비스는 스택을 관리할 때 수행해야 할 적절한 작업을 결정하고 오류를 감지하면 변경 사항을 자동으로 롤백한다.

 

 

요약

 

* AWS Management Console은 사용자가 학습하기 좋고, 시각적 정보 확인에 유용하다.

  그러나 수동 도구이므로 자동화를 실행하기에 좋은 옵션은 아니다.

 

* CLI를 사용하여 터미널을 이용해 AWS와 상호작용하도록 스크립트를 작성할 수 잇따.

 

* SDK를 사용하여 AWS와의 상호작용에 대한 프로그램을 작성할 수도 있고 AWS Elastic Beanstalk 또는 AWS CloudFormation 같은 관리 도구를 사용할 수도 있다.

'카공리스트 > AWS Cloud Practitioner Essentials' 카테고리의 다른 글

글로벌 네트워킹  (0) 2021.08.24
AWS와의 연결 (VPC)  (0) 2021.08.19
AWS 글로벌 인프라  (0) 2021.08.18
다양한 컴퓨팅 서비스  (0) 2021.08.17
메시징 및 대기열  (1) 2021.08.16