

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

# 를 사용하여 Amazon Bedrock 리소스 생성 AWS CloudFormation
<a name="creating-resources-with-cloudformation"></a>

Amazon Bedrock은 AWS 리소스 및 인프라를 생성하고 관리하는 데 소요되는 시간을 줄일 수 있도록 리소스를 모델링하고 설정하는 데 도움이 되는 AWS CloudFormation서비스인와 통합됩니다. 원하는 모든 AWS 리소스(예: [Amazon Bedrock 에이전트](agents.md) 또는 [Amazon Bedrock 지식 기반](knowledge-base.md))를 설명하는 템플릿을 생성하고 해당 리소스를 CloudFormation 프로비저닝하고 구성합니다.

를 사용하면 템플릿을 재사용하여 Amazon Bedrock 리소스를 일관되고 반복적으로 설정할 CloudFormation수 있습니다. 리소스를 한 번 설명한 다음 여러 AWS 계정 및 리전에서 동일한 리소스를 반복적으로 프로비저닝합니다.

## Amazon Bedrock 및 CloudFormation 템플릿
<a name="working-with-templates"></a>

Amazon Bedrock 및 관련 서비스에 대한 리소스를 프로비저닝하고 구성하려면 [CloudFormation 템플릿](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html)을 이해해야 합니다. 템플릿은 JSON 또는 YAML로 서식 지정된 텍스트 파일입니다. 이러한 템플릿은 CloudFormation 스택에서 프로비저닝하려는 리소스를 설명합니다. JSON 또는 YAML에 익숙하지 않은 경우 Designer를 사용하여 CloudFormation CloudFormation 템플릿을 시작할 수 있습니다. 자세한 내용은 *AWS CloudFormation 사용자 안내서*에서 [CloudFormation Designer란?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/working-with-templates-cfn-designer.html)을 참조하세요.

Amazon Bedrock은 CloudFormation에서 다음과 같은 리소스 생성을 지원합니다.
+ [AWS::Bedrock::Agent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html)
+ [AWS::Bedrock::AgentAlias](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html)
+ [AWS::Bedrock::ApplicationInferenceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-applicationinferenceprofile.html)
+ [AWS::Bedrock::AutomatedReasoningPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-automatedreasoningpolicy.html)
+ [AWS::Bedrock::AutomatedReasoningPolicyVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-automatedreasoningpolicyversion.html)
+ [AWS::Bedrock::DataSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html)
+ [AWS::Bedrock::Flow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-flow.html)
+ [AWS::Bedrock::FlowVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-flowversion.html)
+ [AWS::Bedrock::FlowAlias](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-flowalias.html)
+ [AWS::Bedrock::Guardrail](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrail.html)
+ [AWS::Bedrock::GuardrailVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-guardrailversion.html)
+ [AWS::Bedrock::KnowledgeBase](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html)
+ [AWS::Bedrock::Prompt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-prompt.html)
+ [AWS::Bedrock::PromptVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-promptversion.html)

[Amazon Bedrock 에이전트](agents.md) 또는 [Amazon Bedrock 지식 기반](knowledge-base.md)용 JSON 및 YAML 템플릿의 예제를 포함한 자세한 내용은 *AWS CloudFormation 사용 설명서*의 [Amazon Bedrock 리소스 유형 참조](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Bedrock.html)를 살펴보세요.

# AWS CloudFormation을 사용하여 프로젝트 관리
<a name="cloudformation-projects"></a>

Amazon Bedrock은 AWS CloudFormation과 통합되어 인프라 템플릿의 일부로 프로젝트를 정의하고 관리할 수 있습니다. JSON 또는 YAML 템플릿을 사용하여 여러 AWS 계정 및 리전에 프로젝트를 일관되고 반복적으로 프로비저닝할 수 있습니다.

## AWS::BedrockMantle::Project
<a name="cloudformation-projects-resource"></a>

`AWS::BedrockMantle::Project` 리소스를 사용하여 CloudFormation 템플릿에서 Bedrock 프로젝트를 생성하고 관리합니다. CloudFormation을 통해 생성된 프로젝트는 IAM 정책 연결, 태그 지정 및 관찰성을 포함하여 API를 통해 생성된 것과 동일한 기능을 지원합니다.

### 구문
<a name="cloudformation-projects-syntax"></a>

CloudFormation 템플릿에서 이 객체를 선언하려면 다음 구문을 사용합니다.

**Example CloudFormation 구문**  

```
{
  "Type": "AWS::BedrockMantle::Project",
  "Properties": {
    "Name": String,
    "Tags": [
      { "Key": String, "Value": String },
      { "Key": String, "Value": String },
      { "Key": String, "Value": String },
      { "Key": String, "Value": String }
    ]
  }
}
```

```
Type: AWS::BedrockMantle::Project
Properties:
  Name: String
  Tags:
    Key: Value
```

### 속성
<a name="cloudformation-projects-properties"></a>

이름  
필수 사항입니다. 프로젝트의 이름입니다. AWS 계정 내에서 고유해야 합니다.  
유형: 문자열  
최소: 1  
최대: 64  
패턴: `^([0-9a-zA-Z][ _-]?)+$`  
업데이트 필요 조건: 대체

Tags  
비용 할당 및 액세스 제어를 위해 프로젝트와 연결할 키-값 페어의 맵입니다.  
유형: String의 맵  
업데이트 필요 조건: 무중단

**태그 업데이트에 대한 참고 사항**  
의 CloudFormation 태그 업데이트는 내부적으로 별도의 추가 및 제거 작업을 `AWS::BedrockMantle::Project` 사용합니다. 원자성 전체 태그 교체는 없습니다. 작업 중 스택 업데이트에 실패하면 프로젝트의 태그 세트가 부분적으로 업데이트된 상태일 수 있습니다. 태그를 수정하는 스택 업데이트 후에는 항상 최종 태그 상태를 확인합니다.

### 반환 값
<a name="cloudformation-projects-return-values"></a>

#### Ref
<a name="cloudformation-projects-ref"></a>

이 리소스의 논리적 ID를 내장 `Ref` 함수에 전달하면가 프로젝트 ID(예: `proj_abc123`)를 `Ref` 반환합니다.

#### Fn::GetAtt
<a name="cloudformation-projects-getatt"></a>

ProjectId  
프로젝트의 고유 식별자(예: `proj_abc123`).

ProjectArn  
프로젝트의 Amazon 리소스 이름(ARN)입니다(예: `arn:aws:bedrock-mantle:us-east-1:123456789012:project/proj_abc123`).

Status  
프로젝트의 상태입니다.는 프로젝트를 사용할 준비가 되었음을 `ACTIVE` 의미합니다.는 프로젝트가 아카이브되었으며 새 추론 요청을 수락할 수 없음을 `ARCHIVED` 의미합니다.

CreatedAt  
프로젝트가 생성된 타임스탬프입니다.

UpdatedAt  
프로젝트가 마지막으로 업데이트된 타임스탬프입니다.

## 예제
<a name="cloudformation-projects-examples"></a>

### 기본 프로젝트 생성
<a name="cloudformation-projects-basic"></a>

다음 예시에서는 프로덕션 챗봇 애플리케이션을 위한 프로젝트를 생성합니다.

**Example 기본 프로젝트**  

```
AWSTemplateFormatVersion: '2010-09-09'
Description: Amazon Bedrock Project for Production Chatbot

Resources:
  CustomerChatbotProject:
    Type: AWS::BedrockMantle::Project
    Properties:
      Name: CustomerChatbot-Production
      Tags:
        - Key: Project
          Value: CustomerChatbot
        - Key: Environment
          Value: Production
        - Key: Owner
          Value: TeamAlpha
        - Key: CostCenter
          Value: "21524"

Outputs:
  ProjectId:
    Description: The ID of the created project
    Value: !Ref CustomerChatbotProject

  ProjectArn:
    Description: The ARN of the created project
    Value: !GetAtt CustomerChatbotProject.ProjectArn
```

```
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Resources": {
    "CustomerChatbotProject": {
      "Type": "AWS::BedrockMantle::Project",
      "Properties": {
        "Name": "CustomerChatbot-Production",
        "Tags": [
          { "Key": "Project", "Value": "CustomerChatbot" },
          { "Key": "Environment", "Value": "Production" },
          { "Key": "Owner", "Value": "TeamAlpha" },
          { "Key": "CostCenter", "Value": "21524" }
        ]
      }
    }
  },
  "Outputs": {
    "ProjectId": {
      "Description": "The ID of the created project",
      "Value": { "Ref": "CustomerChatbotProject" }
    },
    "ProjectArn": {
      "Description": "The ARN of the created project",
      "Value": { "Fn::GetAtt": ["CustomerChatbotProject", "ProjectArn"] }
    }
  }
}
```

### 다양한 환경에 대해 여러 프로젝트 생성
<a name="cloudformation-projects-multi-env"></a>

다음 예제에서는 단일 스택에서 개발, 스테이징 및 프로덕션 환경을 위한 별도의 프로젝트를 프로비저닝합니다.

```
AWSTemplateFormatVersion: '2010-09-09'
Description: Amazon Bedrock Projects for Multi-Environment Deployment

Parameters:
  ApplicationName:
    Type: String
    Default: InternalSearch
    Description: Name of the application

  CostCenter:
    Type: String
    Description: Cost center for billing allocation

Resources:
  DevelopmentProject:
    Type: AWS::BedrockMantle::Project
    Properties:
      Name: !Sub "${ApplicationName}-Development"
      Tags:
        - Key: Project
          Value: !Ref ApplicationName
        - Key: Environment
          Value: Development
        - Key: CostCenter
          Value: !Ref CostCenter

  StagingProject:
    Type: AWS::BedrockMantle::Project
    Properties:
      Name: !Sub "${ApplicationName}-Staging"
      Tags:
        - Key: Project
          Value: !Ref ApplicationName
        - Key: Environment
          Value: Staging
        - Key: CostCenter
          Value: !Ref CostCenter

  ProductionProject:
    Type: AWS::BedrockMantle::Project
    Properties:
      Name: !Sub "${ApplicationName}-Production"
      Tags:
        - Key: Project
          Value: !Ref ApplicationName
        - Key: Environment
          Value: Production
        - Key: CostCenter
          Value: !Ref CostCenter

Outputs:
  DevelopmentProjectArn:
    Value: !GetAtt DevelopmentProject.ProjectArn
    Export:
      Name: !Sub "${ApplicationName}-Dev-ProjectArn"

  StagingProjectArn:
    Value: !GetAtt StagingProject.ProjectArn
    Export:
      Name: !Sub "${ApplicationName}-Staging-ProjectArn"

  ProductionProjectArn:
    Value: !GetAtt ProductionProject.ProjectArn
    Export:
      Name: !Sub "${ApplicationName}-Prod-ProjectArn"
```

### IAM 역할 액세스를 사용하여 프로젝트 생성
<a name="cloudformation-projects-iam"></a>

다음 예제에서는 프로젝트를 생성하고 특정 역할에 모델을 호출할 수 있는 액세스 권한을 부여하는 IAM 정책을 연결합니다.

```
AWSTemplateFormatVersion: '2010-09-09'
Description: Amazon Bedrock Project with IAM Access Control

Resources:
  ProductionProject:
    Type: AWS::BedrockMantle::Project
    Properties:
      Name: CustomerChatbot-Production
      Tags:
        - Key: Environment
          Value: Production
        - Key: CostCenter
          Value: "21524"

  ProductionAppRole:
    Type: AWS::IAM::Role
    Properties:
      RoleName: BedrockProjectProductionRole
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: lambda.amazonaws.com
            Action: sts:AssumeRole
      Policies:
        - PolicyName: BedrockProjectInvokeAccess
          PolicyDocument:
            Version: '2012-10-17'
            Statement:
              - Effect: Allow
                Action:
                  - bedrock-mantle:CreateInference
                  - bedrock-mantle:GetProject
                Resource: !GetAtt ProductionProject.ProjectArn

Outputs:
  ProjectArn:
    Value: !GetAtt ProductionProject.ProjectArn

  RoleArn:
    Value: !GetAtt ProductionAppRole.Arn
```

## 프로젝트 API에서 CloudFormation 출력 사용
<a name="cloudformation-projects-using-outputs"></a>

CloudFormation 스택을 배포한 후 스택 출력을 사용하여 애플리케이션 코드에서 프로젝트 ARN 및 ID를 참조할 수 있습니다.

```
import boto3
from openai import OpenAI

# Retrieve project details from CloudFormation stack outputs
cfn = boto3.client('cloudformation', region_name='us-east-1')

response = cfn.describe_stacks(StackName='my-bedrock-projects-stack')
outputs = {o['OutputKey']: o['OutputValue'] for o in response['Stacks'][0]['Outputs']}

production_project_arn = outputs['ProductionProjectArn']

# Extract project ID from ARN
# ARN format: arn:aws:bedrock-mantle:us-east-1:123456789012:project/proj_abc123
project_id = production_project_arn.split('/')[-1]

print(f"Using project: {project_id}")

# Use the project for inference
client = OpenAI(project=project_id)

response = client.responses.create(
    model="openai.gpt-oss-120b",
    input="Hello from a CloudFormation-managed project!"
)

print(response)
```

## 자세히 알아보기
<a name="cloudformation-projects-learn-more"></a>

Amazon Bedrock 리소스와 함께 CloudFormation을 사용하는 방법에 대한 자세한 내용은 다음을 참조하세요.
+ [AWS CloudFormation을 사용하여 Amazon Bedrock 리소스 생성](creating-resources-with-cloudformation.md)
+ [AWS CloudFormation 사용 설명서](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [Amazon Bedrock 리소스 유형 참조](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/AWS_Bedrock.html)

## 에 대해 자세히 알아보기 CloudFormation
<a name="learn-more-cloudformation"></a>

에 대해 자세히 알아보려면 다음 리소스를 CloudFormation참조하세요.
+ [AWS CloudFormation](https://aws.amazon.com/cloudformation/)
+ [AWS CloudFormation 사용 설명서](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [CloudFormation API Reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/Welcome.html)
+ [AWS CloudFormation 명령줄 인터페이스 사용 설명서](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html)