본문 바로가기
AWS/Cloud Practitioner

[AWS]AWS 서비스와 상호 작용하는 방법(=프로비저닝)

by kiimy 2022. 4. 23.
728x90

AWS 환경을 프로비저닝하는 방법

프로비저닝이란?

- 프로비저닝은 IT 인프라를 설정하는 프로세스입니다. 또한 사용자와 시스템에서 사용할 수 있도록, 데이터와 리소스에 대한 액세스를 관리하는 데 필요한 단계를 지칭하기도 합니다.

프로비저닝과 설정은 각기 다른 작업이지만, 둘 다 배포 프로세스의 단계에 포함되며 일단 프로비저닝이 완료되어야 설정 단계를 진행할 수 있습니다. 

프로비저닝에는 서버 프로비저닝, 네트워크 프로비저닝, 사용자 프로비저닝, 서비스 프로비저닝 등 다양한 유형이 있습니다.

https://www.redhat.com/ko/topics/automation/what-is-provisioning

 

프로비저닝(Provisioning)이란? 종류, 설정, 배포, 자동화 방법

프로비저닝은 IT 인프라 설정 프로세스를 뜻하며, 데이터와 리소스에 대한 액세스 관리에 필요한 단계입니다. 서버, 네트워크, 사용자, 서비스 유형이 있습니다.

www.redhat.com

Application Programming Interface, API

AWS의 모든 것은 API 호출과 관련됩니다.

AWS 서비스와의 상호작용 방법이 미리 정해져 있다는 뜻이죠. 이러한 API를 호출하여 AWS 리소스를 구성하고 관리할 수도 있습니다.

예를 들어 EC2 인스턴스를 시작하거나 AWS Lambda 함수를 생성하는 식이죠. 이러한 작업은 AWS에 대한 다양한 요청과 다양한 API 호출이 됩니다.

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

AWS Management Console

Amazon 서비스 액세스 및 관리를 위한 웹 기반 인터페이스입니다. 최근에 사용한 서비스에 빠르게 액세스하고 이름, 키워드 또는 약어로 다른 서비스를 검색할 수 있습니다. 콘솔에는 작업을 수행하는 프로세스를 단순화할 수 있는 마법사 및 자동화된 워크플로가 포함되어 있습니다.
또한 AWS 콘솔 모바일 애플리케이션을 사용하여 리소스 모니터링, 경보 보기, 결제 정보 확인 등의 작업을 수행할 수 있습니다. 여러 ID가 동시에 AWS 콘솔 모바일 앱에 로그인할 수 있습니다.

* AWS리소스를 시각적이며 이해하기 쉬운 형태로 관리

- 테스트 환경 구축

- AWS 청구서 확인

- 모니터링

- 기술과 무관한 기타 리소스를 사용해 작업할 때 유용

==> 하지만 수동으로 리소스를 생성해야되서 다른 인스턴스 실행시 복잡함

<예시>

Amazon EC2 인스턴스를 만들려면 다양한 화면을 오가며 클릭하고 원하는 모든 구성을 설정해야 인스턴스를 시작할 수 있습니다. 나중에 다른 EC2 인스턴스를 시작하고 싶다면 콘솔로 돌아가 그 모든 과정을 다시 실행해 인스턴스를 실행해야 합니다. 인간에게 이러한 수동 프로비저닝을 맡기면 오류가 발생할 가능성이 생깁니다. 모든 일을 수동으로 처리하면 확인란 선택을 깜박하거나 철자를 틀리기 쉽죠.

AWS Command-line interface,  CLI

CLI를 사용하면 머신의 터미널에서 API 호출을 할 수 있습니다. Management Console의 시각적 탐색 방식과는 다릅니다. CLI를 사용하여 명령을 작성하면 작업을 스크립트하고 반복할 수 있습니다. 그러니까 EC2 인스턴스 시작을 위해 명령을 작성하고 실행할 수 있죠. 다른 인스턴스를 시작하고 싶다면 미리 작성한 명령을 다시 실행하기만 하면 됩니다. 이렇게 하면 인적 오류가 발생할 가능성이 줄어듭니다. 그리고 이러한 스크립트는 예약을 하거나 다른 프로세스에서 트리거하는 방식으로 자동 실행할 수 있습니다.

 

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

예를 들어 Amazon EC2 인스턴스를 시작하고 Amazon EC2 인스턴스를 특정 Auto Scaling 그룹에 연결하는 등의 작업을 명령을 사용해 수행할 수 있습니다.

 

Auto Scaling이란?

- https://cord-ai.tistory.com/109

 

EC2 Auto Scaling

 

cord-ai.tistory.com

AWS Software Development Kit, SDK

오랜 시간 동안 성공적이며 예측 가능한 클라우드 배포를 구현하려면 자동화가 대단히 중요합니다.

SDK를 사용하면 다양한 프로그래밍 언어로 AWS 리소스와 상호 작용할 수 있습니다. 따라서 개발자는 하위 수준 API를 사용하지 않고도 AWS를 사용하는 프로그램을 쉽게 만들고 앞에서 말한 것과 같이 수동으로 리소스를 생성하지 않아도 됩니다. 

= 프로그램 작성


AWS 환경을 프로비저닝하는 또 다른 방법

- AWS Elastic Beanstalk,  AWS CloudFormation 관리 도구

AWS Elastic Beanstalk

Amazon EC2 기반 환경 프로비저닝을 지원하는 서비스입니다. 네트워크, EC2 인스턴스, 규모 조정, Elastic Load Balancer를 구축하기 위해 콘솔을 클릭하거나 여러 가지 명령을 작성하지 않아도 됩니다. AWS Elastic Beanstalk 서비스에 애플리케이션 코드와 원하는 구성을 제공하면 이러한 정보를 바탕으로 환경이 구축됩니다. AWS Elastic Beanstalk를 이용하면 환경 구성을 쉽게 저장하여 다시 배포할 수 있습니다. AWS Elastic Beanstalk를 이용하면 모든 구성 요소를 개별적으로 프로비저닝하고 관리하는 번거로움이 없어지며 기본 리소스의 가시성과 제어 기능을 유지할 수 있습니다. 인프라가 아닌 비즈니스 애플리케이션에 집중하게 되죠.

AWS Elastic Beanstalk 에서는 사용자가 코드 및 구성 설정을 제공하면
Elastic Beanstalk이 다음 작업을 수행하는 데 필요한 리소스를 배포합니다.
-용량 조정
-로드 밸런싱
-자동 조정
-애플리케이션 상태 모니터링

코드와 원하는 구성 제공하면 이러한 정보를 바탕으로 환경 구축 and 이 환경을 쉽게 저장하여 다시 배포

AWS CloudFormation

- 자동화되고 반복 가능한 배포를 만드는 데 도움이 되는 서비스

AWS CloudFormation은 코드형 인프라 도구로 CloudFormation 템플릿이라고 하는 JSON 또는 YAML 텍스트 기반 문서를 사용하여 선언적인 방식으로 다양한 AWS 리소스를 정의할 수 있습니다. 이러한 선언적 형식을 사용하면 정확한 구축 방법 세부사항을 지정하지 않고도 구축할 항목을 정의할 수 있습니다. CloudFormation을 이용하면 원하는 항목을 사용자가 정의할 수 있으며 CloudFormation 엔진이 API 호출 관련 세부사항을 처리하여 모든 것을 구축합니다.

 

EC2 기반 솔루션에만 국한되지도 않습니다. CloudFormation은 스토리지, 데이터베이스, 분석, 기계 학습 등의 다양한 AWS 리소스를 지원합니다. CloudFormation 템플릿에서 리소스를 정의하면 CloudFormation이 템플릿을 구문 분석하고 사용자가 병렬로 정의한 모든 리소스의 프로비저닝을 시작합니다.

CloudFormation 템플릿에서 리소스를 정의 후 템플릿 구문 분석하고 정의한 리소스의 프로비저닝 

CloudFormation은 백엔드 AWS로 가는 모든 호출과 API를 사용자 대신 관리합니다. 동일한 CloudFormation 템플릿을 여러 계정이나 리전에서 실행할 수 있으며 여러 계정 또는 리전에서 동일한 환경이 생성됩니다. 완전히 자동화된 프로세스이므로 인적 오류가 발생할 여지가 적죠.

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

AWS CloudFormation은 리소스를 안전하고 반복 가능한 방식으로 프로비저닝하므로 수작업을 수행하거나 사용자 지정 스크립트를 작성할 필요 없이 인프라 및 애플리케이션을 빈번히 구축할 수 있습니다. 이 서비스는 스택을 관리할 때 수행해야 할 적절한 작업을 결정하고 오류를 감지하면 변경 사항을 자동으로 롤백합니다.

<요약>

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

AWS Management Console은 수동 도구입니다. 그래서 바로 자동화를 실행하기에 좋은 옵션이 아니죠.

대신 CLI를 사용하여 터미널을 이용해 AWS와 상호작용하도록 스크립트를 작성할 수 있습니다.

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

728x90

'AWS > Cloud Practitioner' 카테고리의 다른 글

[AWS]Elastic Load Balancing, ELB  (0) 2022.04.23
[AWS]EC2 규모 조정, Auto Scaling  (0) 2022.04.23
[AWS]엣지 로케이션  (0) 2022.04.23
[AWS]AWS 인프라  (0) 2022.04.23
[AWS]Amazon Elastic Compute Cloud, EC2 및 유형  (0) 2022.04.23

댓글