

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 코드형 인프라
<a name="infrastructure-as-code"></a>

서버리스 AI 시스템이 확장됨에 따라 클라우드 인프라 프로비저닝, 관리 및 진화의 복잡성이 빠르게 증가합니다. APIs, AWS Lambda 함수, Amazon Bedrock 에이전트, IAM 역할 및 상태 시스템의 수동 설정은 오류가 발생하기 쉽고 반복할 수 없으며 대규모로 규정을 준수하지 않습니다.

코드형 인프라(IaC)는 모든 인프라 구성 요소가 다음과 같은 기본 원칙입니다.
+ 버전 관리형
+ 환경 간 반복 가능 
+ 감사 및 검토 가능
+ 모듈식 및 테스트 가능

기업은 IaC를 채택하여 자동화뿐만 아니라 서버리스 AI 워크로드 배포 및 운영에 대한 거버넌스, 속도 및 복원력을 확보합니다.

## AWS 서비스 에서 서버리스 AI의 IaC 배포용 AWS
<a name="section-iac-aws-services"></a>

다음 AWS 서비스 및 타사 도구는에서 서버리스 AI의 IaC 배포를 지원하고 인프라 배포를 위한 기본 AWS 기능을 AWS AWS CloudFormation AWS CDK AWS SAM 제공합니다.는 널리 사용되는 타사 솔루션을 HashiCorp Terraform 제공합니다. 각 에는 고유한 장점이 있으며 다양한 팀 요구 사항 및 사용 사례에 적합합니다.

### CloudFormation
<a name="section-iac-cloudformation"></a>

[CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)은 인프라를 구조화된 JSON 또는 YAML 템플릿으로 정의할 수 있는 선언적인 기본 IaC 서비스입니다.

CloudFormation의 장점은 다음과 같습니다.
+ 매우 안정적이고 성숙하며 모든에서 광범위하게 지원됨 AWS 서비스 
+ 통합 롤백 및 드리프트 감지
+ 관리형 스택 및 변경 세트로 더 안전한 배포 가능 
+ 시각적 추적을 AWS Management Console 위해에서 직접 지원됨

CloudFormation은 다음 요구 사항에 적합합니다.
+ 세분화된 제어 기능을 갖춘 감사 가능한 명시적 템플릿이 필요한 팀
+ 코드 추적성이 필수인 규제 환경 
+ DevOps 파이프라인이 엄격한 홍보 워크플로를 적용하는 환경

### AWS CDK
<a name="section-iac-cdk"></a>

[AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html)는 오픈 소스 프레임워크입니다. 를 사용하면 AWS CDK, TypeScript, Python Java또는 C\#과 같은 친숙한 프로그래밍 언어를 사용하여 AWS 인프라를 정의할 수 있습니다.

의 장점은 다음과 AWS CDK 같습니다.
+ 코드에서 루프, 조건부 및 추상화 사용을 지원하는 필수 및 선언적 하이브리드 
+ 많은 구문 및 재사용 가능한 패턴의 가용성
+ 개발자가 더 쉽게 채택할 수 있음(코드 우선 사고 방식)
+ 환경 인식 스택을 사용하여 다중 환경 배포 활성화

 AWS CDK 는 다음 요구 사항에 적합합니다.
+ 강력한 소프트웨어 엔지니어링 기술을 갖춘 팀
+ 동적 인프라 생성이 필요한 사용 사례
+ 구문 재사용, 사용자 지정 및 빠른 반복과 관련된 프로젝트

### AWS SAM
<a name="section-iac-sam"></a>

[AWS Serverless Application Model (AWS SAM)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html)는 [Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html), [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) 및와 같은 서버리스 애플리케이션을 정의하는 데 최적화된 CloudFormation 확장입니다[AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html).

의 장점은 다음과 AWS SAM 같습니다.
+ Lambda 기반 파이프라인에 이상적인 최소 구문
+ 로컬 에뮬레이션 및 디버깅에 대한 기본 지원
+ 배포, 테스트 및 패키지 워크플로를 간소화하는 통합 명령줄 인터페이스(CLI)

AWS SAM 는 다음 요구 사항에 적합합니다.
+ 주로 Lambda, API Gateway 및 Amazon Bedrock에 초점을 맞춘 중소 규모의 프로젝트
+ 기본 제공 지속적 통합 및 지속적 배포(CI/CD)를 지원하는 간단한 YAML 기반 템플릿을 원하는 팀

### Terraform
<a name="section-iac-terraform"></a>

[https://developer.hashicorp.com/terraform/intro](https://developer.hashicorp.com/terraform/intro)는 코드를 사용하여 클라우드 인프라 및 리소스를 프로비저닝하고 관리하는 데 도움이 되는 IaC 도구입니다.

의 장점은 다음과 Terraform 같습니다.
+ 멀티클라우드 시나리오에 이상적인 AWS 그 이상의 광범위한 공급자 에코시스템 
+ 풍부한 상태 관리 및 종속성 그래프 해상도
+ DevOps 우선 문화가 있고 GitOps 워크플로를 사용하는 기업에서 인기 있음

Terraform는 다음 요구 사항에 적합합니다.
+ 기존 Terraform 투자가 있는 팀
+ 서비스형 소프트웨어(SaaS) 도구와 통합된 멀티클라우드 배포 또는 AWS 네이티브 서비스
+ 팀 간 일관성을 Terraform 위해를 표준화하는 조직

## 서버리스 AI 프로젝트의 IaC 모범 사례
<a name="section-iac-best-practices"></a>

서버리스 AI 프로젝트에서 IaC를 구현할 때는 다음 모범 사례와 그 중요성을 고려하세요.
+ **모든 버전 제어** - 재현성을 보장하고 롤백을 활성화하며 Git을 통한 변경 승인을 지원합니다.
+ **환경별 스택 사용 -** 개발, 테스트 및 프로덕션 배포를 원활하게 분리합니다. 실수로 인한 교차 오염을 방지합니다.
+ **인프라 모듈화** - 재사용을 장려하고, 온보딩 속도를 높이며, 변경 사항의 폭발 반경을 줄입니다(예: [Amazon Bedrock Agents](https://docs.aws.amazon.com/bedrock/latest/userguide/agents.html)용 모듈 하나와 EventBridge 규칙용 모듈 하나).
+ **파라미터화 및 태그 사용** - 동적 스택 동작 및 비용 추적을 활성화합니다. 결제 및 [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)의 관찰성을 개선합니다.
+ **IaC를 CI/CD에 통합** - 배포 중에 인프라 업데이트를 자동화하여 앱과 인프라가 동기화되도록 합니다.
+ **스키마 검증 및 린팅 적용 **- 배포 오류를 방지하고 팀 기여도 전반에 걸쳐 일관성을 적용합니다.
+ **드리프트 감지 및 감사 추적 구현 **- 인프라가 예상 정의와 일치하고 규정 준수 검토를 간소화할 수 있도록 지원합니다(예: CloudFormation [드리프트 감지 ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html)또는 Terraform 상태 검증 사용).

## 예: 서버리스 AI 어시스턴트의 버전 배포
<a name="section-iac-example-deployment"></a>

 AWS CDK 또는 CloudFormation을 사용하면 Amazon Bedrock으로 구동되는 지원 어시스턴트에 다음이 포함될 수 있습니다.
+ API Gateway 엔드포인트
+ Lambda에 기반을 둔 세 가지 도구가 있는 Amazon Bedrock 에이전트
+ Amazon S3 문서를 참조하는 지식 기반
+ 대체/오류 처리를 위한 Step Functions 워크플로
+ CloudWatch 또는와 같은 로깅 및 관찰 인프라 [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)

IaC를 사용하면 이러한 모든 요소가 리포지토리에 정의되고, CI/CD를 통해 승격되며, 모든 배포에서 버전 태그가 지정됩니다. 이 접근 방식은 전체 추적 가능성, 감사 가능성 및 필요한 경우 롤백을 제공합니다.

## 서버리스 AI의 IaC 배포 요약
<a name="section-iac-summary"></a>

엔터프라이즈급 서버리스 AI 시스템용 IaC는 실험을 프로덕션으로 변환하여 조직이 인프라가 다음과 같다고 확신할 수 있도록 하는 기반입니다.
+ 개발, 테스트 및 프로덕션 환경에서 일관성 유지
+ 정책, 검토 및 감사 메커니즘을 통해 관리 가능
+ AI 채택과 동일한 속도로 확장 가능

동적 구성 AWS CDK 에를 사용하든, 감사 정렬 배포에 CloudFormation을 사용하든, 집중 파이프라인 AWS SAM 에를 사용하든 IaC는 지능형 이벤트 기반 클라우드의 컨트롤 플레인입니다.