코드로서의 인프라 3/3

빌드업웍스
11 min readFeb 11, 2020

--

https://AWS.amazon.com/ko/

[ 고지 사항 (Disclaimer) ]

본 컨텐츠는 고객의 편의를 위하여 AWS 서비스 설명을 위해 제작, 제공된 것입니다. 만약 AWS 사이트와 컨텐츠 상에서 차이나 불일치가 있을 경우 AWS 사이트 (AWS.amazon.com)가 우선합니다. 또한 AWS 사이트 상에서 한글 번역문과 영어 원문에 차이나 불일치가 있을 경우(번역의 지체로 인한 경우 등 포함), 영어 원문이 우선합니다.

본 문서는 Infrastructure as Code(2017, 영문) 내용에 기반하여 작성 되었습니다.

이 문서는 정보 제공의 목적으로만 제공됩니다. 본 문서의 발행일 당시 AWS의 현재 제품 오퍼링 및 실행방법 등을 설명하며, 예고 없이 변경될 수 있습니다. 고객은 본 문서에 포함된 정보나 AWS 제품 또는 서비스의 사용을 독립적으로 평가할 책임이 있으며, 각 정보 및 제품은 명시적이든 묵시적이든 어떠한 종류의 보증 없이 “있는 그대로” 제공됩니다. 본 문서는 AWS, 그 자회사, 공급업체 또는 라이선스 제공자로부터 어떠한 보증, 표현, 계약 약속, 조건 또는 보장을 구성하지 않습니다. 고객에 대한 AWS의 책임 및 의무는 AWS 계약에 의해 관리되며 본 문서는 AWS와 고객 사이의 어떠한 계약에도 속하지 않으며 계약을 변경하지도 않습니다.

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

본 문서는 총 3부로 구성되어 있으며 이 글은 3부입니다.

1부 링크 : 코드로서의 인프라 1/3

2부 링크 : 코드로서의 인프라 2/3

거버넌스 및 규정 준수

이제 인프라(Code)를 코드로 사용하여 조직 환경의 상태를 모니터링할 수 있는 방법을 고려하면서 기술 거버넌스 및 규정 준수에 초점을 맞춥니다. 많은 조직에서 산업 또는 규제 요구사항을 해결하기 위해 인프라에 대한 가시성을 요구합니다. 리소스가 추가, 제거 또는 업데이트될 때 가시성과 거버넌스를 유지해야 하기 때문에 클라우드의 동적 프로비저닝 기능은 특별한 과제를 안고 있습니다. 다음 상황을 고려합니다.

· 사용자가 권한 있는 관리 그룹에 추가되고 IT 조직은 이 문제가 발생한 시기를 설명할 수 없습니다.

· 원격 관리를 제한된 IP 주소 집합으로 제한하는 네트워크 액세스 규칙이 추가 위치에서 액세스할 수 있도록 수정됩니다.

· 여러 서버의 RAM 및 CPU 구성이 예기치 않게 두 배로 증가하여 이전 달에 비해 훨씬 많은 비용이 청구되었습니다.

AWS CLI 및 API 호출을 사용하여 AWS 리소스 구성의 현재 상태를 볼 수 있지만 이러한 상황을 해결하려면 시간이 지남에 따라 리소스가 어떻게 변경되었는지 확인할 수 있어야 합니다. 이러한 요구를 해결하기 위해 AWS는 AWS Config 서비스를 제공합니다.

AWS Config

AWS Config를 사용하면 AWS 리소스 구성을 평가, 감사 및 평가할 수 있습니다. AWS Config는 리소스 인벤토리를 자동으로 구축하고 리소스 변경 사항을 추적합니다. 그림 7은 EC2 인스턴스의 AWS Config 인벤토리 예를 보여줍니다.

그림 7 : AWS Config 리소스 인벤토리의 예

또한 AWS Config는 리소스 구성 및 해당 리소스와 다른 AWS 리소스의 연결 변경 사항을 포함하여 리소스 변경 타임 라인을 명확하게 보여줍니다. 그림 8은 VPC 리소스를 위해 AWS Config가 유지 관리하는 정보를 보여줍니다.

그림 8 : AWS Config 리소스 타임 라인의 예

많은 다른 리소스가 자주 자동으로 변경되는 경우 전송 파이프 라인을 자동화하는것만큼 규정 준수를 자동화하는 것이 중요해질 수 있습니다. 환경 변화에 대응하기 위해 AWS Config 룰을 사용할 수 있습니다.

AWS Config Rules

AWS Config 규칙을 사용하면 모든 변경이 리소스와 관련된 규칙에 의해 평가를 트리거합니다. AWS는 암호, 그룹 및 정책이 양호한 IAM 사용자와 같은 일반적인 요구 사항 또는 EC2 인스턴스가 올바른 VPC 및 보안 그룹에 있는지 확인하기 위한 관리 규칙 모음을 제공합니다. AWS Config 규칙은 비준수 리소스를 빠르게 식별하고보고 및 치료에 도움을 줄 수 있습니다. 관리 형 규칙이 제공하는 것 이상의 검증을 위해 AWS Config 규칙은 Lambda 함수를 사용하여 사용자 지정 규칙 생성을 지원합니다. 이러한 규칙은 인프라 코드 기반의 일부가 되므로 정보 리소스 수명주기의 관리 및 규정 준수 단계에 인프라 개념을 코드로 도입했습니다.

룰 구조

AWS Config 규칙을 통해 사용자 지정 규칙을 호출하면 연결된 Lambda 함수가 구성 이벤트를 수신하여 처리 한 후 결과를 반환합니다. 다음 기능은 지정된 Amazon VPC에서 Amazon Virtual Private Cloud (Amazon VPC) 흐름 로그가 활성화되어 있는지 확인합니다.

그림 9 : AWS Config 규칙을 지원하는 Lambda 함수의 예

이 예에서 Amazon VPC에서 구성 이벤트가 발생하면 이벤트는 함수 lambda_handler로 전달됩니다. 이 코드는 Amazon VPC의 ID를 추출하고 describe_flow_logs API 호출을 사용하여 흐름 로그의 활성화 여부를 결정합니다. 흐름 로그가 활성화되어 있으면 Lambda 함수는 COMPLIANT 값을 반환하고 그렇지 않으면 NON_COMPLIANT를 반환합니다.

모범 사례

다음은 환경에서 AWS Config를 구현하기위한 권장 사항입니다.

· 모든 리전에서 AWS Config를 사용하면 구성 항목 기록을 기록하여 감사 및 규정 준수 추적을 용이하게 합니다.

· AWS Config에서 감지 한 변경 사항에 응답하는 프로세스를 구현하십시오. 여기에는 이메일 알림 및 프로그래밍 방식으로 변경 사항에 대응하기위한 AWS Config 규칙 사용이 포함될 수 있습니다.

정리

AWS Config는 인프라 코드 개념을 거버넌스 및 규정 준수 영역으로 확장합니다. AWS Config는 지속적으로 리소스 구성을 기록 할 수있는 반면 AWS Config 규칙은 추적 된 리소스 구성의 변경에 대한 이벤트 중심 응답을 허용합니다. 이 기능을 사용하면 조직에서 규정 준수 제어를 모니터링 할 수 있습니다.

자원 최적화

이제 정보 리소스 라이프사이클의 마지막 단계인 리소스 최적화에 초점을 맞춥니다. 이 단계에서 관리자는 성능 데이터를 검토하고 보안, 성능 및 비용 관리와 같은 기준에 따라 환경을 최적화하는 데 필요한 변경 사항을 파악합니다. 모든 애플리케이션 이해관계자는 인프라를 정기적으로 평가하여 최적의 사용 여부를 판단하는 것이 중요합니다.

다음 질문을 고려하십시오.

· 활용률이 낮은 프로비저닝 된 리소스가 있습니까?

· 운영 환경과 관련된 비용을 줄일 수 있는 방법이 있습니까?

· 프로비저닝 된 리소스의 성능을 개선하기위한 제안 사항이 있습니까?

· 환경에 사용되는 리소스에 적용되는 서비스 제한이 있습니까? 그렇다면 현재 리소스 사용량이 이러한 제한을 초과할 수 있습니까?

이러한 질문에 답하려면 운영 환경을 조사하고 최적화와 관련된 데이터를 검색 한 후 해당 데이터를 사용하여 의미있는 결정을 내릴 수있는 방법이 필요합니다. 이러한 요구를 해결하기 위해 AWS는 AWS Trusted Advisor를 제공합니다.

AWS Trusted Advisor

AWS Trusted Advisor는 AWS 리소스를 검색하고 AWS 모범 사례와 비용 최적화, 성능, 보안 및 내결함성의 네 가지 범주의 AWS 모범 사례와 사용량을 비교함으로써 모범 사례를 관찰할 수 있도록 지원합니다. 인프라 및 애플리케이션이 지속적으로 개선됨에 따라 Trusted Advisor를 활용하면 리소스를 최적의 상태로 프로비저닝할 수 있습니다. 그림 10은 신뢰할 수 있는 관리자 대시보드의 예를 보여 줍니다.

그림 10 : AWS Trusted Advisor 대시 보드의 예

Checks

신뢰할 수 있는 관리자는 인프라가 모범 사례를 준수하는지 여부를 확인하기 위한 다양한 검사를 제공합니다. 검사에는 권장 모범 사례, 경고 기준, 작업 지침 및 항목에 대한 유용한 리소스 목록이 포함됩니다. 신뢰할 수 있는 어드바이저는 검사 결과를 제공하며 상태 업데이트 및 비용 절감을 위해 매주 지속적인 알림을 제공할 수도 있습니다.

모든 고객은 신뢰할 수 있는 어드바이저 체크의 핵심 세트에 액세스할 수 있습니다. AWS Business 또는 Enterprise 지원이 있는 고객은 모든 신뢰할 수 있는 관리자 검사 및 신뢰할 수 있는 관리자 API에 액세스할 수 있습니다. API를 사용하여 신뢰할 수 있는 관리자로부터 정보를 얻고 수정 조치를 취할 수 있습니다. 예를 들어 프로그램에서 신뢰할 수 있는 관리자를 사용하여 현재 계정 서비스 제한을 검사할 수 있습니다. 현재 리소스 사용량이 제한에 근접하는 경우 자동으로 지원 사례를 생성하여 제한을 늘릴 수 있습니다.

또한 Trusted Advisor는 Amazon CloudWatch 이벤트와 통합됩니다. Lambda 기능을 설계하여 Trusted Advisor의 상태가 변경될 때 슬랙 채널에 알릴 수 있습니다. 이 예제에서는 코드로서의 인프라 개념을 정보 리소스 라이프사이클의 리소스 최적화 수준으로 확장하는 방법을 보여 줍니다.

모범 사례

AWS Trusted Advisor의 모범 사례는 다음과 같습니다.

· 전자 메일 또는 다른 배달 시스템을 통해 신뢰할 수 있는 관리자 알림을 구독합니다.

· 배포 목록을 사용하고 적절한 수신인이 이러한 모든 통지에 포함되어 있는지 확인합니다.

· AWS Business 또는 Enterprise가 지원되는 경우 AWS Support API를 Trusted Advisor 알림과 함께 사용하여 AWS Support와 함께 사례를 생성하여 업데이트를 적용합니다.

정리

성능, 보안 및 비용 측면에서 인프라 리소스를 최적화하려면 인프라를 지속적으로 모니터링해야 합니다. AWS Trusted Advisor는 API를 사용하여 AWS 인프라에서 권장 사항을 조회할 수 있는 기능을 제공하므로, Code(코드)로서의 인프라가 정보 리소스 라이프사이클의 최적화 단계로 확장됩니다.

다음 단계

제품 코드를 보는 것과 동일한 방식으로 인프라 사양을 확인하여 조직에서 인프라 코드 채택을 시작할 수 있습니다. AWS는 클라우드 인프라의 프로비저닝, 관리 및 운영 방식에 대한 제어 능력과 유연성을 제공하는 광범위한 툴을 제공합니다.

다음은 조직에서 코드로 인프라를 구현할 때 수행할 수 있는 몇 가지 주요 작업입니다.

· 먼저 인프라 코드에 AWS CodeCommit과 같은 관리되는 소스 제어 서비스를 사용합니다.

· 배포 전에 장치 테스트 및 정적 코드 분석을 통해 품질 관리 프로세스를 통합합니다.

· 인적 요소를 제거하고 인프라 사용 권한 정책을 포함한 인프라 프로비저닝을 자동화합니다.

· 쉽게 다시 배포할 수 있는 잠재 인프라 코드를 생성합니다.

· 잠재력 있는 스택을 업데이트하여 코드를 통해 모든 새 업데이트를 인프라에 롤아웃합니다. 수동으로 일회성 변경은 피합니다.

· 엔드 투 엔드 자동화를 수용합니다.

· 인프라 자동화 작업을 일반 제품 스프린트의 일부로 포함합니다.

· 변경 사항을 감사할 수 있도록 하고 로깅을 의무화합니다.

· 조직 전체의 공통 표준을 정의하고 지속적으로 최적화합니다.

이러한 원칙을 수용함으로써 인프라가 급변하는 비즈니스 요구사항에 따라 동적으로 발전하고 가속화할 수 있습니다.

결론

Infrastructure as Code를 사용하면 인프라 리소스의 정의를 애플리케이션 소프트웨어와 마찬가지로 구성 파일 및 제어 버전으로 인코딩할 수 있습니다. 이제 라이프사이클 다이어그램을 업데이트하고 코드를 통해 AWS가 각 단계를 지원하는 방법을 보여드릴 수 있습니다.

그림 11: AWS를 통한 정보 리소스 수명 주기

AWS CloudFormation, AWS OpsWorks for Chef Automate, Amazon EC2 Systems Manager, Amazon CloudWatch, AWS Config 및 AWS Trusted Advisor를 사용하면 프로젝트 라이프사이클의 모든 단계에 Infrastructure as Code 개념을 통합할 수 있습니다. 인프라(Infrastructure as Code)를 사용하여 조직은 일관성 있게 구축된 환경을 자동으로 구축하여 조직의 전반적인 성숙도를 향상시킬 수 있습니다.

AWS는 IT 인프라 비용을 절감하고 기업의 핵심가치에 더욱 집중할 수 있도록 합니다.

AWS에 대한 자세한 문의사항은 여기를 눌러 주세요.

빌드업웍스는 AWS 컨설팅 파트너로 고객 비즈니스를 최우선으로 하며 고객의 클라우드의 성공적인 시작과 운영을 지원합니다.

--

--

빌드업웍스
빌드업웍스

Written by 빌드업웍스

클라우드 교육, 구축, 운영, 관리, 컨설팅 및 교육 리소스 디지털 퍼블리싱 : AWS 파트너, 유데미 파트너| buw.co.kr | admin@buw.co.kr | 053–954–3711

No responses yet