본문 바로가기

AWS/AWS Architecting

[AWS Architecting]자동화

반응형

 

1. 클라우드 인프라 구축 방법

AWS CloudFormation을 사용하면 코드형 인프라(IaC) 방식을 통해 인프라를 간편하게 구축할 수 있습니다.


코드형 인프라(IaC):

코드형 인프라(IaC)를 사용하면 Amazon Web Services(AWS) 리소스를 간편하게 배포할 수 있습니다. 

IaC 사용 시에는 코드를 사용하여 인프라 정의, 배포, 구성, 업데이트, 제거를 수행합니다.


템플릿은 환경에서 배포할 리소스를 설명 및 정의하는 텍스트 파일입니다. 

지정한 리소스를 프로비저닝하는 엔진이 해당 템플릿을 처리합니다.
1. JSON 또는 YAML 템플릿 파일에서 전체 애플리케이션 스택(애플리케이션에 필요한 모든 리소스)을 정의

2. 템플릿은 코드로 간주하여 버전 제어 시스템을 통해 관리

3. Amazon EC2 인스턴스 크기와 Amazon EC2 키 페어 등 템플릿의 런타임 파라미터를 정의
4. IaC 솔루션은 템플릿에 정의된 리소스를 프로비저닝

 

IaC의 이점:

빠른 속도와 높은 안전성 수동 배포보다 속도가 빠르며 오류 발생 가능성 감소
재사용성 인프라를 재사용 가능한 모듈로 구성 가능
업데이트 템플릿을 한 번만 변경하면 모든 환경에 반영
문서 및 버전 제어 - 템플릿에는 배포된 리소스 문서화하고
- 인프라의 기록을 제공
- 오류가 발생할 경우 이전 버전으로 롤백 가능
유효성 검사 템플릿에서 코드 검토를 수행하므로 오류 발생 가능성 감소

 

AWS CloudFormation:

AWS CloudFormation은 AWS 리소스를 모델링하고 설정하는 API 래퍼입니다.

필요한 모든 AWS 리소스(예: Amazon EC2 인스턴스 또는 Amazon RDS DB 인스턴스)를 설명하는 템플릿을 생성하면 CloudFormation이 해당 리소스의 프로비저닝과 구성을 담당합니다.

 

Git, Subversion(SVN) 등 선택한 버전 제어시스템을 사용하여 CloudFormation 템플릿을 관리할 수 있습니다.
JSON이나 YAML 템플릿 파일에서 전체 애플리케이션 스택(애플리케이션에 필요한 모든 리소스)을 정의합니다.
템플릿에 대한 런타임 파라미터를 정의합니다(EC2 인스턴스 크기, Amazon EC2 키 페어 등).

CloudFormation 관리범위 외부에서 AWS 리소스를 생성한 경우, 리소스 가져오기를 사용하여 가져올 수 있습니다.

 

AWS CloudFormation 스택:

스택의 모든 리소스는 해당 스택의 CloudFormation 템플릿을 통해 정의됩니다.

스택을 생성, 업데이트 또는 삭제하여 리소스 모음을 관리할 수 있습니다.

 

CloudFormation은 스택 리소스를 하나의 단위로 취급합니다.

스택이 생성 또는 삭제되려면 모든 리소스가 성공적으로 생성 또는 삭제되어야 합니다.

- 리소스를 생성할 수 없는 경우: 모든 리소스가 생성될 때까지 스택을 롤백 

- 리소스를 삭제할 수 없는 경우: 전체 스택이 성공적으로 삭제될 수 있을 때까지 나머지 리소스 유지

 

스택 설정이나 스택의 리소스를 변경해야 하는 경우 스택을 삭제하고 새로 생성하는 대신 스택을 업데이트합니다. 

한 스택의 출력을 다른 스택과 공유할 수 있는 교차 스택 참조를 만들 수도 있습니다.

계층형 아키텍처에서는 스택이 여러 수평 계층으로 구성됩니다.

각 계층은 중첩 구축됩니다.

각 계층은 바로 하위계층에 대한 종속성을 가집니다.

각 계층에 하나 이상의 스택을 포함할 수 있지만, 수명주기 및 소유권이 유사한 AWS 리소스를 포함해야 합니다.

 

 

2. 애플리케이션을 배포, 유지 관리, 크기 조정하는 방법

AWS CDK, AWS Solutions Library의 솔루션 및 AWS Elastic Beanstalk를 사용하여 인프라를 배포하고 유지관리할 수 있습니다.

AWS Systems Manager를 사용하면 인프라 관리를 자동화할 수 있습니다.

 

인프라 도구:

인프라 배포 도구를 선택할 때는 편의성과 제어 가능 범위를 모두 적절하게 고려해야 합니다. 

AWS Elastic Beanstalk - 개발자 도구와 통합
- 애플리케이션 수명주기를 한곳에서 관리할 수 있는 환경을 제공
- 애플리케이션 지원을 위해 애플리케이션 인프라 프로비저닝 및 운영
-
애플리케이션 스택 자동 관리
- 애플리케이션 자동 확장 및 축소
AWS Solutions Library - 광범위한 산업 및 기술사용 사례를 위해 AWS와 AWS Partner가 구축한 솔루션 제공
- CloudFormation 템플릿, 스크립트, 참조 아키텍처 등 작업을 빠르게 시작하는 데 필요한 도구가 포함
AWS Cloud Development Kit
(AWS CDK)
- 프로그래밍 언어로 애플리케이션 리소스를 모델링 및 프로비저닝할 수 있는 오픈소스 소프트웨어 개발 프레임워크
- CloudFormation 템플릿을 간편하게 생성 및 배포 가능
AWS CloudFormation - 리소스와 해당 구성 정의 가능
- 인프라 구성요소 제어 가능

 

https://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/what-is-systems-manager.html

 

AWS Systems Manager란 무엇인가요? - AWS Systems Manager

Windows Server 인스턴스에서 특정 SSM 문서(예: 레거시 AWS-ApplyPatchBaseline 문서)를 실행하려면 Windows PowerShell 3.0 이상이 필요합니다. Windows Server 인스턴스가 Windows Management Framework 3.0 이상을 실행 중인

docs.aws.amazon.com

인프라를 설계할 때는 인프라 관리를 계획해야 합니다. 

계획은 관리 도구에 올바른 보안정책을 적용해야 하기 때문에 인프라 배포 방식에 영향을 줍니다.  
AWS Systems Manager를 사용하는 경우 중앙 위치에서 AWS 리소스를 확인하고 관리할 수 있으므로 운영 과정을 완벽하게 파악하여 제어할 수 있습니다.


Systems Manager을 사용하면 다음을 수행할 수 있습니다:

- 애플리케이션, 애플리케이션 스택의 여러 계층 또는 개발/프로덕션 환경과 같은 논리적 리소스 그룹을 생성

- 리소스 그룹을 선택하고 최근 API 작업, 리소스 구성 변경사항, 관련 알림, 운영 경보, 소프트웨어 인벤토리 및 패치 규정 준수 상태 확인 가능

- 운영 요구에 따라 각 리소스 그룹에서 작업 수행 가능

- 여러 AWS 서비스의 운영 데이터를 중앙 집중화하고 AWS 리소스 전체에서 태스크를 자동화 가능

 

 

 

 

 

 

 

 

 

 

 

Architecting on AWS 7.4.6 (KO): Student Guide  참고

반응형