

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

# AWS 서비스 작업
<a name="working-with-services"></a>

다음 주제에서는 AWS Toolkit for Visual Studio with Amazon Q에서 AWS 서비스 작업을 시작하는 방법을 설명합니다.

**Topics**
+ [Amazon CodeCatalyst](codecatalyst.md)
+ [CloudWatch Logs 통합](cloudwatch-log.md)
+ [

# Amazon EC2 인스턴스 관리
](tkv-ec2-ami.md)
+ [

# Amazon ECS 인스턴스 관리
](tkv-ecs.md)
+ [

# AWS 탐색기에서 보안 그룹 관리
](tkv-sg-create.md)
+ [

# Amazon EC2 인스턴스에서 AMI 생성
](tkv-create-ami-from-instance.md)
+ [

# Amazon Machine Image의 시작 권한 설정
](tkv-set-ami-launch-perms.md)
+ [

# Amazon Virtual Private Cloud(VPC)
](vpc-tkv.md)
+ [

# Visual Studio용 CloudFormation 템플릿 편집기 사용
](tkv-cfn-editor.md)
+ [

# AWS Explorer에서 Amazon S3 사용
](tkv-s3.md)
+ [

# AWS 탐색기에서 DynamoDB 사용
](dynamodb-tkv.md)
+ [

# Visual Studio Team Explorer에서 AWS CodeCommit 사용
](using-aws-codecommit-with-team-explorer.md)
+ [

# Visual Studio에서 CodeArtifact 사용
](using-aws-codeartifact.md)
+ [

# AWS 탐색기에서 Amazon RDS 사용
](rds-tkv.md)
+ [

# AWS 탐색기에서 Amazon SimpleDB 사용
](tkv-simpleDB.md)
+ [

# AWS 탐색기에서 Amazon SQS 사용
](tkv-sqs.md)
+ [

# 자격 증명 및 액세스 관리
](tkv-iam.md)
+ [

# AWS Lambda
](lambda-index.md)

# Amazon Q를 사용하는 AWS Toolkit for Visual Studio용 Amazon CodeCatalyst
<a name="codecatalyst"></a>

## Amazon CodeCatalyst란?
<a name="codecatalyst-intro"></a>

Amazon CodeCatalyst는 소프트웨어 개발 팀을 위한 클라우드 기반 협업 공간입니다. Amazon Q와 함께 AWS Toolkit for Visual Studio를 사용하면 Amazon Q와 함께 AWS Toolkit for Visual Studio에서 직접 CodeCatalyst 리소스를 보고 관리할 수 있습니다. CodeCatalyst에 대한 자세한 내용은 [Amazon CodeCatalyst](https://docs.aws.amazon.com/codecatalyst/latest/userguide/welcome.html) 사용 설명서를 참조하세요.

다음 주제에서는 AWS Toolkit for Visual Studio를 CodeCatalyst의 Amazon Q와 연결하는 방법과 AWS Toolkit for Visual Studio와 Amazon Q를 통해 CodeCatalyst로 작업하는 방법을 설명합니다.

**Topics**
+ [

## Amazon CodeCatalyst란?
](#codecatalyst-intro)
+ [CodeCatalyst 시작하기](codecatalyst-setup.md)
+ [CodeCatalyst 작업](codecatalyst-overview.md)
+ [문제 해결](codecatalyst-troubleshoot.md)

# Amazon Q를 사용하여 Amazon CodeCatalyst 및 AWS Toolkit for Visual Studio 시작하기
<a name="codecatalyst-setup"></a>

 AWS Toolkit for Visual Studio with Amazon Q에서 Amazon CodeCatalyst 작업을 시작하려면 다음을 완료하세요.

**Topics**
+ [

## Amazon Q를 사용하여 AWS Toolkit for Visual Studio 설치
](#codecatalyst-setup-jbgateway)
+ [

## CodeCatalyst 계정 및 AWS Builder ID 생성
](#codecatalyst-setup-id)
+ [

## CodeCatalyst를 사용하여 Amazon Q와 AWS Toolkit for Visual Studio 연결
](#codecatalyst-setup-connect)

## Amazon Q를 사용하여 AWS Toolkit for Visual Studio 설치
<a name="codecatalyst-setup-jbgateway"></a>

 AWS Toolkit for Visual Studio를 Amazon Q와 CodeCatalyst 계정과 통합하기 전에 Amazon Q와 함께 최신 버전의 AWS Toolkit for Visual Studio를 사용하고 있는지 확인합니다. Amazon Q와 함께 최신 버전의 AWS Toolkit for Visual Studio를 설치하고 설정하는 방법에 대한 자세한 내용은이 사용 설명서의 [Amazon Q와 함께 AWS Toolkit for Visual Studio 설정](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/getting-set-up.html) 섹션을 참조하세요.

## CodeCatalyst 계정 및 AWS Builder ID 생성
<a name="codecatalyst-setup-id"></a>

Amazon Q와 함께 최신 버전의 AWS Toolkit for Visual Studio를 설치하는 것 외에도 Amazon Q와 함께 AWS Toolkit for Visual Studio에 연결하려면 활성 AWS Builder ID 및 CodeCatalyst 계정이 있어야 합니다. 활성 AWS Builder ID 또는 CodeCatalyst 계정이 없는 경우 [ CodeCatalyst 사용 설명서의 CodeCatalyst로 설정](https://docs.aws.amazon.com/codecatalyst/latest/userguide/setting-up-topnode.html) 섹션을 참조하세요. *CodeCatalyst* 

**참고**  
 AWS Builder ID는 자격 AWS 증명과 다릅니다. AWS Builder ID를 사용하여 가입하고 인증하는 방법에 대한 지침은이 사용 설명서의 [Authentication and access: AWS Builder ID](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/builder-id.html) 주제를 참조하세요.  
 AWS Builder IDs 대한 자세한 내용은 *AWS 일반 참조* 사용 설명서의 [AWS Builder ID](https://docs.aws.amazon.com/general/latest/gr/aws_builder_id.html) 주제를 참조하세요.

## CodeCatalyst를 사용하여 Amazon Q와 AWS Toolkit for Visual Studio 연결
<a name="codecatalyst-setup-connect"></a>

 AWS Toolkit for Visual Studio를 CodeCatalyst 계정으로 Amazon Q와 연결하려면 다음 단계를 완료하세요.

1. Visual Studio의 **Git** 메뉴 항목에서 **리포지토리 복제…**를 선택하세요.

1. **리포지토리 찾아보기** 섹션에서 **Amazon CodeCatalyst**를 공급자로 선택하세요.

1. **연결** 섹션에서 ** AWS Builder ID로 연결을** 선택하여 원하는 웹 브라우저에서 CodeCatalyst 콘솔을 엽니다.

1. 브라우저에서 제공된 필드에 AWS Builder ID를 입력하고 지침에 따라 계속합니다.

1. 메시지가 표시되면 **허용**을 선택하여 AWS Toolkit for Visual Studio와 Amazon Q 및 CodeCatalyst 계정 간의 연결을 확인합니다. 연결 프로세스가 완료되면 브라우저를 닫아도 안전하다는 확인 메시지가 표시됩니다.

# Amazon Q를 사용하여 AWS Toolkit for Visual Studio에서 Amazon CodeCatalyst 리소스 작업
<a name="codecatalyst-overview"></a>

다음 섹션에서는 AWS Toolkit for Visual Studio with Amazon Q에 사용할 수 있는 Amazon CodeCatalyst 리소스 관리 기능에 대한 개요를 제공합니다.

**Topics**
+ [

## 리포지토리 복제
](#codecatalyst-overview-clone)

## 리포지토리 복제
<a name="codecatalyst-overview-clone"></a>

CodeCatalyst는 CodeCatalyst 프로젝트에서 작업하려면 클라우드에 연결되어 있어야 하는 클라우드 기반 서비스입니다. 로컬에서 프로젝트를 작업하려면 CodeCatalyst 리포지토리를 로컬 시스템에 복제하고 다음에 클라우드에 연결할 때 CodeCatalyst 프로젝트와 동기화할 수 있습니다.

리포지토리를 로컬 시스템에 복제하려면 다음 단계를 완료하세요.

1. Visual Studio의 **Git** 메뉴 항목에서 **리포지토리 복제…**를 선택하세요.

1. **리포지토리 찾아보기** 섹션에서 **Amazon CodeCatalyst**를 공급자로 선택하세요.
**참고**  
**연결** 섹션에 `Not Connected` 메시지가 표시되면 계속하기 전에이 사용 설명서의 [인증 및 액세스: AWS 빌더 ID](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/builder-id.html) 섹션의 단계를 완료합니다.

1. 리포지토리를 복제하려는 **스페이스** 및 **프로젝트**를 선택하세요.

1. **리포지토리** 페이지에서 복제할 리포지토리를 선택하세요.

1. **경로** 섹션에서 리포지토리를 복제할 폴더를 선택하세요.
**참고**  
복제에 성공하려면 처음에 이 폴더가 비어 있어야 합니다.

1. **복제**를 선택하여 리포지토리 복제를 시작하세요.

1. 리포지토리가 복제되면 Visual Studio에서 복제된 솔루션을 로드하세요.
**참고**  
Visual Studio가 복제된 리포지토리에서 솔루션을 열지 않는 경우 **소스 컨트롤** 메뉴의 **Git 글로벌 설정**에 있는 **Git 리포지토리를 열 때 솔루션을 자동으로 로드** 설정에서 Visual Studio 옵션을 조정할 수 있습니다.

# 문제 해결
<a name="codecatalyst-troubleshoot"></a>

다음은 CodeCatalyst AWS Toolkit for Visual Studio에서 Amazon Q로 작업할 때 알려진 문제를 해결하기 위한 문제 해결 주제입니다.

**Topics**
+ [

## 자격 증명
](#codecatalyst-troubleshoot-credentials)

## 자격 증명
<a name="codecatalyst-troubleshoot-credentials"></a>

CodeCatalyst에서 git 기반 리포지토리를 복제하려고 할 때 보안 인증 정보를 요구하는 대화 상자가 표시되면 **AWS CodeCommit 보안 인증 도우미**가 전체적으로 구성되어 CodeCatalyst와 간섭이 발생할 수 있습니다. AWS CodeCommit 보안 인증 도우미에 대한 자세한 내용은 [AWS CodeCommit 사용 설명서의 AWS CLI 보안 인증 도우미를 사용하여 Windows에서 CodeCommit 리포지토리에 대한 HTTPS 연결 단계 설정을](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-https-windows.html) 참조하세요. *AWS CodeCommit* 

**AWS CodeCommit 보안 인증 도우미**가 CodeCommit URL만 처리하도록 제한하려면 다음 단계를 완료하세요.

1. `%userprofile%\.gitconfig`에서 글로벌 git 구성 파일을 엽니다.

1. 다음 섹션을 파일에 추가하세요.

   ```
                           [credential]
                               helper = !aws codecommit credential-helper $@
                               UseHttpPath = true
   ```

1. 해당 섹션을 다음으로 변경하세요.

   ```
                           [credential "https://git-codecommit.*.amazonaws.com"]
                               helper = !aws codecommit credential-helper $@
                               UseHttpPath = true
   ```

1. 변경 내용을 저장한 다음 단계를 완료하여 리포지토리를 복제하세요.

# Visual Studio용 Amazon CloudWatch Logs 통합
<a name="cloudwatch-log"></a>

AWS Toolkit for Visual Studio with Amazon Q에서 Amazon CloudWatch Logs 통합을 사용하면 IDE를 벗어나지 않고도 CloudWatch Logs 리소스를 모니터링, 저장 및 액세스할 수 있습니다. CloudWatch 서비스를 설정하고 CloudWatch Logs 작업을 수행하는 방법에 대해 자세히 알아보려면 다음 주제 중에서 선택하세요.

**Topics**
+ [CloudWatch Logs 설정](cloudwatch-log-setup.md)
+ [CloudWatch Logs 작업](cloudwatch-log-overview.md)

# Visual Studio용 CloudWatch Logs 통합 설정
<a name="cloudwatch-log-setup"></a>

Amazon CloudWatch Logs 통합을 AWS Toolkit with Amazon Q와 사용하려면 먼저 AWS 계정이 있어야 합니다. [AWS 로그인](https://console.aws.amazon.com/console/home) 사이트에서 새 AWS 계정을 생성할 수 있습니다. AWS Toolkit with Amazon Q에서 사용할 수 있는 대부분의 CloudWatch Logs 기능은 활성 AWS 자격 증명을 사용하여 액세스할 수 있습니다. 특정 기능에 추가 구성이 필요한 경우 요구 사항은 [CloudWatch Logs 작업](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/cloudwatch-log-overview.html) 안내서의 관련 섹션에 포함되어 있습니다.

CloudWatch Logs 설정에 대한 추가 정보 및 옵션은 Amazon CloudWatch Logs 안내서의 [설정](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/GettingSetup_cwl.html) 섹션을 참조하세요.

# Visual Studio에서 CloudWatch Logs 작업
<a name="cloudwatch-log-overview"></a>

Amazon CloudWatch Logs 통합을 사용하면 Amazon Q를 사용하여 AWS Toolkit for Visual Studio에서 CloudWatch Logs를 모니터링, 저장 및 액세스할 수 있습니다. IDE를 벗어나지 않고도 CloudWatch Logs 기능에 액세스할 수 있으므로 CloudWatch Logs 개발 프로세스를 간소화하고 워크플로 중단을 줄여 효율성이 향상됩니다. 다음 주제에서는 CloudWatch Logs 통합의 기본 기능 및 함수를 사용하는 방법을 설명합니다.

**Topics**
+ [

## CloudWatch 로그 그룹
](#cloudwatch-log-overview-groups)
+ [

## CloudWatch 로그 스트림
](#cloudwatch-log-overview-logstream)
+ [

## CloudWatch 로그 이벤트
](#cloudwatch-log-overview-logevents)
+ [

## CloudWatch Logs에 대한 추가 액세스
](#cloudwatch-log-overview-additional)

## CloudWatch 로그 그룹
<a name="cloudwatch-log-overview-groups"></a>

`log group`은 동일한 보존 기간, 모니터링 및 액세스 제어 설정을 공유하는 `log streams`의 그룹입니다. 하나의 로그 그룹이 가질 수 있는 로그 스트림의 수는 제한이 없습니다.

### 로그 그룹 보기
<a name="cloudwatch-log-overview-groups-view"></a>

`View Log Groups` 기능은 CloudWatch 로그 그룹 탐색기에 로그 그룹 목록을 표시합니다.

로그 그룹 보기 기능에 액세스하고 CloudWatch 로그 그룹 탐색기를 열려면 다음 단계를 완료하세요.

1.  AWS 탐색기에서 **Amazon CloudWatch**를 확장합니다.

1. **로그 그룹**을 두 번 클릭하거나 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭)를 열고 **보기**를 선택하여 **CloudWatch 로그 그룹 탐색기**를 엽니다.
**참고**  
CloudWatch 로그 그룹 탐색기는 솔루션 탐색기와 동일한 창 위치에 열립니다.

### 로그 그룹 필터링
<a name="cloudwatch-log-overview-groups-filter"></a>

개인 계정에는 수천 개의 서로 다른 로그 그룹이 포함될 수 있습니다. 특정 그룹에 대한 검색을 단순화하려면 아래 설명된 `filtering` 기능을 사용하세요.

1. **CloudWatch 로그 그룹 탐색기**에서 창 상단에 있는 검색 창에 커서를 놓습니다.

1. 찾고 있는 로그 그룹과 관련된 접두사를 입력하기 시작합니다.

1. **CloudWatch 로그 그룹 탐색기**가 자동으로 업데이트되어 이전 단계에서 지정한 검색어와 일치하는 결과를 표시합니다.

### 로그 그룹 삭제
<a name="cloudwatch-log-overview-groups-delete"></a>

특정 로그 그룹을 삭제하려면 다음 절차를 참조하세요.

1. **CloudWatch 로그 그룹 탐색기**에서 삭제하려는 로그 그룹을 마우스 오른쪽 버튼으로 클릭하세요.

1. 메시지가 나타나면 현재 선택한 로그 그룹을 삭제할지를 확인합니다.

1. **예** 버튼을 선택하면 선택한 로그 그룹이 삭제되고 **CloudWatch 로그 그룹 탐색기**가 새로 고쳐집니다.

### 로그 그룹 새로 고침
<a name="cloudwatch-log-overview-groups-refresh"></a>

**CloudWatch 로그 그룹 탐색기**에 표시된 현재 로그 그룹 목록을 새로 고치려면 **도구 모음**에 있는 **새로 고침 아이콘** 버튼을 선택하세요.

### 로그 그룹 ARN 복사
<a name="cloudwatch-log-overview-groups-copyarn"></a>

특정 로그 그룹의 ARN을 복사하려면 아래 설명된 단계를 완료하세요.

1. **CloudWatch 로그 그룹 탐색기**에서 ARN을 복사할 로그 그룹을 마우스 오른쪽 버튼으로 클릭하세요.

1. 메뉴에서 **ARN 복사** 옵션을 선택하세요.

1. 이제 ARN이 로컬 클립보드에 복사되어 붙여넣을 준비가 되었습니다.

## CloudWatch 로그 스트림
<a name="cloudwatch-log-overview-logstream"></a>

로그 스트림은 동일한 소스를 공유하는 로그 이벤트 시퀀스입니다.

**참고**  
로그 스트림을 볼 때는 다음 속성에 유의하세요.  
기본적으로 로그 스트림은 가장 최근의 이벤트 타임스탬프를 기준으로 정렬됩니다.
열 헤더에 있는 **캐럿**을 토글하여 로그 스트림과 관련된 열을 오름차순 또는 내림차순으로 정렬할 수 있습니다.
필터링된 항목은 **로그 스트림 이름**으로만 정렬할 수 있습니다.

### 로그 스트림 보기
<a name="cloudwatch-log-overview-logstream-view"></a>

1. **CloudWatch 로그 그룹 탐색기**에서 로그 그룹을 두 번 클릭하거나 로그 그룹을 마우스 오른쪽 버튼으로 클릭한 다음 컨텍스트 메뉴에서 **로그 스트림 보기**를 선택하세요.

1. **문서** 창에 로그 그룹과 관련된 로그 스트림 목록이 포함된 새 탭이 열립니다.

### 로그 스트림 필터링
<a name="cloudwatch-log-overview-logstream-filter"></a>

1. **문서** 창의 **로그 스트림** 탭에서 검색 창에 커서를 놓습니다.

1. 찾고 있는 로그 스트림과 관련된 접두사를 입력하기 시작합니다.

1. 입력하면 입력에 따라 현재 디스플레이가 자동으로 업데이트되어 로그 스트림을 필터링하세요.

### 로그 스트림 새로 고침
<a name="cloudwatch-log-overview-logstream-refresh"></a>

**문서** 창에 표시된 현재 로그 스트림 목록을 새로 고치려면 **도구 모음**의 **검색 창** 옆에 있는 **새로 고침 아이콘** 버튼을 선택하세요.

### 로그 스트림 복사 ARN
<a name="cloudwatch-log-overview-logstream-copyarn"></a>

특정 로그 그룹의 ARN을 복사하려면 아래 설명된 단계를 완료하세요.

1. **로그 스트림** 탭의 **문서** 창에서 ARN을 복사하려는 로그 스트림을 마우스 오른쪽 버튼으로 클릭하세요.

1. 메뉴에서 **ARN 복사** 옵션을 선택하세요.

1. 이제 ARN이 로컬 클립보드에 복사되어 붙여넣을 준비가 되었습니다.

### 로그 스트림 다운로드
<a name="cloudwatch-log-overview-logstream-delete"></a>

**로그 스트림 내보내기** 기능은 선택한 로그 스트림을 로컬에 다운로드하고 저장하며, 추가 처리를 위해 사용자 지정 도구 및 소프트웨어로 액세스할 수 있습니다.

1. **로그 스트림** 탭의 **문서** 창에서 다운로드하려는 로그 스트림을 마우스 오른쪽 버튼으로 클릭하세요.

1. **로그 스트림 내보내기**를 선택하여 **텍스트 파일로 내보내기** 대화 상자를 엽니다.

1. 파일을 로컬에 저장할 위치를 선택하고 제공된 텍스트 필드에 이름을 지정하세요.

1. **확인**을 선택하여 다운로드를 확인하세요. 다운로드 상태는 **Visual Studio 작업 상태 센터**에 표시됩니다.

## CloudWatch 로그 이벤트
<a name="cloudwatch-log-overview-logevents"></a>

로그 이벤트는 CloudWatch로 모니터링 중인 애플리케이션 또는 리소스에 의해 기록된 활동의 기록입니다.

### 로그 이벤트 작업
<a name="cloudwatch-log-overview-logevents-actions"></a>

로그 이벤트는 테이블로 표시됩니다. 기본적으로 이벤트는 가장 오래된 이벤트부터 가장 최근 이벤트까지 정렬됩니다.

Visual Studio의 로그 이벤트와 관련된 작업은 다음과 같습니다.
+ 줄 바꿈 텍스트 모드: 이벤트를 클릭하여 줄 바꿈된 텍스트를 전환할 수 있습니다.
+ 텍스트 줄 바꿈 버튼: `document window toolbar`에 있는 이 버튼을 사용하면 모든 항목에 대해 텍스트 줄 바꿈을 켜거나 끌 수 있습니다.
+ 클립보드에 메시지 복사: 복사하려는 메시지를 선택한 다음 선택 항목을 마우스 오른쪽 버튼으로 클릭하고 **복사**(키보드 단축키 `Ctrl + C`)를 선택하세요.

### 로그 이벤트 보기
<a name="cloudwatch-log-overview-logevents-view"></a>

1. **문서** 창에서 로그 스트림 목록이 포함된 탭을 선택하세요.

1. 로그 스트림을 두 번 클릭하거나, 로그 스트림을 마우스 오른쪽 버튼으로 클릭한 다음 메뉴에서 **로그 스트림 보기**를 선택하세요.

1. 선택한 로그 스트림과 관련된 로그 이벤트 테이블이 포함된 새 **로그 이벤트** 탭이 **문서** 창에 열립니다.

### 로그 이벤트 필터링
<a name="cloudwatch-log-overview-logevents-filter"></a>

로그 이벤트를 필터링하는 방법에는 내용 기준, 시간 범위 기준 또는 둘 함께 사용 등의 세 가지가 있습니다. 내용과 시간 범위를 기준으로 로그 이벤트를 필터링하려면 먼저 내용 또는 시간 범위를 기준으로 메시지를 필터링한 다음 다른 방법으로 결과를 필터링하세요.

내용 기준으로 로그 이벤트를 필터링하려면 다음을 수행하세요.

1. **문서** 창의 **로그 이벤트** 탭에서 창 상단에 있는 검색 표시줄에 커서를 놓습니다.

1. 검색 중인 로그 이벤트와 관련된 용어 또는 문구를 입력하세요.

1. 입력하면 현재 디스플레이에서 자동으로 로그 이벤트를 필터링하기 시작합니다.
**참고**  
필터 패턴은 대/소문자를 구분합니다. 영숫자가 아닌 문자가 포함된 정확한 용어 및 구문을 큰따옴표 (\$1""\$1) 로 묶으면 검색 결과를 개선할 수 있습니다. 필터 패턴에 대한 자세한 정보는 Amazon CloudWatch 안내서의 [필터 및 패턴 구문](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html) 주제를 참조하세요.

특정 시간 범위 동안 생성된 로그 이벤트를 보려면 다음을 수행하세요.

1. **문서** 창의 **로그 이벤트** 탭에서 **도구 모음**에 있는 **캘린더 아이콘** 버튼을 선택하세요.

1. 제공된 필드를 사용하여 검색하려는 시간 범위를 지정하세요.

1. 날짜 및 시간 제한을 지정하면 필터링된 결과가 자동으로 업데이트됩니다.
**참고**  
**필터 지우기** 옵션은 현재 날짜 및 시간 필터 선택 항목을 모두 지웁니다.

### 로그 이벤트 새로 고침
<a name="cloudwatch-log-overview-logevents-refresh"></a>

**로그 이벤트** 탭에 표시된 현재 로그 이벤트 목록을 새로 고치려면 **도구 모음**에 있는 **새로 고침 아이콘** 버튼을 선택하세요.

## CloudWatch Logs에 대한 추가 액세스
<a name="cloudwatch-log-overview-additional"></a>

Visual Studio의 AWS 도구 키트에서 직접 다른 AWS 서비스 및 리소스와 연결된 CloudWatch Logs에 액세스할 수 있습니다.

### Lambda
<a name="cloudwatch-log-overview-additional-lambda"></a>

Lambda 함수와 연결된 로그 스트림을 보려면 다음을 수행하세요.

**참고**  
Lambda 실행 역할에는 CloudWatch Logs에 로그를 전송할 수 있는 적절한 권한이 있어야 합니다. CloudWatch Logs로 데이터를 전송하는 데 필요한 권한에 대한 자세한 정보는 [https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html#monitoring-cloudwatchlogs-prereqs](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html#monitoring-cloudwatchlogs-prereqs) 섹션을 참조하세요.

1.  AWS Toolkit Explorer에서 **Lambda**를 확장합니다.

1. 보려는 함수를 마우스 오른쪽 버튼으로 클릭한 다음 **로그 보기**를 선택하여 **문서** 창에서 관련 로그 스트림을 엽니다.

Lambda 통합 `function view`를 사용하여 로그 스트림을 보려면 다음을 수행하세요.

1.  AWS Toolkit Explorer에서 **Lambda**를 확장합니다.

1. 보려는 함수를 마우스 오른쪽 버튼으로 클릭한 다음 **함수 보기**를 선택하여 **문서** 창에서 함수 보기를 엽니다.

1. `function view`에서 **Logs** 탭으로 전환하면 선택한 Lambda 함수와 관련된 로그 스트림이 표시됩니다.

### ECS
<a name="cloudwatch-log-overview-additional-ecs"></a>

ECS 작업 컨테이너와 연결된 로그 리소스를 보려면 다음 절차를 완료하세요.

**참고**  
Amazon ECS 서비스가 CloudWatch에 로그를 전송하려면 해당 Amazon ECS 작업의 각 컨테이너가 필수 구성을 충족해야 합니다. 필요한 설정 및 구성에 대한 자세한 내용은 [AWS 로그 로그 드라이버 사용 설명서를 참조하세요](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html).

1.  AWS Toolkit Explorer에서 **Amazon ECS**를 확장합니다.

1. 보려는 Amazon ECS 클러스터를 선택하여 **문서** 창에서 새 **ECS 클러스터** 탭을 엽니다.

1. **ECS 클러스터** 탭의 왼쪽에 있는 탐색 메뉴에서 **작업**을 선택하여 클러스터와 관련된 모든 작업을 나열하세요.

1. **작업** 디스플레이에서 작업을 선택하고 왼쪽 하단에 있는 **로그 보기** 링크를 선택하세요.
**참고**  
이 디스플레이에는 클러스터에 포함된 모든 작업이 나열되며, `View Logs` 링크는 필수 로그 구성을 충족하는 각 작업에 대해서만 표시됩니다.  
작업이 단일 컨테이너에만 연결된 경우 **로그 보기** 링크를 클릭하면 해당 컨테이너의 로그 스트림이 열립니다.
작업이 여러 컨테이너와 연결된 경우 **로그 보기** 링크를 클릭하면 **ECS 작업용 CloudWatch Logs 보기** 대화 상자가 열리고 **컨테이너:** 드롭다운 메뉴를 사용하여 로그를 보려는 컨테이너를 선택한 다음 **확인**을 선택하세요.

1. **문서** 창에 컨테이너 선택과 관련된 로그 스트림을 표시하는 새 탭이 열립니다.

# Amazon EC2 인스턴스 관리
<a name="tkv-ec2-ami"></a>

AWS 탐색기는 Amazon Machine Image(AMI) 및 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스의 상세한 보기를 제공합니다. 이러한 보기에서 AMI의 Amazon EC2 인스턴스를 시작하고, 해당 인스턴스에 연결하며, 인스턴스를 중지하거나 종료할 수 있습니다. 모두 Visual Studio 개발 환경 내에서 수행됩니다. 인스턴스 보기를 사용하여 인스턴스에서 AMI를 생성할 수 있습니다. 자세한 내용은 [Amazon EC2 인스턴스에서 AMI 생성](tkv-create-ami-from-instance.md)을 참조하십시오.

## Amazon 머신 이미지 및 Amazon EC2 보기
<a name="tkv-ami-and-instance-views"></a>

AWS 탐색기에서 Amazon Machine Image(AMI) 및 Amazon EC2 인스턴스 보기를 표시할 수 있습니다. AWS 탐색기에서 **Amazon EC2** 노드를 확장하세요.

첫 번째 하위 노드 **AMI**에서 AMI 보기를 표시하려면 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 다음 **보기**를 선택합니다.

**인스턴스** 노드에서 Amazon EC2 인스턴스를 표시하려면 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 다음 **보기**를 선택합니다.

적합한 노드를 두 번 클릭하여 보기를 표시할 수도 있습니다.
+ 보기는 AWS 탐색기에서 지정한 리전으로 표시됩니다(예: 미국 서부(캘리포니아 북부 지역) 리전).
+ 클릭하고 끌어 열을 다시 정렬할 수 있습니다. 열에서 값을 정렬하려면 열 제목을 클릭합니다.
+ **보기**에서 드롭다운 목록 및 필터 상자를 사용하여 보기를 구성할 수 있습니다. 초기 보기는 AWS 탐색기에서 지정한 계정이 소유하고 있는 모든 플랫폼 유형(Windows 또는 Linux)의 AMI를 표시합니다.

 *열 표시/숨기기* 

또한 보기 상단에서 **표시/숨기기** 드롭다운 목록을 선택하여 표시할 열을 구성할 수 있습니다. 보기를 닫고 다시 열어도 선택한 열이 그대로 유지됩니다.

![\[Interface showing Amazon Images list with AMI details and column configuration options.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-ami-instance-show-hide-columns.png)


 AMI 및 인스턴스 보기의 **열 표시/숨기기** UI

 *AMI, 인스턴스 및 볼륨 태그 지정* 

또한 **표시/숨기기** 드롭다운 목록을 사용하여 소유한 AMI, Amazon EC2 인스턴스 또는 볼륨에 태그를 추가할 수 있습니다. 태그는 AMI, 인스턴스 및 볼륨에 메타데이터를 연결해 주는 이름 값 쌍입니다. 태그 이름은 계정에 모두 지정되거나 AMI 및 인스턴스에 따로 지정됩니다. 예를 들어, AMI 및 인스턴스에 동일한 태그 이름을 사용해도 충돌되지 않습니다. 태그 이름은 대/소문자를 구분하지 않습니다.

태그에 대한 자세한 정보는 *Linux 인스턴스용 Amazon EC2 사용 설명서*의 [태그 사용](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)을 참조하세요.

 *태그 추가*: 

1. **추가** 상자에 태그 이름을 입력합니다. 더하기 기호(\$1)가 있는 녹색 버튼을 선택한 다음 **적용**을 선택합니다.  
![\[Dialog box for customizing column display with tag keys and image attributes options.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-add-tag.png)

   AMI 또는 Amazon EC2 인스턴스에 태그 추가

   새 태그는 기울임꼴로 표시되며, 해당 태그와 연결된 값이 아직 없음을 나타냅니다.

   목록 보기에서 태그 이름이 새 열로 나타납니다. 하나 이상의 값이 태그와 연결되면 태그가 [AWS Management Console](https://console.aws.amazon.com/ec2/home) 콘솔에 표시됩니다.

1. 태그에 값을 추가하려면 해당 태그 열에서 셀을 두 번 클릭하고 값을 입력합니다. 태그 값을 삭제하려면 셀을 두 번 클릭하고 텍스트를 삭제합니다.

   **표시/숨기기** 드롭다운 목록에서 태그를 선택 해제하면 해당 열이 보기에서 사라집니다. 태그는 AMI, 인스턴스 또는 볼륨과 연결된 태그 값과 함께 유지됩니다.
**참고**  
**표시/숨기기** 드롭다운 목록에서 연결된 값이 없는 태그를 선택 해제하면 AWS 툴킷이 태그를 전체적으로 삭제합니다. 더 이상 목록 보기 또는 **표시/숨기기** 드롭다운 목록에 나타나지 않습니다. 해당 태그를 다시 사용하려면 **표시/숨기기** 대화 상자를 사용하여 태그를 다시 생성하십시오.

## Amazon EC2 인스턴스 실행
<a name="create-ec2"></a>

AWS 탐색기는 Amazon EC2 인스턴스 실행에 필요한 모든 기능을 제공합니다. 이 섹션에서는 Amazon 머신 이미지(AMI)를 선택하고 구성한 다음 Amazon EC2 인스턴스로 시작해 보겠습니다.

 *Windows Server Amazon EC2 인스턴스를 실행하려면* 

1. AMI 보기 상단에 있는 왼쪽 드롭다운 목록에서 **Amazon Images(Amazon 이미지)**를 선택합니다. 오른쪽 드롭다운 목록에서 **Windows**를 선택합니다. 필터 상자에서 Elastic Block Storage를 나타내는 `ebs`를 입력합니다. 보기를 새로 고치는 데 다소 시간이 걸릴 수 있습니다.

1. 목록에서 AMI를 선택하고 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 다음 **인스턴스 실행**를 선택합니다.  
![\[Context menu for an AMI showing options including Launch Instance and Edit Permission.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/ami-launch-list.png)

   AMI 목록

1. **Launch New Amazon EC2 Instance(새 Amazon EC2 인스턴스 시작)** 대화 상자에서 애플리케이션에 대한 AMI를 구성합니다.  
** *인스턴스 유형* **  
실행할 EC2 인스턴스 유형을 선택합니다. [EC2 요금](https://aws.amazon.com/ec2/pricing/) 페이지에서 인스턴스 유형의 목록과 요금 정보를 확인할 수 있습니다.  
** * 이름* **  
인스턴스 이름을 입력합니다. 이 이름은 256자를 초과할 수 없습니다.  
** *키 페어* **  
키 페어는 RDP(Remote Desktop Protocol)를 사용하는 EC2 인스턴스에 로그인하는 데 필요한 Windows 암호를 얻는 데 사용됩니다. 프라이빗 키 액세스 권한이 있는 키 페어를 선택하거나 키 페어를 생성하는 옵션을 선택합니다. 도구 키트에서 키 페어를 만든 경우 도구 키트가 프라이빗 키를 저장할 수 있습니다.  
ToolKit에 저장된 키 페어는 암호화됩니다. 암호화된 키는 `%LOCALAPPDATA%\AWSToolkit\keypairs`(일반적으로 `C:\Users\<user>\AppData\Local\AWSToolkit\keypairs`)에 있습니다. 암호화된 키 페어를 `.pem` 파일로 내보낼 수 있습니다.  

   1. Visual Studio에서 **보기**를 선택하고 **AWS 탐색기**를 클릭하세요.

   1. **Amazon EC2**를 클릭하고 **Key Pairs(키 페어)**를 선택합니다.

   1. 키 페어가 나열되고 도구 키트가 생성하고 관리하는 항목은 **Stored in AWSToolkit(AWSToolkit에 저장됨)**으로 표시됩니다.

   1. 생성된 키 페어를 마우스 오른쪽 버튼으로 클릭하고 **Export Private Key(프라이빗 키 내보내기)**를 선택합니다. 프라이빗 키는 암호화되지 않고 지정한 위치에 저장됩니다.  
** *보안 그룹* **  
보안 그룹은 EC2 인스턴스가 허용하는 네트워크 트래픽의 유형을 제어합니다. 포트 3389(RDP에서 사용하는 포트)에서 수신 트래픽을 허용하는 보안 그룹을 선택하면 EC2 인스턴스에 연결할 수 있습니다. 툴킷을 사용하는 방법에 대한 자세한 정보는 [AWS 탐색기에서 보안 그룹 관리](tkv-sg-create.md)를 참조하세요.  
** *인스턴스 프로파일* **  
인스턴스 프로파일은 IAM 역할에 대한 논리 컨테이너입니다. 인스턴스 프로파일을 선택하면 해당하는 IAM 역할과 EC2 인스턴스를 연결합니다. IAM 역할은 Amazon Web Services 및 계정 리소스에 대한 액세스를 지정하는 정책으로 구성됩니다. EC2 인스턴스가 IAM 역할과 연결되면 인스턴스에서 실행 중인 애플리케이션 소프트웨어가 IAM 역할에서 지정한 권한으로 실행됩니다. 이렇게 하면 애플리케이션 소프트웨어가 AWS 보안 인증 정보를 자체적으로 지정하지 않아도 실행되므로 소프트웨어 보안이 강화됩니다. IAM 역할에 대한 자세한 내용은 [IAM 사용 설명서](https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html)를 참조하십시오.  
![\[Launch AMI window for Amazon EC2 instance with Windows Server 2016 and configuration options.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/ami-launch-ui-new.png)

   EC2 **AMI 시작** 대화 상자

1. **시작**을 선택합니다.

   AWS 탐색기에서 **Amazon EC2**의 **인스턴스** 하위 노드에서 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 다음 **보기**를 선택하세요. AWS 툴킷에서 활성 계정과 연결되어 있는 Amazon EC2 인스턴스 목록을 표시합니다. 새 인스턴스를 보려면 **새로 고침**을 선택해야 합니다. 인스턴스가 먼저 나타나면 대기 중 상태일 수도 있지만 시간이 지나면 실행 중 상태로 전환됩니다.  
![\[AWS Explorer showing running EC2 instances with context menu options for management.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/ami-running-ec2-instancs.png)

## Amazon EC2 인스턴스에 연결
<a name="connect-ec2"></a>

Windows Remote Desktop을 사용하여 Windows Server 인스턴스에 연결할 수 있습니다. 인증 시 AWS 툴킷을 사용하여 인스턴스에 대한 관리자 암호를 검색하거나 인스턴스와 연결되어 있는 저장된 키 페어를 사용할 수도 있습니다. 다음 절차에서는 저장된 키 페어를 사용하겠습니다.

 *Windows Remote Desktop을 사용하여 Windows Server 인스턴스에 연결하려면* 

1. EC2 인스턴스 목록에서 연결하려는 Windows Server 인스턴스를 마우스 오른쪽 버튼으로 클릭합니다. 컨텍스트 메뉴에서 **Open Remote Desktop(원격 데스크톱 열기)**을 선택합니다.

   관리자 암호를 사용하여 인증하려면 **Get Windows Passwords(Windows 암호 가져오기)**를 선택합니다.  
![\[Context menu for EC2 instance with options like Open Remote Desktop and Get System Log.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-rdp-menu.png)

   EC2 인스턴스 컨텍스트 메뉴

1. **Open Remote Desktop(원격 데스크톱 열기)** 대화 상자에서 **Use EC2 keypair to log on(EC2 키 페어를 사용하여 로그인)**을 선택한 다음 **확인**을 선택합니다.

   AWS 툴킷으로 키 페어를 저장하지 않은 경우 프라이빗 키가 포함된 PEM 파일을 지정합니다.  
![\[Remote Desktop connection dialog with EC2 keypair login option selected and highlighted.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-rdp-open.png)

    **Open Remote Desktop(원격 데스크톱 열기) 대화 상자**

1. **Remote Desktop(원격 데스크톱)** 창이 열립니다. 키 페어로 인증이 이루어지므로 로그인할 필요가 없습니다. Amazon EC2 인스턴스에서 관리자로 실행 중입니다.

   EC2 인스턴스가 최근에 시작된 경우 두 가지 이유로 인해 연결하지 못할 수 있습니다.
   + 원격 데스크톱 서비스가 아직 실행되지 않았을 수 있습니다. 몇 분 기다린 후 다시 시도하십시오.
   + 암호 정보가 아직 인스턴스에 전송되지 않았을 수 있습니다. 이런 경우 다음과 유사한 메시지 상자가 표시됩니다.  
![\[Error dialog indicating password generation and encryption may take over 30 minutes.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-rdp-no-joy.png)

   암호를 아직 사용할 수 없음

   다음 스크린샷은 원격 데스크톱을 통해 관리자로 연결된 사용자를 표시합니다.  
![\[Remote Desktop session showing Windows interface with Command Prompt and Start menu open.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-rdt-desktop.png)

   원격 데스크톱

## Amazon EC2 인스턴스 종료
<a name="ec2-end"></a>

AWS 툴킷을 사용하여 Visual Studio에서 실행 중인 Amazon EC2 인스턴스를 중지하거나 종료할 수 있습니다. 인스턴스를 중지하려면 EC2 인스턴스가 Amazon EBS 볼륨을 사용하고 있어야 합니다. EC2 인스턴스가 Amazon EBS 볼륨을 사용하지 않으면 인스턴스 종료만 가능합니다.

인스턴스를 중지하면 EBS 볼륨에 저장된 데이터가 보관됩니다. 인스턴스를 종료하면 인스턴스의 로컬 스토리지 장치에 저장된 모든 데이터가 손실됩니다. 중지하거나 종료하면 EC2 인스턴스의 비용은 부과되지 않습니다. 그러나 인스턴스를 중지한 경우 해당 인스턴스가 중지된 후에도 유지되는 EBS 스토리지의 비용은 계속 부과됩니다.

인스턴스를 종료하는 다른 방법은 원격 데스크톱을 사용하여 인스턴스에 연결한 다음 Windows **시작** 메뉴에서 **종료**를 사용하는 것입니다. 이 시나리오에서는 인스턴스를 중지하거나 종료하도록 구성할 수 있습니다.

 *Amazon EC2 인스턴스를 중지하려면* 

1. AWS 탐색기에서 **Amazon EC2** 노드를 확장하고 **인스턴스**의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 다음 **보기**를 선택하세요. **인스턴스** 목록에서 중지하려는 인스턴스를 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 **중지**를 선택합니다. **예**를 선택하여 인스턴스 중지를 확인합니다.  
![\[AWS Explorer interface showing context menu options for an EC2 instance, including Stop and Reboot.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-stop-menu.png)

1. **인스턴스** 목록 상단에서 **새로 고침**을 선택하여 Amazon EC2 인스턴스의 상태 변경을 확인합니다. 인스턴스를 종료하지 않고 중지했으므로 인스턴스와 연결된 EBS 볼륨은 계속 활성 상태입니다.  
![\[EC2 Instances list showing a stopped instance and an attached EBS volume with details.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-stopped.png)

 *종료된 인스턴스가 계속 표시됨* 

인스턴스를 종료하면 실행 중 또는 중지된 인스턴스와 함께 **인스턴스** 목록에 계속 나타납니다. 나중에 AWS가 이러한 인스턴스를 회수하면 목록에서 사라집니다. 종료된 상태에서는 인스턴스의 비용이 부과되지 않습니다.

![\[EC2 instance list showing two instances, one running and one terminated, with volume details.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-instance-terminated-linger.png)


 *종료 시 EC2 인스턴스 동작을 지정하려면* 

AWS 툴킷을 사용하면 **시작** 메뉴에서 **종료**를 선택한 경우 Amazon EC2 인스턴스를 중지할지 또는 종료할지 지정할 수 있습니다.

1. **인스턴스** 목록에서 Amazon EC2 인스턴스를 마우스 오른쪽 버튼으로 클릭한 다음 **종료 방식 변경**을 선택합니다.  
![\[Context menu showing "변경 사항 Shutdown Behavior" option highlighted among other instance actions.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-change-shutdown.png)

    **종료 방식 변경** 메뉴 항목

1. **종료 방식 변경** 대화 상자의 **종료 방식** 드롭다운 목록에서 **중지** 또는 **종료**를 선택합니다.  
![\[Dialog box for changing instance shutdown behavior with options to stop or terminate.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-change-shutdown-dlg.png)

# Amazon ECS 인스턴스 관리
<a name="tkv-ecs"></a>

AWS 탐색기는 Amazon Elastic Container Service(Amazon ECS) 클러스터 및 컨테이너 리포지토리에 대한 세부 보기를 제공합니다. Visual Studio 개발 환경 내에서 클러스터 및 컨테이너 세부 정보를 생성, 삭제 및 관리할 수 있습니다.

## 서비스 속성 수정
<a name="tkv-ecs-clusters-service-props"></a>

클러스터 보기에서 서비스 세부 정보, 서비스 이벤트 및 서비스 속성을 확인할 수 있습니다.

1.  AWS 탐색기에서 관리할 클러스터의 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭)를 연 다음 **보기를** 선택합니다.

1. ECS 클러스터 보기에서 왼쪽의 **서비스**를 클릭한 다음, 상세 정보 보기의 **상세 정보** 탭을 클릭합니다. **이벤트**를 클릭하여 이벤트 메시지를 확인하고 **배포**를 클릭하여 배포 상태를 확인할 수 있습니다.

1. **편집**을 클릭합니다. 원하는 작업 수와 최소 및 최대 정상 상태 백분율을 변경할 수 있습니다.

1. 변경 내용을 수락하려면 **저장**을 클릭하고 기존 값으로 되돌리려면 **취소**를 클릭합니다.

## 작업 중지
<a name="tkv-ecs-clusters-tasks-stop"></a>

작업의 헌재 상태를 확인하고 클러스터 보기에서 하나 이상의 작업을 중지할 수 있습니다.

 *작업을 중지하려면* 

1.  AWS 탐색기에서 중지하려는 작업이 있는 클러스터의 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭)를 연 다음 **보기를** 선택합니다.

1. ECS 클러스터 보기에서 왼쪽의 **작업**을 클릭합니다.

1. **Desired Task Status(원하는 작업 상태)** 가 `Running`으로 설정되어 있는지 확인합니다. 중지하려면 개별 작업들을 선택하고 **중지** 또는 **모두 중지**를 클릭하여 실행 중인 모든 작업을 선택하여 중지시킵니다.

1. **Stop Tasks(작업 중지)** 대화 상자에서 **예**를 선택합니다.

## 서비스 삭제
<a name="tkv-ecs-clusters-service-delete"></a>

클러스터 보기에서 클러스터로부터 서비스를 삭제할 수 있습니다.

 *클러스터 서비스를 삭제하려면* 

1.  AWS 탐색기에서 삭제하려는 서비스가 있는 클러스터의 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭)를 연 다음 **보기를** 선택합니다.

1. ECS 클러스터 보기에서 왼쪽의 **서비스**를 클릭한 다음, **삭제**를 클릭합니다.

1. **클러스터 삭제** 대화 상자에서 클러스터에 로드 밸런서와 대상 그룹이 있는 경우에 클러스터에서 이들을 삭제할 수 있습니다. 삭제된 서비스는 더 이상 사용되지 않습니다.

1. **클러스터 삭제** 대화 상자에서 **확인**을 선택합니다. 삭제된 클러스터는 AWS 탐색기에서 제거됩니다.

## 클러스터 삭제
<a name="tkv-ecs-cluster-view"></a>

 AWS 탐색기에서 Amazon Elastic Container Service 클러스터를 삭제할 수 있습니다.

 *클러스터 삭제* 

1.  AWS 탐색기에서 **Amazon ECS**의 클러스터 노드에서 삭제할 **클러스터**의 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭)를 연 다음 **삭제**를 선택합니다.

1. **클러스터 삭제** 대화 상자에서 **확인**을 선택합니다. 삭제된 클러스터는 AWS 탐색기에서 제거됩니다.

## 리포지토리 생성
<a name="tkv-ecs-repository-create"></a>

 AWS Explorer에서 Amazon Elastic Container Registry 리포지토리를 생성할 수 있습니다.

 *리포지토리 생성* 

1.  AWS 탐색기에서 **Amazon ECS** 아래에 있는 **리포지토리** 노드의 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭)를 연 다음 **리포지토리 생성을** 선택합니다.

1. **리포지토리 생성** 대화 상자에서 리포지토리 이름을 입력하고 **확인**을 선택합니다.

## 리포지토리 삭제
<a name="id1"></a>

 AWS 탐색기에서 Amazon Elastic Container Registry 리포지토리를 삭제할 수 있습니다.

 *리포지토리 삭제* 

1.  AWS 탐색기에서 **Amazon ECS** 아래에 있는 **리포지토리** 노드의 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭)를 연 다음 **리포지토리 삭제**를 선택합니다.

1. **리포지토리 삭제** 대화 상자에서 이미지가 포함된 경우라도 리포지토리를 삭제하겠다고 선택할 수 있습니다. 그렇지 않으면 비어 있는 경우만 삭제가 됩니다. **예**를 클릭합니다.

# AWS 탐색기에서 보안 그룹 관리
<a name="tkv-sg-create"></a>

Toolkit for Visual Studio를 사용하면 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 및 CloudFormation과 함께 사용할 보안 그룹을 생성하고 구성할 수 있습니다. Amazon EC2 인스턴스를 시작하거나 CloudFormation에 애플리케이션을 배포할 때 Amazon EC2 인스턴스에 연결할 보안 그룹을 지정합니다. (CloudFormation에 배포하면 Amazon EC2 인스턴스가 생성됩니다.)

보안 그룹은 수신되는 네트워크 트래픽에 대한 방화벽의 역할을 하며, 보안 그룹은 Amazon EC2 인스턴스에 허용되는 네트워크 트래픽의 유형을 지정합니다. 또한 특정 IP 주소 또는 지정된 사용자나 다른 보안 그룹에서만 수신 트래픽이 수락되도록 지정할 수 있습니다.

## 보안 그룹 생성
<a name="tkv-sg-create-security"></a>

이 단원에서는 보안 그룹을 생성합니다. 보안 그룹이 생성된 후에는 해당 보안 그룹에 권한이 구성되어 있지 않습니다. 권한 구성은 추가 작업을 통해 처리됩니다.

 *보안 그룹을 생성하는 방법* 

1. AWS 탐색기의 **Amazon EC2** 노드에서 **보안 그룹** 노드에 대한 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 다음 **보기**를 선택하세요.

1. **EC2 보안 그룹** 탭에서 **보안 그룹 생성**을 선택합니다.

1. **보안 그룹 생성** 대화 상자에서 보안 그룹의 이름과 설명을 입력한 다음 **확인**을 선택합니다.  
![\[Dialog box for creating a security group with fields for name and description.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-sg-create.png)

## 보안 그룹에 권한 추가
<a name="tkv-permission-sg"></a>

이 단원에서는 보안 그룹에 HTTP 및 HTTPS 프로토콜을 통한 웹 트래픽을 허용하는 권한을 추가합니다. 또한 다른 컴퓨터가 Windows RDP(Remote Desktop Protocol)를 사용하여 연결하는 것도 허용합니다.

 *보안 그룹에 권한을 추가하려면* 

1. **EC2 보안 그룹** 탭에서 보안 그룹을 선택한 다음 **권한 추가** 버튼을 선택합니다.

1. **Add IP Permission(IP 권한 추가)** 대화 상자에서 **Protocol, Port and Network(프로토콜, 포트 및 네트워크)** 라디오 버튼을 선택한 다음 **프로토콜** 드롭다운 목록에서 **HTTP**를 선택합니다. 포트 범위는 HTTP에 대한 기본 포트인 포트 80으로 자동으로 조정됩니다. **Source CIDR(소스 CIDR)** 필드의 기본값은 0.0.0.0/0입니다. 이 값은 HTTP 네트워크 트래픽이 모든 외부 IP 주소에서 수락되도록 지정합니다. **확인**을 선택합니다.  
![\[Add IP Permission dialog box with Protocol, Port and Network options for HTTP configuration.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-sg-http.png)

   이 보안 그룹에 대해 포트 80(HTTP) 열기

1. HTTPS 및 RDP에 대해 이 절차를 반복합니다. 보안 그룹 권한이 이제 다음과 같아야 합니다.  
![\[Security group settings showing HTTP, HTTPS, and RDP protocols with their respective ports and source CIDR.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-ec2-sg-display.png)

사용자 ID 및 보안 그룹 이름을 지정하여 보안 그룹의 권한을 설정할 수도 있습니다. 이 경우 이 보안 그룹의 Amazon EC2 인스턴스는 지정된 보안 그룹의 Amazon EC2 인스턴스에서 수신되는 모든 네트워크 트래픽을 허용합니다. 보안 그룹 이름과 명확하게 구분하는 방식으로 사용자 ID도 지정해야 합니다. 보안 그룹 이름은 모든 AWS에 고유할 필요가 없습니다. 보안 그룹에 대한 자세한 내용은 [EC2 설명서](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html)를 참조하십시오.

# Amazon EC2 인스턴스에서 AMI 생성
<a name="tkv-create-ami-from-instance"></a>

 AWS Toolkit for Visual Studio를 사용하여 Amazon Machine Image(AMI)를 생성할 수 있습니다. AMI에 대한 자세한 정보는 *Windows 인스턴스용 Amazon Elastic Compute Cloud* 사용 설명서의 [Amazon Machine Image(AMI)](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/AMIs.html) 주제를 참조하세요.

 기존 Amazon EC2 인스턴스에서 AMI를 생성하려면 다음 절차를 완료합니다.

**기존 Amazon EC2 인스턴스에서 AMI 생성**

1.  AWS Toolkit Explorer에서 **Amazon EC2**를 확장하고 **인스턴스를** 선택하여 기존 인스턴스 목록을 봅니다.

1. AMI의 기반으로 사용할 인스턴스를 마우스 오른쪽 버튼으로 클릭하고 **이미지 생성(ABS AMI)**을 선택하여 **이미지 생성** 대화 상자를 엽니다.

1. **이미지 생성** 대화 상자 창에서 제공된 필드에 이미지의 이름과 설명을 추가한 다음 **확인** 버튼을 선택하여 계속합니다.

1. 이미지가 생성되면 Visual Studio에서 **이미지 생성됨** 확인 창이 열리고 **확인** 버튼을 선택하여 계속합니다.

 AWS 도구 키트를 사용하여 새 AMI를 보려면 **Amazon EC2**를 확장하고 **AMIs** 두 번 클릭하여 Visual Studio Editor Payne에서 기존 AMIs 목록을 표시하는 창을 엽니다. 목록에 새 AMI가 표시되지 않으면 AMI 창 상단에 있는 **새로 고침** 버튼을 선택합니다.

# Amazon Machine Image의 시작 권한 설정
<a name="tkv-set-ami-launch-perms"></a>

 AWS Explorer의 AMIs)에 대한 시작 권한을 설정할 수 있습니다. **AMIs** **Set AMI Permissions(AMI 권한 설정)** 대화 상자를 사용하여 AMI에서 권한을 복사할 수 있습니다.

 *AMI에서 권한을 설정하려면* 

1.  AWS 탐색**AMIs** 보기에서 AMI의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 다음 **권한 편집**을 선택합니다.  
![\[Context menu for an AMI in AWS Explorer with "Edit Permission" option highlighted.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-ami-edit-permissions-menu.png)

1. **Set AMI Permissions(AMI 권한 편집)** 대화 상자에서 3개의 옵션을 사용할 수 있습니다.
   + 시작 권한을 부여하려면 **추가**를 선택하고 시작 권한을 부여할 AWS 사용자의 계정 번호를 입력합니다.
   + 시작 권한을 제거하려면 시작 권한을 제거할 AWS 사용자의 계정 번호를 선택하고 **제거**를 선택합니다.
   + AMI의 권한을 다른 AMI에 복사하려면 목록에서 AMI를 선택하고 **Copy from(다음으로부터 복사)**을 선택합니다. 선택한 AMI에 대한 시작 권한이 있는 사용자에게 현재 AMI에 대한 시작 권한이 부여됩니다. **Copy-from(다음으로부터 복사)** 목록에 있는 다른 AMI로 이 프로세스를 반복하여 여러 AMI의 권한을 대상 AMI로 복사할 수 있습니다.

     **다음으로부터 복사** 목록에는 AWS 탐색기에 **AMI** 보기가 표시될 때 활성 상태의 계정이 소유한 AMI만 포함됩니다. 따라서 활성 계정이 소유한 AMI가 없으면 **Copy-from(다음으로부터 복사)** 목록에 아무 것도 표시되지 않을 수 있습니다.  
![\[AMI management interface showing launch permissions and public/private settings for Linux instances.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-ami-copy-permissions-dlg.png)

    **Copy AMI permissions(AMI 권한 복사)** 대화 상자

# Amazon Virtual Private Cloud(VPC)
<a name="vpc-tkv"></a>

Amazon Virtual Private Cloud(Amazon VPC)를 사용하면 사용자가 정의한 가상 네트워크로 Amazon Web Services 리소스를 시작할 수 있습니다. 이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 유사합니다. 자세한 내용은 [Amazon VPC 사용 설명서](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/)를 참조하십시오.

개발자는 Toolkit for Visual Studio를 사용하여 [AWS Management Console](https://console.aws.amazon.com/console/home)에서 공개한 기능과 유사한 VPC 기능에 액세스할 수 있지만, Visual Studio 개발 환경의 기능에는 액세스할 수 없습니다. AWS Explorer의 **Amazon VPC** 노드에는 다음 영역에 대한 하위 노드가 포함되어 있습니다.
+  [VPC](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Introduction.html) 
+  [서브넷](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html) 
+  [엘라스틱 IP 주소](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-ip-addressing.html) 
+  [인터넷 게이트웨이](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html) 
+  [네트워크 ACL](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html) 
+  [라우팅 테이블](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html) 
+  [보안 그룹](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html) 

## 를 사용하여 배포를 위한 퍼블릭-프라이빗 VPC 생성 AWS Elastic Beanstalk
<a name="tkv-vpc-pub-pri"></a>

이 섹션에서는 퍼블릭 및 프라이빗 서브넷이 모두 포함되어 있는 Amazon VPC를 생성하는 방법을 설명합니다. 퍼블릭 서브넷에는 프라이빗 서브넷의 인스턴스가 퍼블릭 인터넷과 통신하도록 Network Address Translation(NAT)을 수행하는 Amazon EC2 인스턴스가 포함되어 있습니다. 두 서브넷은 동일한 AZ(가용 영역)에 있어야 합니다.

이는 VPC에 AWS Elastic Beanstalk 환경을 배포하는 데 필요한 최소 VPC 구성입니다. 이 시나리오에서 애플리케이션을 호스팅하는 Amazon EC2 인스턴스는 프라이빗 서브넷에 있으며, 수신 트래픽을 애플리케이션에 라우팅하는 Elastic Load Balancing 로드 밸런서는 퍼블릭 서브넷에 있습니다.

Network Address Translation(NAT)에 대한 자세한 정보는 *Amazon Virtual Private Cloud 사용 설명서*의 [NAT 인스턴스](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html)를 참조하세요. VPC를 사용하도록 배포를 구성하는 방법에 대한 예제는 [Elastic Beanstalk에 배포](deployment-beanstalk.md#tkv-deploy-beanstalk)를 참조하십시오.

 **퍼블릭-프라이빗 서브넷 VPC를 생성하려면** 

1.  AWS 탐색기의 **Amazon VPC** 노드에서 **VPCs** 하위 노드를 연 다음 **VPC 생성을** 선택합니다.  
![\[AWS Explorer showing Amazon VPC node expanded with VPCs subnode highlighted.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/vpc-vpcs-aws-explorer.png)

1. 다음과 같이 VPC를 구성합니다.
   + VPC 이름을 입력합니다.
   + **With Public Subnet(퍼블릭 서브넷 사용)** 및 **With Private Subnet(프라이빗 서브넷 사용)** 확인란을 선택합니다.
   + 각 서브넷에 대한 **Availability Zone(가용 영역)** 드롭다운 목록에서 가용 영역을 선택합니다. 두 서브넷에 대해 동일한 AZ를 사용해야 합니다.
   + 프라이빗 서브넷의 경우 **NAT Key Pair Name(NAT 키 페어 이름)**에 키 페어를 제공합니다. 이 키 페어는 프라이빗 서브넷에서 퍼블릭 인터넷으로 네트워크 주소 변환을 수행하는 Amazon EC2 인스턴스에 대해 사용됩니다.
   + **Configure default security group to allow traffic to NAT(기본 보안 그룹을 구성하여 NAT에 대한 트래픽 허용)** 확인란을 선택합니다.

   VPC 이름을 입력합니다. **With Public Subnet(퍼블릭 서브넷 사용)** 및 **With Private Subnet(프라이빗 서브넷 사용)** 확인란을 선택합니다. 각 서브넷에 대한 **Availability Zone(가용 영역)** 드롭다운 목록에서 가용 영역을 선택합니다. 두 서브넷에 대해 동일한 AZ를 사용해야 합니다. 프라이빗 서브넷의 경우 **NAT Key Pair Name(NAT 키 페어 이름)**에 키 페어를 제공합니다. 이 키 페어는 프라이빗 서브넷에서 퍼블릭 인터넷으로 네트워크 주소 변환을 수행하는 Amazon EC2 인스턴스에 대해 사용됩니다. **Configure default security group to allow traffic to NAT(기본 보안 그룹을 구성하여 NAT에 대한 트래픽 허용)** 확인란을 선택합니다.

   **확인**을 선택합니다.  
![\[VPC creation form with public and private subnet options, CIDR blocks, and NAT settings.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/vpc-create.png)

 AWS 탐색기의 VPC 탭에서 새 **VPCs**를 볼 수 있습니다.

![\[VPC list showing a single VPC named myDeploymentVPC with its ID and other details.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/vpc-created-display.png)


NAT 인스턴스를 시작하는 데 몇 분 정도 걸릴 수 있습니다. 사용 가능한 경우 AWS 탐색기에서 **Amazon EC2** 노드를 확장한 다음 인스턴스 하위 노드를 **열어 볼 수 있습니다**.

NAT 인스턴스에 대해 Amazon Elastic Block Store(Amazon EBS) 볼륨이 자동으로 생성됩니다. Amazon EBS에 대한 자세한 내용은 *Linux 인스턴스용 Amazon EC2 사용 설명서*에서 [Amazon Elastic Block Store(Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)를 참조하세요.

![\[EC2 instance details showing a running NAT instance with an attached EBS volume.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/vpc-nat-instance.png)


[AWS Elastic Beanstalk 환경에 애플리케이션을 배포](deployment-beanstalk.md#tkv-deploy-beanstalk)하고 VPC에서 환경을 시작하도록 선택하면 Toolkit은 VPC의 구성 정보로에 **게시 Amazon Web Services** 대화 상자를 채웁니다.

툴킷은 AWS Management Console을 사용하여 생성된 VPC의 정보가 아닌 툴킷에서 생성된 VPC의 정보만으로 대화 상자를 채웁니다. 이는 도구 키트가 VPC를 생성할 때 정보에 액세스할 수 있도록 VPC의 구성 요소에 태그를 지정하기 때문입니다.

배포 마법사의 다음 스크린샷은 도구 키트에서 생성된 VPC의 값으로 채워진 대화 상자의 예를 표시합니다.

![\[AWS Options dialog for EC2 deployment with container type, instance, VPC, and networking settings.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/deploy-pb-aeb-vpc-from-tkv.png)


 **VPC를 삭제하는 방법** 

VPC를 삭제하려면 먼저 VPC에서 모든 Amazon EC2 인스턴스를 종료해야 합니다.

1. VPC의 AWS Elastic Beanstalk 환경에 애플리케이션을 배포한 경우 환경을 삭제합니다. 이렇게 하면 Elastic Load Balancing 로드 밸런서와 함께 애플리케이션을 호스팅한 모든 Amazon EC2 인스턴스가 종료됩니다.

   환경을 삭제하지 않고 애플리케이션을 호스팅하는 인스턴스를 직접 종료하려고 시도하면 Auto Scaling 서비스가 자동으로 새 인스턴스를 생성하여 삭제된 인스턴스를 대체합니다. 자세한 내용은 [Auto Scaling 개발자 안내서](https://docs.aws.amazon.com/autoscaling/latest/userguide/WhatIsAutoScaling.html)를 참조하십시오.

1. VPC에 대한 NAT 인스턴스를 삭제합니다.

   VPC를 삭제하기 위해 NAT 인스턴스와 연결된 Amazon EBS 볼륨을 삭제할 필요가 없습니다. 그러나 볼륨을 삭제하지 않으면 NAT 인스턴스와 VPC를 삭제한 경우에도 해당 볼륨에 대해 계속 요금이 부과됩니다.

1. **VPC** 탭에서 **삭제** 링크를 선택하여 VPC를 삭제합니다.  
![\[VPC management interface showing Delete option highlighted for a selected VPC.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/vpc-delete-link.png)

1. **VPC 삭제** 대화 상자에서**확인**을 선택합니다.  
![\[Confirmation dialog for deleting a VPC, listing associated resources to be deleted.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/vpc-delete.png)

# Visual Studio용 CloudFormation 템플릿 편집기 사용
<a name="tkv-cfn-editor"></a>

Toolkit for Visual Studio에는 Visual Studio용 CloudFormation 템플릿 편집기 및 CloudFormation 템플릿 프로젝트가 포함되어 있습니다. 지원되는 기능은 다음과 같습니다.
+ 제공된 CloudFormation 템플릿 프로젝트 유형을 사용하여 새로운 템플릿(비어 있거나 기존 스택 또는 샘플 템플릿에서 복사) 생성
+ 자동 JSON 확인, 자동 완성, 코드 폴딩 및 구문 강조로 템플릿 편집
+ 템플릿의 필드 값의 내장 함수 및 리소스 참조 파라미터 자동 제안
+ Visual Studio에서 템플릿에 대한 일반적인 작업을 수행할 메뉴 항목입니다.

**Topics**
+ [

# Visual Studio에서 CloudFormation 템플릿 프로젝트 생성
](tkv-cfn-editor-new-project.md)
+ [

# Visual Studio에서 CloudFormation 템플릿 배포
](tkv-cfn-editor-deploy-template.md)
+ [

# Visual Studio에서 CloudFormation 템플릿의 형식 지정
](tkv-cfn-editor-format.md)

# Visual Studio에서 CloudFormation 템플릿 프로젝트 생성
<a name="tkv-cfn-editor-new-project"></a>

 **템플릿 프로젝트를 생성하려면** 

1. Visual Studio의 **파일** 메뉴에서 **새로 만들기**를 선택한 다음 **프로젝트**를 선택합니다.

1. **Visual Studio 2017**:

   **새 프로젝트** 대화 상자에서 **설치됨**을 확장하고 **AWS**를 선택하세요.  
![\[New Project dialog box showing CloudFormation and Lambda Function project options.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/CreateNewProject-04-CloudFormation-VS2017.png)

   **Visual Studio 2019**:

   **새 프로젝트** 대화 상자에서 **언어**, **플랫폼** 및 **프로젝트 유형** 드롭다운 상자가 “모두…”로 설정되어 있는지 확인하고 **검색** 필드에 **aws**를 입력하세요.  
![\[Project template options for AWS 서비스, including Lambda, CloudFormation, and Serverless applications.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/CreateNewProject-04-CloudFormation-VS2019.png)

1. **AWS CloudFormation 프로젝트** 템플릿을 선택하세요.

1. **Visual Studio 2017**:

   템플릿 프로젝트에 대해 원하는 **이름**, **위치** 등을 입력한 다음 **확인**을 클릭합니다.

   **Visual Studio 2019**:

   **다음**을 클릭합니다. 다음 대화 상자에서 템플릿 프로젝트에 대해 원하는 **이름**, **위치** 등을 입력한 다음 **만들기**를 클릭합니다.

1. **Select Project Source(프로젝트 소스 선택)** 페이지에서 생성할 템플릿의 소스를 선택합니다.
   +  **Create with empty template(빈 템플릿으로 생성)**은 새로운 빈 CloudFormation 템플릿을 생성합니다.
   +  **기존 AWS \$1CFN\$1 스택에서 생성**하면 AWS 계정의 기존 스택에서 템플릿이 생성됩니다. (스택은 `CREATE_COMPLETE` 상태일 필요가 없습니다.)
   +  **Select sample template(샘플 템플릿 선택)**은 CloudFormation 샘플 템플릿 중 하나에서 템플릿을 생성합니다.  
![\[CloudFormation project creation window with options for template source selection.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/vs-editor-new-template-empty-2.png)

1.  CloudFormation 템플릿 프로젝트 생성을 완료하려면 **완료**를 선택합니다.

# Visual Studio에서 CloudFormation 템플릿 배포
<a name="tkv-cfn-editor-deploy-template"></a>

 **CFN 템플릿을 배포하려면** 

1. 솔루션 탐색기에서 배포할 템플릿의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 **AWS CloudFormation에 배포**를 선택하세요.  
![\[Solution Explorer showing CloudFormation template with context menu options for deployment.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/vs-editor-solution-explorer-deploy.png)

   현재 편집 중인 템플릿을 배포하려면 **템플릿** 메뉴에서 **AWS CloudFormation에 배포**를 선택하세요.  
![\[Template menu options including Deploy to CloudFormation and Estimate Cost.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/vs-editor-template-menu-deploy.png)

1. **템플릿 배포** 페이지에서 스택을 시작하는 데 사용할 AWS 계정 및 스택이 시작될 리전을 선택하세요.  
![\[Deploy Template interface showing options to create or update a stack with account and region selection.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/vs-editor-cfn-deploy.png)

1. **Create New Stack(스택 새로 만들기)**을 선택하고 스택 이름을 입력합니다.

1. 다음 옵션을 선택합니다(아무 것도 선택하지 않아도 됨).
   + 스택 진행 상황에 대한 알림을 받으려면 **SNS 주제** 드롭다운 목록에서 SNS 주제를 선택합니다. **새 주제 생성**을 선택하고 상자에 이메일 주소를 입력하여 SNS 주제를 생성할 수도 있습니다.
   + **Creation Timeout(제한 시간 생성)**을 사용하여 CloudFormation에서 **실패 시 롤백** 옵션이 선택 해제되지 않은 경우 실패를 선언하고 롤백하기 전까지 스택을 생성하는 데 허용할 시간을 지정합니다.
   + **실패 시 롤백**을 사용하여 실패 시 스택을 롤백(자체 삭제)합니다. 실행을 완료하지 못해도 디버깅을 목적으로 스택을 계속 활성 상태로 두려면 이 옵션의 해제 상태를 유지합니다.

1. **완료**를 선택하여 스택을 시작합니다.

# Visual Studio에서 CloudFormation 템플릿의 형식 지정
<a name="tkv-cfn-editor-format"></a>
+ Solution Explorer에서 템플릿에 대한 컨텍스트(오른쪽 클릭) 메뉴를 열고 **Format Template(형식 템플릿)**을 선택합니다.

  또는 현재 편집 중인 템플릿의 형식을 지정하기 위해 **템플릿** 메뉴에서 **Format Template(형식 템플릿)**을 선택합니다.  
![\[Dropdown menu showing options to deploy to CloudFormation, estimate cost, and format template.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/vs-editor-template-menu-format.png)

  JSON 코드의 구조가 명시적으로 나타나도록 해당 코드의 형식이 지정됩니다.  
![\[JSON code structure for CloudFormation template with UserData and Properties sections.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/vs-editor-cfn-formatting.png)

# AWS Explorer에서 Amazon S3 사용
<a name="tkv-s3"></a>

Amazon Simple Storage Service(S3)를 사용하면 인터넷에 연결된 장소에서 데이터를 저장하고 검색할 수 있습니다. Amazon S3에 저장한 모든 데이터는 계정과 연결되며, 기본적으로 사용자만 액세스할 수 있습니다. Toolkit for Visual Studio를 사용하면 Amazon S3에 데이터를 저장하고 해당 데이터를 보고, 관리하고, 검색하고, 배포할 수 있습니다.

Amazon S3는 파일 시스템이나 논리 드라이브와 유사한 것으로 생각할 수 있는 버킷 개념을 사용합니다. 버킷에는 디렉터리와 비슷한 폴더 및 파일과 비슷한 객체가 포함될 수 있습니다. 이 섹션에서는 Toolkit for Visual Studio가 공개한 Amazon S3 기능에 대해 알아볼 때 이러한 개념을 사용합니다.

**참고**  
이 도구를 사용하려면 IAM 정책이 `s3:GetBucketAcl`, `s3:GetBucket`, `s3:ListBucket` 작업에 대한 권한을 부여해야 합니다. 자세한 내용은 [AWS IAM 정책 개요를 참조하세요](https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html).

## Amazon S3 버킷 생성
<a name="create-s3-bucket"></a>

버킷은 Amazon S3에서 가장 기본적인 저장 단위입니다.

 **S3 버킷을 생성하려면,**

1.  AWS 탐색기에서 **Amazon S3** 노드의 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭)를 연 다음 **버킷 생성을** 선택합니다.

1. **버킷 만들기** 대화 상자에서 버킷에 대한 이름을 입력합니다. 버킷 이름은 AWS에서 고유해야 합니다. 다른 제약 조건에 대한 자세한 내용은 [Amazon S3 설명서](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html)를 참조하십시오.

1. **확인**을 선택합니다.

## AWS Explorer에서 Amazon S3 버킷 관리
<a name="managing-s3-buckets"></a>

 AWS 탐색기에서 Amazon S3 버킷에 대한 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열 때 다음 작업을 사용할 수 있습니다.

 *찾아보기* 

버킷에 포함된 객체의 보기를 표시합니다. 여기에서 폴더를 생성하거나, 로컬 컴퓨터에서 파일이나 전체 디렉터리 및 폴더를 업로드할 수 있습니다. 하단 창에는 업로드 프로세스에 대한 상태 메시지가 표시됩니다. 이러한 메시지를 지우려면 **지우기** 아이콘을 선택합니다. AWS 탐색기에서 버킷 이름을 두 번 클릭하여 버킷의이 보기에 액세스할 수도 있습니다.

![\[Empty S3 bucket interface with options to upload files, create folders, and view status.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-s3-bucket-browse-empty.png)


 *속성* 

다음 작업을 수행할 수 있는 대화 상자를 표시합니다.
+ 다음과 같은 범위의 Amazon S3 권한을 설정합니다.
  + 버킷 소유자
  +  AWS에서 인증된 모든 사용자
  + 인터넷으로 액세스할 수 있는 모든 사용자
+ 버킷에 대한 로깅을 설정합니다.
+ 중복 감소 스토리지(RRS)를 사용하는 경우 데이터 손실이 발생하면 알림을 받을 수 있도록 Amazon Simple Notification Service(SNS)를 사용하여 알림을 설정합니다. RRS는 표준 스토리지보다 내구성이 낮지만 비용이 감소된 Amazon S3 스토리지 옵션입니다. 자세한 내용은 [S3 FAQ](https://aws.amazon.com/s3/faqs/#What_is_RRS)를 참조하십시오.
+ 버킷에서 데이터를 사용하여 정적 웹 사이트를 생성합니다.

 *정책* 

버킷에 대한 AWS Identity and Access Management (IAM) 정책을 설정할 수 있습니다. 자세한 내용은 [IAM 설명서](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_Overview.html)와 [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UseCases.html) 및 [S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/AccessPolicyLanguage_UseCases_s3_a.html)에 대한 사용 사례를 참조하십시오.

 *미리 서명된 URL 생성* 

버킷의 내용에 대한 액세스를 제공하기 위해 배포할 수 있는 기간이 제한된 URL을 생성할 수 있습니다. 자세한 내용은 [미리 서명된 URL 생성 방법](#s3-pre-sign-create)을 참조하십시오.

 *멀티파트 업로드 보기* 

멀티파트 업로드를 볼 수 있습니다. Amazon S3는 더 효율적인 업로드 프로세스를 위해 대량의 객체 업로드를 작게 나누는 것을 지원합니다. 자세한 내용은 [S3 설명서의 멀티파트 업로드](https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html)에 대한 설명을 참조하십시오.

 *삭제* 

버킷을 삭제할 수 있습니다. 빈 버킷만 삭제할 수 있습니다.

## Amazon S3에 파일 및 폴더 업로드
<a name="upload-s3-files"></a>

 AWS Explorer를 사용하여 로컬 컴퓨터에서 버킷으로 파일 또는 전체 폴더를 전송할 수 있습니다.

**참고**  
이미 Amazon S3 버킷에 있는 파일이나 폴더의 이름과 동일한 이름의 파일 또는 폴더를 업로드하면 경고 없이 업로드된 파일이 기존 파일을 덮어씁니다.

 **S3로 파일을 업로드하려면** 

1.  AWS 탐색기에서 **Amazon S3** 노드를 확장하고 버킷을 두 번 클릭하거나 버킷의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 **찾아보**기를 선택합니다.

1. 버킷의 **찾아보기** 보기에서 **파일 업로드** 또는 **Upload Folder(폴더 업로드)**를 선택합니다.

1. **File-Open(파일-열기)** 대화 상자에서 업로드할 파일을 탐색하여 선택한 다음 **열기**를 선택합니다. 폴더를 업로드하는 경우 해당 폴더를 탐색하여 선택한 다음 **열기**를 선택합니다.

   **Upload Settings(업로드 설정)** 대화 상자를 사용하면 업로드하는 파일이나 폴더에 대한 메타데이터 및 권한을 설정할 수 있습니다. **모두 공개하기** 확인란을 선택하는 것은 **열기/다운로드** 권한을 **모두**로 설정하는 것과 같습니다. 업로드된 파일에 대해 [Reduced Redundancy Storage](https://aws.amazon.com/s3/faqs/#What_is_RRS)를 사용하는 옵션을 선택할 수 있습니다.  
![\[Upload Settings dialog with options for storage, visibility, and permissions configuration.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-s3-file-upload.png)  
![\[S3 bucket interface showing a single uploaded file with details and upload progress.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-s3-file-upload-complete.png)

## AWS Toolkit for Visual Studio의 Amazon S3 파일 작업
<a name="tkv-s3-file-ops"></a>

Amazon S3 보기에서 파일을 선택하고 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열면 해당 파일에 대한 다양한 작업을 수행할 수 있습니다.

![\[Context menu for a file in Amazon S3 view, showing options like Upload, Download, and Delete.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-s3-file-ops-menu.png)


 *폴더 만들기* 

현재 버킷에서 폴더를 생성할 수 있습니다. (**폴더 생성** 링크 선택과 동일)

 *업로드* 

파일이나 폴더를 업로드할 수 있습니다. (**파일 업로드** 또는 **Upload Folder(폴더 업로드)** 링크 선택과 동일)

 *Open* 

기본 브라우저에서 선택한 파일을 열려고 시도합니다. 파일 유형과 기본 브라우저의 기능에 따라 파일이 표시되지 않을 수도 있습니다. 대신 브라우저에서 간단하게 다운로드할 수 있습니다.

 *다운로드* 

선택한 파일을 다운로드할 수 있는 **Folder-Tree(폴더-트리)** 대화 상자를 엽니다.

 *퍼블릭으로 설정* 

선택한 파일에 대한 권한을 **열기/다운로드** 및 **모든 사람**로 설정합니다. (**Upload Settings(업로드 설정)** 대화 상자에서 **Make everything public(전부 퍼블릭으로 설정)** 확인란을 선택하는 것과 동일)

 *삭제* 

선택한 파일 또는 폴더를 삭제합니다. 파일이나 폴더를 선택하고 `Delete`를 눌러 삭제할 수도 있습니다.

 *스토리지 클래스 변경* 

스토리지 클래스를 표준 또는 RRS(Reduced Redundancy Storage)로 설정합니다. 현재 스토리지 클래스 설정을 보려면 **속성**을 선택합니다.

 *암호화 변경* 

파일에 대해 서버 측 암호화를 설정할 수 있습니다. 현재 암호화 설정을 보려면 **속성**을 선택합니다.

 *이름 바꾸기* 

파일의 이름을 변경할 수 있습니다. 폴더의 이름을 바꿀 수 없습니다.

 *잘라내기 \$1 복사 \$1 붙여넣기* 

폴더 간 또는 버킷 간에 파일이나 폴더에 대해 잘라내기, 복사 및 붙여넣기를 수행할 수 있습니다.

 *속성* 

파일에 대한 메타데이터 및 권한을 설정하고, RRS(Reduced Redundancy Storage) 및 표준 간 파일에 대한 스토리지를 전환하고, 파일에 대해 서버 측 암호화를 설정할 수 있는 대화 상자를 표시합니다. 이 대화 상자에는 파일에 대한 https 링크도 표시됩니다. 이 링크를 선택하면 Toolkit for Visual Studio가 기본 브라우저에서 파일을 엽니다. 파일에 대해 **열기/다운로드** 및 **모든 사람**으로 설정된 권한이 있는 경우, 다른 사용자는 이 링크를 통해 파일에 액세스할 수 있습니다. 이 링크를 배포하는 대신 미리 서명된 URL을 생성하고 배포하는 것이 좋습니다.

![\[Properties dialog for an S3 object showing metadata, permissions, and encryption options.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-s3-properties-file.png)


 *미리 서명된 URL 생성* 

Amazon S3에 저장한 내용에 다른 사용자가 액세스하는 것을 허용하기 위해 배포할 수 있는 기간이 제한된 미리 서명된 URL을 생성할 수 있습니다.

### 미리 서명된 URL 생성 방법
<a name="s3-pre-sign-create"></a>

버킷에 대해 또는 버킷의 파일에 대해 미리 서명된 URL을 생성할 수 있습니다. 그러면 다른 사용자가 이 URL을 사용하여 버킷이나 파일에 액세스할 수 있습니다. URL은 URL을 생성할 때 지정한 기간 이후에 만료됩니다.

 **미리 서명된 URL을 생성하려면** 

1. **Create Pre-Signed URL(미리 서명된 URL 생성)** 대화 상자에서 URL에 대한 만료 날짜와 시간을 설정합니다. 기본 설정은 현재 시간으로부터 한 시간입니다.

1. **생성** 버튼을 선택합니다.

1. URL을 클립보드에 복사하려면 **복사**를 선택합니다.  
![\[Dialog box for creating a pre-signed URL with options for expiration, S3 bucket, object key, and action.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-s3-presigned-url.png)

# AWS 탐색기에서 DynamoDB 사용
<a name="dynamodb-tkv"></a>

Amazon DynamoDB는 속도가 빠르고 확장성이 뛰어나며 비용 효과적인 비 관계형 데이터베이스 서비스입니다. DynamoDB는 기존 데이터 스토리지의 확장성 제한을 없애면서도 낮은 지연 시간과 예측 가능한 성능을 유지합니다. Toolkit for Visual Studio는 개발 컨텍스트에서 DynamoDB를 사용하기 위한 기능을 제공합니다. DynamoDB에 대한 자세한 정보는 Amazon Web Services 웹 사이트의 [DynamoDB](https://aws.amazon.com/dynamodb/)를 참조하세요.

Toolkit for Visual Studio의 AWS 탐색기에는 활성 AWS 계정과 관련된 DynamoDB 테이블이 모두 표시됩니다.

![\[AWS Explorer window showing DynamoDB tables under the selected US East (Virginia) region.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/dynamodb-aws-explorer.png)


## DynamoDB 테이블 생성
<a name="tkv-dynamodb-create-table"></a>

Toolkit for Visual Studio를 사용하여 DynamoDB 테이블을 생성할 수 있습니다.

 **AWS 탐색기에서 테이블 생성** 

1. AWS 탐색기에서 **Amazon DynamoDB**의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 다음 **테이블 만들기**를 선택하세요.

1. **테이블 만들기** 마법사의 **테이블 이름**에 테이블 이름을 입력합니다.

1. **해시 키 이름** 필드에 기본 해시 키 속성을 입력하고 **해시 키 유형** 버튼에서 해시 키 유형을 선택하세요. DynamoDB는 해시 기본 키 속성을 사용하여 정렬되지 않은 해시 인덱스를 빌드하고, 범위 기본 키 속성을 사용하여 정렬된 범위 인덱스를 빌드합니다. 기본 해시 키 속성에 대한 자세한 정보는 *Amazon DynamoDB 개발자 안내서*의 [기본 키](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.PrimaryKey) 섹션을 참조하세요.

1. (선택 사항) **Enable Range Key(범위 키 활성화)**를 선택합니다. **Range Key Name(범위 키 이름)** 필드에 범위 키 속성을 입력한 다음 **Range Key Type(범위 키 유형)** 버튼에서 범위 키 유형을 선택합니다.

1. **Read Capacity(읽기 용량)** 필드에 읽기 용량 단위 수를 입력합니다. **Write Capacity(쓰기 용량)** 필드에 쓰기 용량 단위 수를 입력합니다. 최소 3개의 읽기 용량 단위와 5개의 쓰기 용량 단위를 지정해야 합니다. 읽기 및 쓰기 용량 단위에 대한 자세한 내용은 [DynamoDB에서 프로비저닝된 처리량](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ProvisionedThroughput.html)을 참조하십시오.

1. (선택 사항) **Enable Basic Alarm(기본 알림 활성화)**을 선택하여 테이블의 요청 비율이 너무 높으면 사용자에게 알림을 보내도록 합니다. 알림을 보내기 전까지 초과되어야 하는 60분당 프로비저닝된 처리율을 선택하십시오. **알림 받을 대상**에 이메일 주소를 입력합니다.

1. **확인**을 클릭하여 테이블을 만듭니다.

![\[Create Table dialog with fields for table name, key types, capacities, and alarm settings.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/dynamodb-create-table.png)


DynamoDB 테이블에 대한 자세한 정보는 [데이터 모델 개념 - 테이블, 항목 및 속성](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.TablesItemsAttributes)을 참조하세요.

## DynamoDB 테이블을 그리드로 보기
<a name="tkv-dynamodb-grid-view"></a>

AWS 탐색기에서 DynamoDB 테이블 중 그리드 보기 하나를 열려면 테이블에 해당하는 하위 노드를 두 번 클릭하세요. 그리드 보기에서 테이블에 저장된 항목, 속성 및 값을 볼 수 있습니다. 각 열은 테이블의 항목에 해당합니다. 테이블 열은 속성에 해당합니다. 테이블의 각 셀에는 항목에 대한 속성과 연결된 값이 있습니다.

속성에는 문자열 값 또는 숫자 값이 있을 수 있습니다. 일부 속성에는 문자열 또는 숫자의 *집합*으로 구성된 값이 있습니다. 집합 값은 대괄호로 묶여 있으며 쉼표로 구분된 목록으로 표시됩니다.

![\[AWS Explorer interface showing DynamoDB table with product catalog entries and attributes.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/dynamodb-product-catalog.png)


## 속성 및 값 편집/추가
<a name="tkv-dynamodb-editing"></a>

셀을 두 번 클릭하여 항목의 해당 속성에 대한 값을 편집할 수 있습니다. 집합 값 속성의 경우 집합에서 개별 값을 추가하거나 삭제할 수도 있습니다.

![\[Table showing brand names with associated colors and editing options.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/dynamodb-single-value-cell-edit.png)


일부 제한이 있기는 하지만 속성 값을 변경할 때 속성에 대한 값 형식도 변경할 수 있습니다. 예를 들어, 모든 숫자 값을 문자열 값으로 전환할 수 있습니다. 125와 같이 콘텐츠가 숫자인 문자열 값을 사용하는 경우 셀 편집기로 값 형식을 문자열에서 숫자로 변환할 수 있습니다. 또한 단일 값을 설정 값으로 변환할 수 있습니다. 그러나 일반적으로 집합 값을 단일 값으로 변환할 수 없습니다. 단, 집합 값의 집합에 실제로 요소가 하나만 있는 경우는 제외됩니다.

![\[Spreadsheet interface showing Brand, Color, 설명, Dimensions, and Gender columns with editable cells.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/dynamodb-set-value-attribute.png)


속성 값을 편집한 후 녹색 확인 표시를 선택하여 변경 사항을 확인하십시오. 변경 사항을 취소하려면 빨간색 X를 선택하십시오.

변경 사항을 확인한 후 속성 값이 빨간색으로 표시됩니다. 이는 속성이 업데이트되었지만 아직 새 값이 DynamoDB 데이터베이스에 작성되지 않았음을 나타냅니다. DynamoDB에 변경 사항을 다시 작성하려면 **변경 사항 커밋**을 선택하세요. 변경 사항을 취소하려면 **Scan Table(테이블 스캔)**을 선택하고 도구 키트가 스캔 전에 변경 사항을 커밋할지 여부를 묻는 경우 **아니요**를 선택합니다.

 *속성 추가* 

또한 그리드 보기에서 속성을 테이블에 추가할 수 있습니다. 새 속성을 추가하려면 **속성 추가**를 선택합니다.

![\[Three buttons labeled Scan Table, Commit Changes, and Add Attribute.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/dynamodb-add-attribute-button.png)


**속성 추가** 대화 상자에서 속성 이름을 입력한 다음 **확인**을 선택합니다.

![\[Add Attribute dialog box with input field for Attribute Name and explanatory text.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/dynamodb-add-attribute.png)


새 속성을 테이블의 일부로 만들려면 하나 이상의 항목에 값을 추가한 다음 **변경 사항 커밋** 버튼을 선택해야 합니다. 새 속성을 취소하려면 **변경 사항 커밋**을 선택하지 않고 테이블의 그리드 보기를 닫으면 됩니다.

![\[Database table view showing ProductCatalog with columns like ISBN, Price, and Genre.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/dynamodb-commit-new-attribute-value.png)


## DynamoDB 테이블 스캔
<a name="tkv-dynamodb-scan"></a>

![\[Three buttons: Scan Table, Commit Changes, and Add Attribute.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/dynamodb-scan.png)


툴킷의 DynamoDB 테이블에서 스캔을 수행할 수 있습니다. 스캔에서 기준 집합을 정의하면 스캔이 테이블에서 기준과 일치하는 모든 항목을 반환합니다. 스캔은 비용이 많이 드는 작업이므로 테이블에서 우선 순위가 높은 프로덕션 트래픽을 방해하지 않도록 주의해야 합니다. 스캔 작업 사용에 대한 자세한 정보는 *Amazon DynamoDB 개발자 안내서*를 참조하세요.

 **AWS 탐색기의 DynamoDB 테이블에서 스캔 수행** 

1. 그리드 보기에서 **Scan Conditions: Add(스캔 조건: 추가)** 버튼을 선택합니다.

1. Scan 절 편집기에서 일치시킬 속성, 속성 값 해석 방법(문자열, 숫자, 설정 값), 속성 값 일치 방법(예: Begins With 또는 Contains) 및 일치해야 할 리터럴 값을 선택합니다.

1. 필요한 경우 검색에 사용할 스캔 절을 추가합니다. 스캔에서는 모든 스캔 절의 기준과 일치하는 항목만 반환됩니다. 스캔은 문자열 값과 일치하는 경우 대/소문자 구분 비교를 수행합니다.

1. 그리드 보기 상단의 버튼 모음에서 **Scan Table(테이블 스캔)**을 선택합니다.

스캔 절을 제거하려면 각 절의 오른쪽에 흰색 줄이 있는 빨간색 버튼을 선택합니다.

![\[Product catalog table with scan conditions interface showing bicycle data entries.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/dynamodb-scan-results.png)


모든 항목이 포함된 테이블 보기로 돌아가려면 모든 스캔 절을 제거하고 **Scan Table(테이블 스캔)**을 다시 선택합니다.

 *스캔 결과 페이지 매김* 

보기 아래쪽에 버튼 3개가 있습니다.

![\[Three buttons at the bottom: rewind, fast forward, and a green play button.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-simpleDB-paginate-export.png)


처음 두 개의 파란색 버튼은 스캔 결과에 대한 페이지 매김을 제공합니다. 첫 번째 버튼은 결과를 1페이지씩 표시합니다. 두 번째 버튼은 결과를 10페이지씩 표시합니다. 이 컨텍스트에서 페이지는 1MB의 콘텐츠와 동일합니다.

 *스캔 결과를 CSV로 내보내기* 

세 번째 버튼은 현재 스캔의 결과를 CSV 파일로 내보냅니다.

# Visual Studio Team Explorer에서 AWS CodeCommit 사용
<a name="using-aws-codecommit-with-team-explorer"></a>

AWS Identity and Access Management(IAM) 사용자 계정을 사용하여 Git 보안 인증 정보를 생성하고, 해당 보안 인증 정보를 사용하여 Team Explorer 내에서 리포지토리를 생성하고 복제할 수 있습니다.

## AWS CodeCommit에 대한 자격 증명 유형
<a name="credential-types-for-acclong"></a>

대부분의 AWS Toolkit for Visual Studio 사용자는 액세스 키 및 비밀 키가 포함된 AWS 보안 인증 정보 프로필 설정에 대해 잘 파악하고 있습니다. 이러한 보안 인증 정보 프로필은 AWS 탐색기에서 Amazon S3 버킷을 나열하거나 Amazon EC2 인스턴스를 시작하는 등 Toolkit for Visual Studio에서 서비스 API에 대한 호출을 활성화하는 데 사용됩니다. Team Explorer와 AWS CodeCommit의 통합에서도 이러한 자격 증명 프로파일을 사용합니다. 그러나 Git 자체로 작업하려면 추가 자격 증명이 필요합니다. 특히 HTTPS 연결에 대해서는 Git 자격 증명이 필요합니다. *AWS CodeCommit 사용 설명서*의 [Git 보안 인증 정보를 사용하는 HTTPS 사용자 설정](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html)에서 이러한 보안 인증 정보(사용자 이름 및 암호)에 대한 내용을 읽을 수 있습니다.

IAM 사용자 계정에 대해서만 AWS CodeCommit용 Git 보안 인증 정보를 생성할 수 있습니다. 루트 계정에 대해서는 해당 자격 증명을 생성할 수 없습니다. 서비스에 대해 이러한 자격 증명 집합을 최대 2개까지 생성할 수 있습니다. 자격 증명 집합을 비활성 상태로 표시하는 경우에도 비활성 집합이 두 개의 제한에 가산됩니다. 언제든지 자격 증명을 삭제하고 다시 생성할 수 있습니다. Visual Studio 내에서 AWS CodeCommit을 사용할 경우 리포지토리를 생성하고 나열하는 등 서비스 자체에 대한 작업에 기존 AWS 보안 인증 정보가 사용됩니다. AWS CodeCommit에 호스팅된 실제 Git 리포지토리로 작업할 경우 Git 자격 증명을 사용합니다.

AWS CodeCommit에 대한 지원의 일환으로 Toolkit for Visual Studio는 이러한 Git 보안 인증 정보를 자동으로 생성 및 관리하며, 해당 보안 인증 정보를 AWS 보안 인증 정보 프로필에 연결합니다. Team Explorer 내에서 Git 작업을 수행하기 위해 현재 올바른 자격 증명 집합을 보유했는지에 대해 걱정할 필요가 없습니다. AWS 보안 인증 정보 프로필을 통해 Team Explorer에 연결하면 Git 원격 작업을 수행할 때마다 연결된 Git 보안 인증 정보가 자동으로 사용됩니다.

## 에 연결AWS CodeCommit
<a name="connecting-to-acclong"></a>

Visual Studio 2015 이상에서 Team Explorer 창을 열면 Manage Connections(연결 관리)의 Hosted Service Providers(호스팅된 서비스 공급업체)에 AWS CodeCommit 항목이 표시됩니다.

![\[연결 관리의 AWS CodeCommit 항목\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/codecommit_invite-300x106.png)


**가입**을 선택하면 브라우저 창에 Amazon Web Services 홈 페이지가 열립니다. **연결**을 선택할 때 발생하는 사항은 Amazon Web Services가 AWS 액세스 키 및 비밀 키가 포함된 보안 인증 정보 프로필을 찾고 활성화하여 사용자 대신 AWS에 대한 호출을 수행할 수 있는지 여부에 따라 달라집니다. Toolkit for Visual Studio가 로컬로 저장된 보안 인증 정보를 찾을 수 없는 경우 IDE에 표시되는 새 시작하기 페이지를 사용하여 보안 인증 정보 프로필을 설정할 수도 있습니다. 또는 AWS Tools for Windows PowerShell, AWS CLI를 사용하고, 사용할 Toolkit for Visual Studio에 사용 가능한 AWS 보안 인증 정보 프로필을 사용할 수도 있습니다.

**연결**을 선택하면 Toolkit for Visual Studio가 연결에서 사용할 보안 인증 정보 프로필 찾기 프로세스를 시작합니다. Toolkit for Visual Studio가 보안 인증 정보 프로필을 찾을 수 없는 경우 AWS 계정 계정에 대한 액세스 키 및 비밀 키를 입력하도록 사용자를 초대하는 대화 상자가 열립니다. 루트 자격 증명이 아닌 IAM 사용자 계정을 사용하는 것이 좋습니다. 또한 이전에 언급한 대로 최종적으로 필요한 Git 자격 증명은 IAM 사용자에 대해서만 생성될 수 있습니다. 액세스 키 및 보안 키가 제공되고 자격 증명 프로파일이 생성되면 Team Explorer와 AWS CodeCommit 간의 연결을 사용할 준비가 되었습니다.

Toolkit for Visual Studio가 둘 이상의 AWS 보안 인증 정보 프로필을 찾은 경우 Team Explorer 내에서 사용할 계정을 선택하라는 메시지가 나타납니다.

![\[AWS 보안 인증 정보 프로필 선택\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/codecommit_profileselect-300x173.png)


보안 인증 정보 프로필이 하나만 있는 경우 Toolkit for Visual Studio는 프로필 선택 대화 상자를 우회하고 즉시 연결됩니다.

자격 증명 프로파일을 통해 Team Explorer와 AWS CodeCommit 간의 연결이 설정되면 초대 대화 상자가 닫히고 연결 패널이 표시됩니다.

![\[AWS CodeCommit 연결 패널\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/codecommit_connectpanel-300x61.png)


로컬로 복제된 리포지토리가 없으므로 패널에는 수행할 수 있는 작업인 **Clone(복제)**, **생성** 및 **로그아웃**만 표시됩니다. 다른 공급자와 마찬가지로 Team Explorer의 AWS CodeCommit은 특정 시점에서 단일 AWS 보안 인증 정보 프로필에만 바인딩될 수 있습니다. 계정을 전환하려면 다른 연결을 사용하여 새 연결을 시작할 수 있도록 **로그아웃**을 사용하여 연결을 제거합니다.

이제 연결을 설정했으므로 **생성** 링크를 클릭하여 리포지토리를 생성할 수 있습니다.

## 리포지토리 생성
<a name="creating-a-repository"></a>

**생성** 링크를 클릭하면 **새 AWS CodeCommit 리포지토리 생성** 대화 상자가 열립니다.

![\[새 AWS CodeCommit 리포지토리 생성\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/codecommit_create-300x211.png)


AWS CodeCommit 리포지토리는 리전에 따라 구성되므로 **리전**에서 리포지토리를 호스팅할 리전을 선택할 수 있습니다. 목록에는 AWS CodeCommit이 지원되는 모든 리전이 있습니다. 새 리포지토리에 대해 이름(필수) 및 설명(선택 사항)을 제공합니다.

대화 상자의 기본 동작은 새 리포지토리의 폴더 위치에 리포지토리 이름으로 접미사를 지정하는 것입니다(이름을 입력하면 폴더 위치도 업데이트됨). 다른 폴더 이름을 사용하려면 리포지토리 이름 입력을 완료한 후 **Clone into(다음으로 복제)** 폴더 경로를 편집합니다.

리포지토리에 대한 초기 `.gitignore` 파일을 자동으로 생성하도록 선택할 수도 있습니다. AWS Toolkit for Visual Studio는 Visual Studio 파일 유형에 대해 내장된 기본값을 제공합니다. 파일이 없거나 리포지토리에 재사용할 사용자 지정 기존 파일을 사용하도록 선택할 수도 있습니다. 목록에서 **Use custom(사용자 지정 사용)**을 선택하고 사용할 사용자 지정 파일을 탐색합니다.

리포지토리 이름과 위치가 제공된 경우 **확인**을 클릭하여 리포지토리 생성을 시작할 준비가 되었습니다. Toolkit for Visual Studio에서는 서비스가 리포지토리를 생성한 다음 새 리포지토리를 로컬로 복제하고, 해당 리포지토리를 사용할 경우 .gitignore 파일에 대한 초기 커밋을 추가합니다. 이 시점에서 Git 원격 작업을 시작하므로 이제 Toolkit for Visual Studio는 이전에 설명한 Git 보안 인증 정보에 액세스해야 합니다.

## Git 자격 증명 설정
<a name="setting-up-git-credentials"></a>

지금까지는 AWS 액세스 키 및 비밀 키를 사용하여 서비스가 리포지토리를 생성하도록 요청했습니다. 이제 Git 자체로 작업하여 실제 복제 작업을 수행해야 합니다. Git는 AWS 액세스 키와 비밀 키를 이해하지 못합니다. 대신 원격 작업과 HTTPS 연결에 사용할 사용자 이름과 암호 자격 증명을 Git에 제공해야 합니다.

[Git 자격 증명 설정](#setting-up-git-credentials)에 언급된 대로 사용할 Git 자격 증명은 IAM 사용자와 연결되어야 합니다. 루트 자격 증명에 대해서는 해당 자격 증명을 생성할 수 없습니다. 항상 IAM 사용자 액세스 키 및 비밀 키를 포함하고 루트 키를 포함하지 않도록 AWS 보안 인증 정보 프로필을 설정해야 합니다. Toolkit for Visual Studio는 AWS CodeCommit에 대한 Git 보안 인증 정보를 설정하고 해당 보안 인증 정보을 이전에 Team Explorer에 연결하는 데 사용한 AWS 보안 인증 정보 프로필과 연결하려고 시도할 수 있습니다.

**새 AWS CodeCommit 리포지토리 생성** 대화 상자에서 **확인**을 선택하고 성공적으로 리포지토리를 생성하면, Toolkit for Visual Studio에서는 Team Explorer에서 연결된 AWS 보안 인증 정보 프로필을 확인하여 AWS CodeCommit에 대한 Git 보안 인증 정보가 있는지 및 프로필과 로컬로 연결되었는지를 확인합니다. 그러한 경우 Toolkit for Visual Studio는 새 리포지토리에 대해 복제 작업을 시작하도록 Team Explorer에 지시합니다. Git 보안 인증 정보를 로컬로 사용할 수 없는 경우 Toolkit for Visual Studio는 Team Explorer에서 연결에 사용된 계정 보안 인증 정보의 유형을 확인합니다. 자격 증명이 권장하는 대로 IAM 사용자를 위한 것일 경우 다음 메시지가 표시됩니다.

![\[Git 자격 증명 생성\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/codecommit_iamuser_createcreds-300x156.png)


자격 증명이 루트 자격 증명인 경우 다음 메시지가 대신 표시됩니다.

![\[AWS CodeCommit 보안 인증 정보와 IAM 사용자 생성\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/codecommit_rootuser-300x168.png)


두 경우 모두 Toolkit for Visual Studio가 필요한 Git 보안 인증 정보를 생성하는 작업을 수행합니다. 첫 번째 시나리오에서 생성에 필요한 사항은 IAM 사용자에 대한 Git 자격 증명 집합입니다. 루트 계정을 사용하고 있는 경우 Toolkit for Visual Studio는 먼저 IAM 사용자를 생성한 다음 해당 새 사용자에 대한 Git 보안 인증 정보 생성을 진행합니다. Toolkit for Visual Studio가 새 사용자를 생성해야 하는 경우 해당 새 사용자 계정에 AWS CodeCommit Power User 관리형 정책이 적용됩니다. 이 정책은 AWS CodeCommit에 대해서만 액세스를 허용하며 AWS CodeCommit을 통해 리포지토리 삭제를 제외한 모든 작업을 수행합니다.

자격 증명을 생성 중인 경우 한 번만 볼 수 있습니다. 따라서, Toolkit for Visual Studio에는 계속 진행하기 전에 새로 생성된 보안 인증 정보를 `.csv` 파일로 저장하라는 메시지가 표시됩니다.

![\[AWS CodeCommit 보안 인증 정보 저장\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/codecommit_savecreds-300x156.png)


이는 매우 권장되는 사항으로 안전한 위치에 저장해야 합니다\$1

Toolkit for Visual Studio가 보안 인증 정보를 자동으로 생성할 수 없는 경우가 있을 수 있습니다. 예를 들어, 이미 AWS CodeCommit에 대한 Git 보안 인증 정보 집합의 최대 수(2개)를 생성했거나 Toolkit for Visual Studio가 작업을 수행할 수 있는 프로그래밍 방식의 권한이 충분하지 않을 수 있습니다(IAM 사용자로 로그인한 경우). 이러한 경우 AWS Management Console에 로그인하여 보안 인증 정보를 관리하거나, 관리자로부터 보안 인증 정보를 받을 수 있습니다. 그런 다음 해당 정보를 Toolkit for Visual Studio에 표시되는 **AWS CodeCommit에 대한 Git 보안 인증 정보** 대화 상자에 입력할 수 있습니다.

![\[AWS CodeCommit에 대한 Git 보안 인증 정보\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/codecommit_manualentry-300x267.png)


이제 Git에 대한 자격 증명을 사용할 수 있으므로 새 리포지토리에 대한 복제 작업이 진행됩니다(Team Explorer 내의 작업에 대한 진행 표시 참조). 기본 `.gitignore` 파일을 적용하도록 선택한 경우 해당 파일이 '초기 커밋'이라는 설명과 함께 리포지토리에 커밋됩니다.

이걸로 끝이며 Team Explorer 내에서 자격 증명이 설정되고 리포지토리가 생성됩니다. 필수 보안 인증 정보가 마련되면 향후 새 리포지토리를 생성할 때 **새 AWS CodeCommit 리포지토리 생성** 대화 상자 자체만 표시됩니다.

## 리포지토리 복제
<a name="cloning-a-repository"></a>

기존 리포지토리를 복제하려면 Team Explorer의 AWS CodeCommit에 대한 연결 패널로 돌아갑니다. **복제** 링크를 클릭하여 **AWS CodeCommit 리포지토리 복제** 대화 상자를 연 다음 복제할 리포지토리와 디스크에서 리포지토리를 배치할 위치를 선택하세요.

![\[AWS CodeCommit 리포지토리 복제\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/codecommit_clone-300x279.png)


리전을 선택하면 Toolkit for Visual Studio에서는 해당 리전에서 사용할 수 있는 리포지토리를 검색하고 대화 상자의 가운데 목록 부분에 표시하도록 서비스에 쿼리합니다. 각 리포지토리의 이름과 설명(선택 사항)도 표시됩니다. 리포지토리 이름이나 마지막 수정 날짜를 기준으로 정렬하고 오름차순 또는 내림차순으로 정렬하도록 목록을 재정렬할 수 있습니다.

리포지토리를 선택하면 리포지토리를 복제할 위치를 선택할 수 있습니다. 이 기본값은 Team Explorer에 대해 다른 플러그인에서 사용된 동일한 리포지토리 위치이지만 다른 위치를 찾거나 입력할 수 있습니다. 기본적으로 리포지토리 이름이 선택한 경로에 접미사로 추가됩니다. 그러나 특정 경로를 원하는 경우 폴더를 선택한 다음 텍스트를 편집하면 됩니다. 상자에 있는 텍스트가 무엇이든지 간에 **확인**을 클릭하면 복제된 리포지토리가 있는 폴더가 됩니다.

리포지토리와 폴더 위치를 선택한 다음 **확인**을 클릭하여 복제 작업으로 진행합니다. 리포지토리 생성과 마찬가지로 Team Explorer에 보고된 복제 작업의 진행을 볼 수 있습니다.

## 리포지토리 작업
<a name="working-with-repositories"></a>

리포지토리를 복제하거나 생성할 때 연결에 대한 로컬 리포지토리가 Team Explorer의 연결 패널에 있는 작업 링크 아래에 나열됩니다. 이러한 항목은 콘텐츠를 찾아보기 위해 리포지토리에 편리하게 액세스할 수 있는 방법을 제공합니다. 리포지토리를 마우스 오른쪽 버튼으로 클릭하고 **Browse in Console(콘솔에서 찾아보기)**을 클릭하면 됩니다.

![\[콘솔에서 찾아보기\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/codecommit_browseinconsole-300x115.png)


**Update Git Credentials(Git 자격 증명 업데이트)**를 사용하여 자격 증명 프로파일과 연결된 저장된 Git 자격 증명을 업데이트할 수도 있습니다. 이는 자격 증명을 교체한 경우 유용합니다. 이 명령은 새 보안 인증 정보를 입력하거나 가져올 수 있는 **AWS CodeCommit에 대한 Git 보안 인증 정보** 대화 상자를 엽니다.

리포지토리에 대한 Git 작업은 예상대로 작동합니다. 로컬 커밋을 만들고 공유할 준비가 된 경우 Team Explorer에서 [Sync] 옵션을 사용할 수 있습니다. Git 보안 인증 정보가 이미 로컬로 저장되고 연결된 AWS 보안 인증 정보 프로필과 연결되었으므로 AWS CodeCommit 원격 작업에 대해 보안 인증 정보를 다시 제공하라는 메시지가 표시되지 않습니다.

# Visual Studio에서 CodeArtifact 사용
<a name="using-aws-codeartifact"></a>

AWS CodeArtifact는 완전관리형 아티팩트 리포지토리 서비스로서, 이를 통해 조직은 애플리케이션 개발에 사용되는 소프트웨어 패키지를 안전하게 저장하고 공유할 수 있습니다. CodeArtifact는 NuGet 및 .NET Core CLI 및 Visual Studio와 같은 인기 있는 빌드 도구 및 패키지 관리자와 함께 사용할 수 있습니다. 또한 [NuGet.org](https://www.nuget.org/)와 같은 외부 공개 리포지토리에서 패키지를 가져오도록 CodeArtifact를 구성할 수 있습니다.

CodeArtifact에서는 패키지가 리포지토리에 저장되고 도메인 내에 저장됩니다. AWS Toolkit for Visual Studio는 CodeArtifact 리포지토리를 사용하여 Visual Studio를 간단하게 구성할 수 있으므로 CodeArtifact에서 직접 그리고 NuGet.org 모두에서 Visual Studio의 패키지를 쉽게 사용할 수 있습니다.

## CodeArtifact 리포지토리를 NuGet 패키지 소스로 추가
<a name="add-repo-as-nuget-package-source"></a>

CodeArtifact의 패키지를 사용하려면 Visual Studio의 **NuGet 패키지 관리자**에서 리포지토리를 패키지 소스로 추가해야 합니다.

 **리포지토리를 패키지 소스로 추가** 

1. AWS 탐색기에서 **AWS CodeArtifact** 노드의 해당 리포지토리로 이동하세요.

1. 추가하려는 리포지토리의 컨텍스트 메뉴(마우스 오른쪽 버튼으로 클릭)를 연 다음, **NuGet 소스 엔드포인트 복사**를 선택하세요.

1. **도구 > 옵션** 메뉴의 **NuGet 패키지 관리자** 노드 아래에 있는 **패키지 소스**로 이동하세요.

1. **패키지 소스**에서 더하기 기호(**\$1**)를 선택하고 이름을 편집한 다음 이전에 복사한 NuGet 소스 엔드포인트 URL을 **소스** 필드에 붙여넣습니다.

1. 새로 추가한 패키지 소스 옆의 확인란을 선택하여 활성화하세요.
**참고**  
CodeArtifact에 **Nuget.org**에 대한 외부 연결을 추가하고 Visual Studio에서 **nuget.org** 패키지 소스를 비활성화하는 것이 좋습니다. 외부 연결을 사용하는 경우 **Nuget.org**에서 가져온 모든 종속성이 CodeArtifact에 저장됩니다. 어떤 이유로든 **NuGet.org**가 다운되더라도 필요한 패키지는 계속 사용할 수 있습니다. 외부 연결에 대한 자세한 정보는 *AWS CodeArtifact 사용 설명서*의 [외부 연결 추가](https://docs.aws.amazon.com/codeartifact/latest/ug/external-connection.html)를 참조하세요.

1. **확인**을 선택하여 메뉴를 닫습니다.

Visual Studio에서 CodeArtifact를 사용하는 방법에 대한 자세한 정보는 *AWS CodeArtifact 사용 설명서*의 [Visual Studio에서 CodeArtifact 사용](https://docs.aws.amazon.com/codeartifact/latest/ug/nuget-visual-studio.html) 참조하세요.

# AWS 탐색기에서 Amazon RDS 사용
<a name="rds-tkv"></a>

Amazon Relational Database Service(RDS)를 사용하면 클라우드에서 SQL 관계형 데이터베이스 시스템을 프로비저닝하고 관리할 수 있습니다. Amazon RDS는 다음 세 가지 유형의 데이터베이스 시스템을 지원합니다.
+ MySQL Community Edition
+ Oracle Database Enterprise Edition
+ Microsoft SQL Server(Express, Standard 또는 Web Edition)

자세한 내용은 [Amazon RDS 사용 설명서](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/)를 참조하세요.

여기에 설명된 많은 기능은 Amazon RDS용 [AWS 관리 콘솔](https://console.aws.amazon.com/rds/home)을 통해서도 사용할 수 있습니다.

**Topics**
+ [

# Amazon RDS 데이터베이스 인스턴스 시작
](rds-launch-instance.md)
+ [

# RDS 인스턴스에서 Microsoft SQL 서버 데이터베이스 생성
](rds-launch-instance-sql.md)
+ [

# Amazon RDS 보안 그룹
](rds-security-groups.md)

# Amazon RDS 데이터베이스 인스턴스 시작
<a name="rds-launch-instance"></a>

AWS 탐색기를 사용하면 Amazon RDS가 지원하는 모든 데이터베이스 엔진의 인스턴스를 시작할 수 있습니다. 다음 연습은 Microsoft SQL Server Standard Edition의 인스턴스를 시작하기 위한 사용자 환경을 보여줍니다. 그러나 사용자 환경은 지원되는 모든 엔진에 대해 비슷합니다.

 **Amazon RDS 인스턴스를 시작하려면** 

1. AWS 탐색기에서 **Amazon RDS** 노드에 대한 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 **DB 인스턴스 시작**을 선택하세요.  
![\[AWS Explorer window showing Amazon RDS with context menu option to Launch DB Instance.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/rds-db-launch-menu.png)

   또는 **DB 인스턴스** 탭에서 **DB 인스턴스 실행**을 선택합니다.  
![\[Database instances list showing multiple DB instances with their status and details.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/rds-db-launch-dashboard.png)

1. **DB Engine Selection(DB 엔진 선택)** 대화 상자에서 시작할 데이터베이스 엔진 유형을 선택합니다. 이 연습의 경우 Microsoft SQL Server Standard Edition(sqlserver-se)을 선택한 다음 **다음**을 선택합니다.  
![\[DB Engine Selection dialog showing options for Oracle and Microsoft SQL Server databases.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/rds-db-instance-db-engine.png)

1. **DB Engine Instance Options(DB 엔진 인스턴스 옵션)** 대화 상자에서 구성 옵션을 선택합니다.

   **DB Engine Instance Options and Class(DB 엔진 인스턴스 옵션 및 클래스)** 섹션에서 다음 설정을 지정할 수 있습니다.

    *라이선스 모델*   
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/rds-launch-instance.html)

   라이선스 모델은 데이터베이스 엔진 유형에 따라 달라집니다. 엔진 유형 라이선스 Microsoft SQL Server 라이선스 포함 MySql general-public-license Oracle 기존 보유 라이선스 사용  
** *DB 인스턴스 버전* **  
사용할 데이터베이스 엔진의 버전을 선택합니다. 버전이 하나만 지원되는 경우 해당 버전을 선택합니다.  
** *DB 인스턴스 클래스* **  
데이터베이스 엔진에 대한 인스턴스 클래스를 선택합니다. 인스턴스 클래스에 대한 요금은 다양합니다. 자세한 내용은 [Amazon RDS 요금](https://aws.amazon.com/rds/pricing)을 참조하십시오.  
** *다중 AZ 배포 수행* **  
이 옵션을 선택하면 향상된 데이터 내구성과 가용성을 위한 다중 AZ 배포를 생성할 수 있습니다. Amazon RDS는 예정된 중단이나 예상치 못한 중단이 발생하는 경우 자동 장애 조치를 위해 다른 가용 영역에 데이터베이스의 예비 복사본을 프로비저닝 및 유지 관리합니다. 다중 AZ 배포 요금에 대한 자세한 내용은 [Amazon RDS](https://aws.amazon.com/rds) 세부 정보 페이지의 요금 섹션을 참조하십시오. 이 옵션은 Microsoft SQL Server에 대해 지원되지 않습니다.  
** *마이너 버전 자동 업그레이드* **  
AWS가 RDS 인스턴스에 대해 마이너 버전 업데이트를 자동으로 수행하도록 하려면 이 옵션을 선택하세요.

**RDS Database Instance(RDS 데이터베이스 인스턴스)** 섹션에서 다음 설정을 지정할 수 있습니다.

** *할당된 스토리지* **    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/rds-launch-instance.html)
허용되는 최소 및 최대 스토리지는 데이터베이스 엔진 유형에 따라 달라집니다. 엔진 최소(GB) 최대(GB) MySQL 5 1024 Oracle Enterprise Edition 10 1024 Microsoft SQL Server Express Edition 30 1024 Microsoft SQL Server Standard Edition 250 1024 Microsoft SQL Server Web Edition 30 1024

** *DB Instance Identifier* **  
데이터베이스 인스턴스에 대한 이름을 지정합니다. 이 이름은 대/소문자를 구분하지 않습니다. AWS 탐색기에서는 소문자 형식으로 표시됩니다.

** *마스터 사용자 이름(Master User Name* **  
데이터베이스 인스턴스의 관리자에 대한 이름을 입력합니다.

** *마스터 사용자 암호* **  
데이터베이스 인스턴스의 관리자에 대한 암호를 입력합니다.

** *Confirm Password* **  
암호를 다시 입력하여 정확한지 확인합니다.

![\[DB Engine Instance Options window for configuring SQL Server database settings in AWS RDS.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/rds-db-instance-engine-options.png)


1. **추가 옵션** 대화 상자에서 다음 설정을 지정할 수 있습니다.  
** *데이터베이스 포트* **  
인스턴스가 네트워크에서 통신하기 위해 사용할 TCP 포트입니다. 컴퓨터가 방화벽을 통해 인터넷에 액세스하는 경우 이 값을 방화벽이 트래픽을 허용하는 포트로 설정하십시오.  
** *가용 영역* **  
리전의 특정 가용 영역에서 인스턴스가 시작되도록 하려면 이 옵션을 사용합니다. 지정한 데이터베이스 인스턴스는 지정된 리전의 일부 가용 영역에서 사용할 수 없을 수도 있습니다.  
** *RDS 보안 그룹* **  
인스턴스와 연결할 RDS 보안 그룹을 선택합니다. RDS 보안 그룹은 IP 주소, Amazon EC2 인스턴스 및 인스턴스에 대한 액세스가 허용된 AWS 계정을 지정합니다. RDS 보안 그룹에 대한 자세한 내용은 [Amazon RDS 보안 그룹](rds-security-groups.md#tkv-amazon-rds-security-groups)을 참조하십시오. Toolkit for Visual Studio는 현재 IP 주소를 확인하고, 이 주소를 인스턴스와 연결된 보안 그룹에 추가할 수 있는 옵션을 제공합니다. 그러나 컴퓨터가 방화벽을 통해 인터넷에 액세스하는 경우 컴퓨터에 대해 도구 키트에서 생성한 IP 주소는 정확하지 않을 수 있습니다. 사용할 IP 주소를 결정하려면 시스템 관리자에 문의하십시오.  
** *DB 파라미터 그룹* **  
(선택 사항) 이 드롭다운 목록에서 인스턴스와 연결할 DB 파라미터 그룹을 선택합니다. DB 파라미터 그룹을 사용하면 인스턴스에 대한 기본 구성을 변경할 수 있습니다. 자세한 내용은 [Amazon 관계형 데이터베이스 서비스 사용 설명서](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) 및 [본 문서](https://aws.amazon.com/articles/2935)를 참조하십시오.

   이 대화 상자에서 설정을 지정했으면 **다음**을 선택합니다.  
![\[Launch DB Instance dialog showing database port, availability zone, and security group options.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/rds-db-instance-add-options.png)

1. **백업 및 유지 관리** 대화 상자에서는 Amazon RDS가 인스턴스를 백업해야 하는지 여부 및 백업해야 할 경우 백업을 보존해야 할 기간을 지정할 수 있습니다. 또한 백업이 수행되는 기간도 지정할 수 있습니다.

   이 대화 상자를 사용하여 Amazon RDS가 인스턴스에 대해 시스템 유지 관리를 수행할지 여부를 지정할 수도 있습니다. 유지 관리에는 루틴 패치와 마이너 버전 업그레이드가 포함됩니다.

   시스템 유지 관리를 위해 지정한 기간은 백업을 위해 지정한 기간과 겹칠 수 없습니다.

   **다음**을 선택합니다.  
![\[Backup and maintenance options interface for DB instance with automatic backup settings.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/rds-db-instance-back-up-maintenance.png)

1. 마법사의 마지막 대화 상자에서는 인스턴스에 대한 설정을 검토할 수 있습니다. 설정을 수정해야 할 경우 **뒤로** 버튼을 사용합니다. 모든 설정이 올바르면 **시작**을 선택합니다.

# RDS 인스턴스에서 Microsoft SQL 서버 데이터베이스 생성
<a name="rds-launch-instance-sql"></a>

Microsoft SQL Server는 Amazon RDS 인스턴스를 시작한 후 RDS 인스턴스에서 SQL Server 데이터베이스를 생성해야 하는 방식으로 설계되었습니다.

Amazon RDS 인스턴스 생성 방법에 대한 자세한 정보는 [Amazon RDS 데이터베이스 인스턴스 시작](rds-launch-instance.md#tkv-launch-rds-instance)을 참조하세요.

 **Microsoft SQL Server 데이터베이스를 생성하려면** 

1. AWS 탐색기에서 Microsoft SQL Server에 대한 RDS 인스턴스에 해당하는 노드에 대해 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 **SQL Server 데이터베이스 생성**을 선택하세요.  
![\[AWS Explorer context menu for RDS instance showing options to create or modify database.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/rds-ms-sql-create-db.png)

1. **Create SQL Server Database(SQL Server 데이터베이스 생성)** 대화 상자에서 RDS 인스턴스를 생성할 때 지정한 암호를 입력하고, Microsoft SQL Server 데이터베이스에 대한 이름을 입력한 다음 **확인**을 선택합니다.  
![\[Dialog box for creating SQL Server database with fields for DB instance, username, password, and database name.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/rds-spec-ms-sql-db.png)

1. Toolkit for Visual Studio가 Microsoft SQL Server 데이터베이스를 생성하고 해당 데이터베이스를 Visual Studio 서버 탐색기에 추가하세요.  
![\[Server Explorer window showing database structure with tables, views, and other components.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/rds-sql-svr-explorer.png)

# Amazon RDS 보안 그룹
<a name="rds-security-groups"></a>

Amazon RDS 보안 그룹을 사용하면 Amazon RDS 인스턴스에 대한 네트워크 액세스를 관리할 수 있습니다. 보안 그룹과 함께 CIDR 표기법을 사용하여 IP 주소 모음을 지정하면 이 주소에서 시작하는 네트워크 트래픽만 Amazon RDS 인스턴스에서 인식합니다.

기능은 비슷하지만 Amazon RDS 보안 그룹은 Amazon EC2 보안 그룹과 다릅니다. RDS 보안 그룹에는 EC2 보안 그룹을 추가할 수 있습니다. 그러면 EC2 보안 그룹의 멤버인 EC2 인스턴스가 RDS 보안 그룹의 멤버인 RDS 인스턴스에 액세스할 수 있습니다.

Amazon RDS 보안 그룹에 대한 자세한 정보는 [RDS 보안 그룹](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html)을 참조하세요. Amazon EC2 보안 그룹에 대한 자세한 정보는 [EC2 사용 설명서](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html)를 참조하세요.

## Amazon RDS 보안 그룹 생성
<a name="tkv-create-an-amazon-rds-security-group"></a>

Toolkit for Visual Studio를 사용하여 RDS 보안 그룹을 생성할 수 있습니다. AWS Toolkit을 사용하여 RDS 인스턴스를 시작하면 마법사에서 인스턴스와 함께 사용할 RDS 보안 그룹을 지정할 수 있습니다. 마법사를 시작하기 전에 다음 절차를 사용하여 보안 그룹을 생성할 수 있습니다.

**Amazon RDS 보안 그룹을 생성하려면**

1. AWS 탐색기에서 **Amazon RDS** 노드를 확장하고 **DB 보안 그룹** 하위 노드의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 다음 **생성**을 선택하세요.  
![\[AWS Explorer window showing Amazon RDS expanded with DB Security Groups context menu options.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/rds-sg-create-menu.png)

   또는 **보안 그룹** 탭에서 **보안 그룹 생성**을 선택합니다. 이 탭이 표시되지 않으면 **DB 보안 그룹** 하위 노드의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 다음 **보기**를 선택합니다.  
![\[Database security groups interface showing options to create, delete, and refresh groups.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/rds-sg-create-dashboard.png)

1. **보안 그룹 생성** 대화 상자에서 보안 그룹의 이름과 설명을 입력한 다음 **확인**을 선택합니다.  
![\[Dialog box for creating a security group with fields for name and description.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/rds-sg-create.png)

## Amazon RDS 보안 그룹에 대한 액세스 권한 설정
<a name="tkv-set-access-permissions-for-rds-security-group"></a>

기본적으로 새 Amazon RDS 보안 그룹은 네트워크 액세스를 제공하지 않습니다. 보안 그룹을 사용하는 Amazon RDS 인스턴스 액세스를 활성화하려면 다음 절차를 사용하여 액세스 권한을 설정하세요.

**Amazon RDS 보안 그룹에 대한 액세스를 설정하려면**

1. **보안 그룹** 탭의 목록 보기에서 보안 그룹을 선택합니다. 보안 그룹이 목록에 나타나지 않으면 **새로 고침**을 선택합니다. 그래도 목록에 보안 그룹이 나타나지 않으면 올바른 AWS 리전의 목록을 보고 있는지 확인하세요. AWS Toolkit의 **보안 그룹** 탭은 리전별로 있습니다.

   AWS 탐색기에 **보안 그룹** 탭이 나타나지 않으면 **DB 보안 그룹** 하위 노드의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 다음 **보기**를 선택하세요.

1. [**Add permission**]을 선택합니다.  
![\[Security groups interface showing default and RDS groups with options to add or delete permissions.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/rds-sg-add-permission.png)

    **보안 그룹** 탭에 있는 **권한 추가** 버튼

1. **권한 추가** 대화 상자에서 CIDR 표기법을 사용하여 RDS 인스턴스에 액세스할 수 있는 IP 주소를 지정하거나 RDS 인스턴스에 액세스할 수 있는 EC2 보안 그룹을 지정할 수 있습니다. **EC2 보안 그룹**을 선택하면 액세스 권한이 있는 AWS 계정 계정과 연결된 모든 EC2 인스턴스에 대한 액세스를 지정하거나 드롭다운 목록에서 EC2 보안 그룹을 선택할 수 있습니다.  
![\[Add Permission dialog with options for CIDR/IP or EC2 Security Group access to RDS instance.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/rds-sg-cidr-ec2.png)

   AWS Toolkit이 IP 주소를 결정하고 적합한 CIDR 사양으로 대화 상자를 자동으로 채웁니다. 그러나 컴퓨터가 방화벽을 통해 인터넷에 액세스하는 경우 도구 키트로 결정된 CIDR이 정확하지 않을 수 있습니다.

# AWS 탐색기에서 Amazon SimpleDB 사용
<a name="tkv-simpleDB"></a>

AWS 탐색기에는 활성화된 AWS 계정에 연결된 모든 Amazon SimpleDB 도메인이 표시됩니다. AWS 탐색기에서 Amazon SimpleDB 도메인을 생성하거나 삭제할 수 있습니다.

![\[AWS Explorer showing Amazon SimpleDB domains with options to create, refresh, or delete.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-simpleDB-explorer.png)


 *쿼리 실행 및 결과 편집* 

AWS 탐색기에서 Amazon SimpleDB 도메인의 항목, 속성 및 값을 볼 수 있는 도메인의 표 보기도 볼 수 있습니다. 도메인 항목의 하위 세트만 표시되도록 쿼리를 실행할 수 있습니다. 셀을 두 번 클릭하여 항목의 해당 속성에 대한 값을 편집할 수 있습니다. 도메인에 새로운 속성을 추가할 수도 있습니다.

여기에 표시된 도메인은 AWS SDK for .NET과 함께 포함된 Amazon SimpleDB 샘플에서 가져온 것입니다.

![\[Database table showing sample items with attributes like name, category, color, and size.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-simpleDB-grid-view.png)


쿼리를 실행하려면 표 보기 상단의 텍스트 상자에서 쿼리를 편집한 다음 **실행**을 선택합니다. 쿼리와 일치하는 항목만 표시하도록 보기가 필터링됩니다.

![\[SQL query execution interface with filtered results showing item details.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-simpleDB-query.png)


속성과 연결된 값을 편집하려면 해당 셀을 두 번 클릭하여 값을 편집한 다음 **변경 사항 커밋**을 선택합니다.

 *속성 추가* 

속성을 추가하려면 보기 상단에서 **속성 추가**를 선택합니다.

![\[Dialog box for adding an attribute named "Discount" with a note about data commitment.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-simpleDB-new-attr-dlg.png)


속성을 도메인 일부로 만들려면 하나 이상의 항목에 값을 추가한 다음 **변경 사항 커밋**을 선택합니다.

![\[Database query result showing one item with "Siamese" color and "Cathair Sweater" name.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-simpleDB-new-attr-commit.png)


 *쿼리 결과 페이지 매김* 

보기 하단에 버튼 3개가 있습니다.

![\[Three buttons showing rewind, fast forward, and refresh icons.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-simpleDB-paginate-export.png)


처음 2개의 버튼은 쿼리 결과 페이지를 매깁니다. 결과의 추가 페이지 하나를 표시하려면 첫 번째 버튼을 선택하고 결과의 추가 페이지 결과 10개를 표시하려면 두 번째 버튼을 선택하십시오. 이 컨텍스트에서 한 페이지는 열 100개 또는 LIMIT 값으로 지정한 결과의 수(쿼리에 포함된 경우)와 같습니다.

 *CSV로 내보내기* 

마지막 버튼은 현재 결과를 CSV 파일로 내보냅니다.

# AWS 탐색기에서 Amazon SQS 사용
<a name="tkv-sqs"></a>

Amazon Simple Queue Service(Amazon SQS)는 소프트웨어 애플리케이션에서 서로 다른 실행 프로세스 간에 메시지를 전달할 수 있는 유연한 대기열 서비스입니다. Amazon SQS 대기열은 AWS 인프라에 위치하지만 메시지를 전달하는 프로세스는 로컬, Amazon EC2 인스턴스 또는 이 둘의 조합에 위치할 수 있습니다. Amazon SQS는 여러 컴퓨터에 대한 작업 분배를 조정하는 데 이상적입니다.

Toolkit for Visual Studio를 사용하면 활성 계정과 연결된 Amazon SQS 대기열을 보고, 대기열을 생성하거나 삭제하며, 대기열을 통해 메시지를 보낼 수 있습니다. (활성 계정은 AWS 탐색기에서 선택한 계정입니다.)

Amazon SQS에 대한 자세한 정보는 AWS 문서에서 [SQS 소개](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/IntroductionArticle.html)를 참조하세요.

## 대기열 만들기
<a name="tkv-sqs-create-queue"></a>

AWS 탐색기에서 Amazon SQS 대기열을 생성할 수 있습니다. 대기열의 ARN 및 URL은 활성 계정의 계정 번호와 생성 시 지정한 대기열 이름을 기반으로 합니다.

 *대기열 생성* 

1. AWS 탐색기에서 **Amazon SQS** 노드의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 다음 **대기열 생성**을 선택하세요.

1. **대기열 생성** 대화 상자에서 대기열 이름, 기본 제한 시간 초과 및 기본 전송 지연 시간을 지정합니다. 기본 제한 시간 초과 및 기본 전송 지연 시간은 초 단위로 지정됩니다. 기본 제한 시간 초과는 지정된 프로세스가 메시지를 받은 후 잠재적인 수신 프로세스가 메시지를 볼 수 없게 되는 시간입니다. 기본 전송 지연 시간은 메시지가 전송된 순간부터 잠재적인 수신 프로세스에 처음 표시될 때까지의 시간입니다.

1. **확인**을 선택합니다. 새 대기열이 **Amazon SQS** 노드에 하위 노드로 나타납니다.

## 대기열 삭제
<a name="tkv-sqs-delete-queue"></a>

AWS 탐색기에서 기존 대기열을 삭제할 수 있습니다. 대기열을 삭제하면 대기열과 연결된 모든 메시지를 더 이상 사용할 수 없습니다.

 *대기열 삭제* 

1. AWS 탐색기에서 삭제하려는 대기열의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 다음 **삭제**를 선택하세요.

## 대기열 속성 관리
<a name="tkv-sqs-manage-queue"></a>

AWS 탐색기에 표시되는 모든 대기열의 속성을 보고 편집할 수 있습니다. 또한 이 속성 보기에서 대기열로 메시지를 전송할 수 있습니다.

 *대기열 속성을 관리하려면* 
+ AWS 탐색기에서 관리하려는 속성이 있는 대기열의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 다음 **대기열 보기**를 선택하세요.

  대기열 속성 보기에서 제한 시간 초과, 최대 메시지 크기, 메시지 보존 기간 및 기본 전송 지연 시간을 편집할 수 있습니다. 메시지를 전송할 때 기본 전송 지연 시간을 재정의할 수 있습니다. 다음 스크린샷에서 숨겨진 텍스트는 대기열 ARN 및 URL의 계정 번호 구성 요소입니다.

![\[AWS SQS queue details showing configuration settings and message sampling table.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-sqs-queue-properties.png)


## 대기열로 메시지 전송
<a name="tkv-sqs-message-send"></a>

대기열 속성 보기에서 대기열로 메시지를 전송할 수 있습니다.

 *메시지 전송* 

1. 대기열 속성 보기의 상단에서 **전송** 버튼을 선택합니다.

1. 메시지를 입력합니다. (선택 사항) 대기열의 기본 전송 지연 시간을 대신할 전송 지연 시간을 입력합니다. 다음 예에서는 지연 시간을 240초로 재정의했습니다. **확인**을 선택합니다.  
![\[Send Message dialog box with message body input and delivery delay option.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-sqs-send-message.png)

1. 약 240초(4분)을 기다립니다. 메시지가 대기열 속성 보기의 **Message Sampling(메시지 샘플링)** 섹션에 나타납니다.  
![\[Queue properties view showing message details, including timestamp and sampling information.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/tkv-sqs-message-sent.png)

   대기열 속성 보기의 타임스탬프는 **전송** 버튼을 선택한 시간입니다. 지연 시간에는 포함되지 않습니다. 따라서 메시지가 대기열에 나타나고 수신자가 사용할 수 있는 시간이 이 타임스탬프보다 늦을 수 있습니다. 타임스탬프는 컴퓨터의 현지 시간으로 표시됩니다.

# 자격 증명 및 액세스 관리
<a name="tkv-iam"></a>

AWS Identity and Access Management (IAM)를 사용하면 AWS 계정 및 리소스에 대한 액세스를 보다 안전하게 관리할 수 있습니다. IAM을 사용하면 기본(*루트*)에서 여러 사용자를 생성할 수 있습니다 AWS 계정. 이러한 사용자는 자체 보안 인증 정보(암호, 액세스 키 ID, 비밀 키)를 가질 수 있지만 모든 IAM 사용자는 하나의 계정 번호를 공유합니다.

사용자에게 IAM 정책을 연결하여 각 IAM 사용자의 리소스 액세스 수준을 관리할 수 있습니다. 예를 들어, 계정에서 Amazon S3 서비스 및 관련 리소스에 대해 사용자 액세스를 제공한 IAM 사용자와 다른 서비스 또는 리소스에 대해 액세스를 제공하지 않은 IAM 사용자에게 정책을 연결할 수 있습니다.

더욱 효율적인 액세스 관리를 위해 사용자를 모아 IAM 그룹을 생성할 수 있습니다. 그룹에 정책을 연결하면 그룹 멤버인 모든 사용자에게 영향을 줍니다.

IAM은 사용자 및 그룹 수준에서 권한 관리 외에 IAM 역할의 개념도 제공합니다. 사용자 및 그룹과 같이 IAM 역할에 정책을 연결할 수 있습니다. 그런 다음 IAM 역할을 Amazon EC2 인스턴스와 연결할 수 있습니다. EC2 인스턴스에서 실행되는 애플리케이션은 IAM 역할에서 제공하는 권한을 AWS 사용하여에 액세스할 수 있습니다. 도구 키트로 IAM 역할 사용에 대한 자세한 내용은 [IAM 역할 생성](#create-an-iam-role-tkv)을 참조하십시오. IAM에 대한 자세한 정보는 [IAM 사용 설명서](https://docs.aws.amazon.com/IAM/latest/UserGuide/Welcome.html)를 참조하세요.

## IAM 사용자 생성 및 구성
<a name="tkv-create-an-iam-user"></a>

IAM 사용자를 사용하면 다른 사용자에게에 대한 액세스 권한을 부여할 수 있습니다 AWS 계정. IAM 사용자에게 정책을 연결할 수 있으므로 IAM 사용자가 액세스할 수 있는 리소스와 해당 리소스에서 수행할 수 있는 작업을 세부적으로 제한할 수 있습니다.

가장 좋은 방법은에 액세스하는 모든 사용자가 계정 소유자를 포함하여 IAM 사용자로 액세스 AWS 계정 해야 한다는 것입니다. 이렇게 하면 IAM 사용자 중 한 명의 보안 인증 정보가 손상되는 경우 해당 보안 인증 정보만 비활성화할 수 있습니다. 계정에 대한 루트 자격 증명을 비활성화하거나 변경할 필요가 없습니다.

Toolkit for Visual Studio에서 사용자에게 IAM 정책을 연결하거나 그룹에 사용자를 할당하여 IAM 사용자에게 권한을 할당할 수 있습니다. 그룹에 할당된 IAM 사용자는 그룹에 연결된 정책에서 권한을 가져옵니다. 자세한 내용은 [IAM 그룹 생성](#create-an-iam-group-tkv) 및 [IAM 그룹에 IAM 사용자 추가](#add-an-iam-user-to-an-iam-group-tkv)를 참조하십시오.

Toolkit for Visual Studio에서 IAM 사용자에 대한 AWS 자격 증명(액세스 키 ID 및 보안 키)을 생성할 수도 있습니다. 자세한 내용은 [IAM 사용자의 자격 증명 생성](#generate-credentials-for-an-iam-user-tkv)을 참조하십시오.

![\[Dialog box for generating AWS credentials with options to create access key and download.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/inline-refresh-button.png)


Toolkit for Visual Studio는 AWS Explorer를 통해 서비스에 액세스하기 위한 IAM 사용자 자격 증명 지정을 지원합니다. IAM 사용자는 일반적으로 모든 Amazon Web Services에 대한 전체 액세스 권한이 없으므로 AWS Explorer의 일부 기능을 사용하지 못할 수 있습니다. 활성 계정이 IAM 사용자인 동안 AWS Explorer를 사용하여 리소스를 변경한 다음 활성 계정을 루트 계정으로 전환하면 AWS Explorer에서 보기를 새로 고칠 때까지 변경 사항이 표시되지 않을 수 있습니다. 보기를 새로 고치려면 새로 고침 () 버튼을 선택합니다.

에서 IAM 사용자를 구성하는 방법에 대한 자세한 내용은 IAM 사용 설명서의 사용자 및 그룹 작업을 AWS Management Console참조하세요. [https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_WorkingWithGroupsAndUsers.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_WorkingWithGroupsAndUsers.html) 

 *IAM 사용자를 생성하려면* 

1.  AWS 탐색기에서 **AWS Identity and Access Management** 노드를 확장하고 **사용자의** 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 다음 **사용자 생성을** 선택합니다.

1. **사용자 생성** 대화 상자에서 IAM 사용자에 대한 이름을 입력하고 **확인**을 선택하세요. 이는 IAM [표시 이름](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)입니다. IAM 사용자 이름 제한에 대한 정보는 [IAM 사용 설명서](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)를 참조하세요.  
![\[Create User dialog box with Name field and OK/Cancel buttons.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/iam-user-create-dlg.png)

새 사용자는 **AWS Identity and Access Management** 노드 아래의 **사용자** 아래에 하위 노드로 표시됩니다.

정책을 생성하고 사용자에게 연결하는 방법에 대한 자세한 내용은 [IAM 정책 생성](#tkv-create-an-iam-policy)을 참조하십시오.

## IAM 그룹 생성
<a name="create-an-iam-group-tkv"></a>

그룹은 사용자 모음에 IAM 정책을 적용하는 방법을 제공합니다. IAM 사용자 및 그룹을 관리하는 방법에 대한 정보는 IAM 사용 설명서에서 [사용자 및 그룹 작업](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_WorkingWithGroupsAndUsers.html) 섹션을 참조하세요.

 *IAM 그룹을 생성하려면* 

1.  AWS 탐색기의 **Identity and Access Management**에서 **그룹의** 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭)를 열고 **그룹 생성을** 선택합니다.

1. **그룹 생성** 대화 상자에서 IAM 그룹에 대한 이름을 입력하고 **확인**을 선택하세요.  
![\[Dialog box for creating a group with a name field and OK and Cancel buttons.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/iam-group-create-dlg.png)

새 IAM 그룹은 **Identity and Access Management**의 **그룹** 하위 노드 아래에 표시됩니다.

정책 생성 및 IAM 그룹 연결에 대한 정보는 [IAM 정책 생성](#tkv-create-an-iam-policy)을 참조하세요.

## IAM 그룹에 IAM 사용자 추가
<a name="add-an-iam-user-to-an-iam-group-tkv"></a>

IAM 그룹의 멤버인 IAM 사용자는 해당 그룹에 연결된 정책에서 액세스 권한을 가져옵니다. IAM 그룹의 목적은 IAM 사용자를 모아서 권한을 쉽게 관리하는 것입니다.

IAM 그룹에 연결된 정책이 해당 IAM 그룹의 멤버인 IAM 사용자에게 연결된 정책과 상호 작용하는 방법에 대한 정보는 [IAM 사용 설명서에서 IAM 정책 관리](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html) 섹션을 참조하세요.

 AWS 탐색기에서는 그룹 하위 노드가 아닌 사용자 하위 노드에서 IAM **사용자를** IAM **그룹에** 추가합니다.

 *IAM 그룹에 IAM 사용자를 추가하려면* 

1.  AWS 탐색기의 **Identity and Access Management**에서 **사용자의** 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 **편집**을 선택합니다.  
![\[User interface for managing IAM groups, showing available and assigned groups for myIAMUser.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/iam-group-assign.png)

1. **그룹** 탭의 왼쪽 창에는 사용 가능한 IAM 그룹이 표시됩니다. 오른쪽 창에는 지정한 IAM 사용자가 이미 멤버인 그룹이 표시됩니다.

   왼쪽 창에서 그룹에 IAM 사용자를 추가하려면 IAM 그룹을 선택한 다음 **>** 버튼을 선택하세요.

   오른쪽 창의 그룹에서 IAM 사용자를 제거하려면 IAM 그룹을 선택한 다음 **<** 버튼을 선택하세요.

   모든 IAM 그룹에 IAM 사용자를 추가하려면 **>>** 버튼을 선택하세요. 또한 모든 그룹에서 IAM 사용자를 제거하려면 **<<** 버튼을 선택하세요.

   여러 그룹을 선택하려면 순서대로 선택합니다. Ctrl 키를 계속 누를 필요가 없습니다. 선택한 그룹을 선택 해제하려면 다시 한 번 선택하면 됩니다.

1. IAM 그룹에 IAM 사용자 할당을 마쳤으면 **저장**을 선택하세요.

## IAM 사용자의 보안 인증 정보 생성
<a name="generate-credentials-for-an-iam-user-tkv"></a>

Toolkit for Visual Studio를 사용하면 AWS로 호출하는 API를 만드는 데 사용되는 액세스 키 ID 및 비밀 키를 생성할 수 있습니다. 또한 이러한 키는 툴킷을 통해 Amazon Web Services에 액세스되도록 지정할 수 있습니다. 도구 키트에서 사용할 자격 증명을 지정하는 방법에 대한 자세한 내용은 자격 증명을 참조하십시오. 자격 증명을 안전하게 처리하는 방법에 대한 자세한 내용은 [AWS 액세스 키 관리 모범 사례를 참조하세요](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html).

이 툴킷은 IAM 사용자의 암호를 생성하는 데 사용할 수 없습니다.

 *IAM 사용자의 자격 증명을 생성하려면* 

1.  AWS 탐색기에서 IAM 사용자의 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭)를 열고 **편집**을 선택합니다.  
![\[IAM 사용자 details window showing Access Keys tab with two active keys and their creation dates.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/iam-user-creds-list.png)

1. **액세스 키** 탭에서 자격 증명을 생성하려면 **생성**을 선택합니다.

   IAM 사용자당 두 세트의 자격 증명만 생성할 수 있습니다. 이미 두 세트의 자격 증명이 있지만 추가로 한 세트를 더 생성해야 하는 경우 기존 세트 중 하나를 삭제해야 합니다.  
![\[Access Keys dialog showing Access Key ID and Secret Access Key fields with an option to save locally.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/iam-user-creds-create.png)

   도구 키트가 보안 액세스 키의 암호화된 사본을 로컬 드라이브에 저장하도록 하려면 **보안 액세스 키 로컬에 저장을 선택합니다.는 생성 시 보안 액세스 키 AWS 만 반환합니다**. 또한 대화 상자에서 보안 액세스 키를 복사해 안전한 위치에 저장할 수 있습니다.

1. **확인**을 선택합니다.

자격 증명을 생성하면 **액세스 키** 탭에서 볼 수 있습니다. 도구 키트에서 보안 키를 로컬로 저장하는 옵션을 선택했으면 여기에 표시됩니다.

![\[Access Keys tab showing an active key with ID, status, creation date, and secret key options.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/iam-user-show-creds.png)


보안 키를 직접 저장하고 도구 키트에서도 저장되도록 하려면 **Secret Access Key(보안 액세스 키)** 상자에서 보안 액세스 키를 입력한 다음 **Save the secret access key locally(로컬 방식으로 보안 액세스 키 저장)**를 선택합니다.

자격 증명을 비활성화하려면 **Make Inactive(비활성화)**를 선택합니다. (보안 인증 정보가 손상된 것으로 의심되는 경우 이 방법을 사용할 수 있습니다. 보안 인증 정보가 안전하다는 보장을 받으면 보안 인증 정보를 다시 활성화할 수 있습니다.)

## IAM 역할 생성
<a name="create-an-iam-role-tkv"></a>

Toolkit for Visual Studio는 IAM 역할의 생성 및 구성을 지원합니다. 사용자 및 그룹과 같이 IAM 역할에 정책을 연결할 수 있습니다. 그런 다음 IAM 역할을 Amazon EC2 인스턴스와 연결할 수 있습니다. EC2 인스턴스와의 연결은 역할에 대한 논리 컨테이너인 *인스턴스 프로파일*을 통해 처리됩니다. EC2 인스턴스에서 실행되는 애플리케이션은 IAM 역할과 연결된 정책이 지정하는 액세스 수준을 자동으로 부여합니다. 애플리케이션이 다른 AWS 자격 증명을 지정하지 않은 경우에도 마찬가지입니다.

예를 들어, 역할을 생성하고 Amazon S3 액세스만 제한하는 해당 역할에 정책을 연결할 수 있습니다. 이 역할을 EC2 인스턴스와 연결하면 해당 인스턴스에서 애플리케이션을 실행할 수 있으며, 애플리케이션은 Amazon S3에는 액세스하지만 다른 서비스 또는 리소스에는 액세스하지 않습니다. 이 접근 방식의 장점은 EC2 인스턴스에서 AWS 자격 증명을 안전하게 전송하고 저장하는 데 신경을 쓸 필요가 없다는 것입니다.

IAM 역할에 대한 자세한 정보는 [IAM 사용 설명서에서 IAM 역할 작업](https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html) 섹션을 참조하세요. Amazon EC2 인스턴스와 연결된 IAM 역할을 AWS 사용하여에 액세스하는 프로그램의 예는 [Java](https://docs.aws.amazon.com//sdk-for-java/latest/developer-guide/ec2-iam-roles.html), [.NET](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-hosm.html), [PHP](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials_assume_role.html) 및 Ruby용 AWS 개발자 안내서(IAM을 [사용하여 자격 증명 설정, IAM](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/setup-config.html#aws-ruby-sdk-credentials-iam) [역할 생성](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/iam-example-create-role.html) 및 [IAM 정책 작업](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/iam-example-working-with-policies.html))를 참조하세요.

 *IAM 역할을 생성하려면* 

1.  AWS 탐색기의 **Identity and Access Management**에서 **역할**의 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭)를 연 다음 **역할 생성을** 선택합니다.

1. **역할 생성** 대화 상자에서 IAM 역할에 대한 이름을 입력하고 **확인**을 선택하세요.  
![\[Dialog box for creating a role with a name field and OK/Cancel buttons.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/iam-role-create-dlg.png)

새 IAM 역할은 **Identity and Access Management**의 **역할** 아래에 표시됩니다.

정책을 생성하고 역할에 연결하는 방법에 대한 자세한 내용은 [IAM 정책 생성](#tkv-create-an-iam-policy)을 참조하십시오.

## IAM 정책 만들기
<a name="tkv-create-an-iam-policy"></a>

정책은 IAM의 기초입니다. 정책은 사용자, 그룹 또는 역할과 같은 IAM *엔터티*와 연결할 수 있습니다. 정책은 사용자, 그룹 또는 역할에 대해 활성화된 액세스 수준을 지정합니다.

 *IAM 정책을 만들려면* 

 AWS 탐색기에서 **AWS Identity and Access Management** 노드를 확장한 다음 정책을 연결할 엔터티 유형(**그룹**, **역할** 또는 **사용자**)에 맞게 노드를 확장합니다. 예를 들어, IAM 역할의 컨텍스트 메뉴를 열고 **편집**을 선택합니다.

역할과 연결된 탭이 AWS 탐색기에 나타납니다. **정책 추가** 링크를 선택합니다.

**New Policy Name(새 정책 이름)** 대화 상자에서 정책에 대한 이름(예: s3-access)을 입력합니다.

![\[Dialog box for entering a new policy name, with "s3-access" typed in the input field.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/iam-policy-create-dlg.png)


정책 편집기에서 역할에 제공할 액세스 수준을 지정하는 정책 명령문을 추가합니다(이 예에서는 정책과 연결된 winapp-instance-role-2). 이 예제에서 정책은 Amazon S3에 대한 전체 액세스를 제공하지만 다른 리소스에 대한 액세스는 제공하지 않습니다.

![\[Policy editor interface showing allowed actions for Amazon S3 in the winapp-instance-role-2 role.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/iam-policy-specify.png)


보다 세밀하게 액세스를 제어하려면 정책 편집기에서 하위 노드를 확장하여 Amazon Web Services와 연결된 작업을 허용 또는 금지할 수 있습니다.

정책을 편집했으면 **저장** 링크를 선택합니다.

# AWS Lambda
<a name="lambda-index"></a>

를 사용하여 .NET Core 기반 C\$1 Lambda 함수를 개발하고 배포합니다 AWS Toolkit for Visual Studio. AWS Lambda 는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있는 컴퓨팅 서비스입니다. Toolkit for Visual Studio에는 Visual Studio용 AWS Lambda .NET Core 프로젝트 템플릿이 포함되어 있습니다.

에 대한 자세한 내용은 [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 개발자 안내서를 AWS Lambda참조하세요.

.NET Core에 대한 자세한 내용은 Microsoft [.NET Core](https://docs.microsoft.com/en-us/dotnet/articles/core/) 안내서를 참조하세요. Windows, macOS 및 Linux 플랫폼에 대한 .NET Core 사전 조건 및 설치 지침은 [.NET Core 다운로드](https://www.microsoft.com/net/download/core)를 참조하십시오.

다음 주제에서는 Toolkit for Visual Studio를 AWS Lambda 사용하여를 사용하는 방법을 설명합니다.

**Topics**
+ [

# 기본 AWS Lambda 프로젝트
](lambda-creating-project-in-visual-studio.md)
+ [

# 기본 AWS Lambda 프로젝트 생성 Docker 이미지
](lambda-creating-project-docker-image.md)
+ [

# 자습서:를 사용하여 서버리스 애플리케이션 빌드 및 테스트 AWS Lambda
](lambda-build-test-severless-app.md)
+ [

# 자습서: Amazon Rekognition Lambda 애플리케이션 생성
](lambda-rekognition-example.md)
+ [

# 자습서:에서 Amazon Logging Frameworks AWS Lambda 를 사용하여 애플리케이션 로그 생성
](cw-log-frameworks.md)

# 기본 AWS Lambda 프로젝트
<a name="lambda-creating-project-in-visual-studio"></a>

 AWS Toolkit for Visual Studio에서 Microsoft .NET Core 프로젝트 템플릿을 사용하여 Lambda 함수를 생성할 수 있습니다.

## Visual Studio .NET Core Lambda 프로젝트 생성
<a name="create-a-visual-studio-net-core-lam-project"></a>

Lambda-Visual Studio 템플릿과 블루프린트를 사용하여 프로젝트 초기화 속도를 높일 수 있습니다. Lambda 블루프린트에는 미리 작성된 함수가 포함되어 있어 유연한 프로젝트 기반 생성을 간소화해 줍니다.

**참고**  
Lambda 서비스에는 다양한 패키지 유형에 대한 데이터 제한이 있습니다. 데이터 제한에 대한 자세한 내용은 *AWS Lambda 사용 설명서*의 [Lambda 할당량](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html) 주제를 참조하세요.

**Visual Studio에서 Lambda 프로젝트를 생성하려면**

1. Visual Studio에서 **파일** 메뉴와 **새로 만들기**를 확장한 다음 **프로젝트**를 선택합니다.

1. **새 프로젝트** 대화 상자에서 **언어**, **플랫폼** 및 **프로젝트 유형** 드롭다운 상자가 ‘모두’로 설정되어 있는지 확인하고 **검색** 필드에 **aws lambda**를 입력합니다. **AWS Lambda 프로젝트(.NET Core - C\$1)** 템플릿을 선택합니다.

1. **이름** 필드에 **AWSLambdaSample**을 입력하고 원하는 파일 **위치**를 지정한 다음 **생성**을 선택하여 계속 진행합니다.

1. **블루프린트 선택** 페이지에서 **빈 함수** 블루프린트를 선택한 후 **완료**를 선택하여 Visual Studio 프로젝트를 만듭니다.

## 프로젝트 파일 검토
<a name="review-the-project-files"></a>

검토할 프로젝트 파일은 `aws-lambda-tools-defaults.json` 및 `Function.cs`입니다.

다음 예제는 프로젝트의 일부로 자동으로 생성된 `aws-lambda-tools-defaults.json` 파일을 보여줍니다. 이 파일의 필드를 사용하여 빌드 옵션을 설정할 수 있습니다.

**참고**  
 Visual Studio의 프로젝트 템플릿에는 다음과 같은 다양한 필드가 포함되어 있습니다.  
**function-handler**: Lambda 함수가 실행될 때 실행되는 메서드를 지정합니다.
**function-handler** 필드에 값을 지정하면 게시 마법사에서 해당 값이 미리 채워집니다.
그러나 함수, 클래스 또는 어셈블리의 이름을 바꾸면 `aws-lambda-tools-defaults.json` 파일의 해당 필드를 업데이트해야 합니다.

```
{
  "Information": [
    "This file provides default values for the deployment wizard inside Visual Studio and the AWS Lambda commands added to the .NET Core CLI.",
    "To learn more about the Lambda commands with the .NET Core CLI execute the following command at the command line in the project root directory.",
    "dotnet lambda help",
    "All the command line options for the Lambda command can be specified in this file."
  ],
  "profile": "default",
  "region": "us-west-2",
  "configuration": "Release",
  "function-architecture": "x86_64",
  "function-runtime": "dotnet8",
  "function-memory-size": 512,
  "function-timeout": 30,
  "function-handler": "AWSLambdaSample::AWSLambdaSample.Function::FunctionHandler"
}
```

`Function.cs` 파일을 검사합니다. `Function.cs`는 Lambda 함수로 노출할 c\$1 함수를 정의합니다. `FunctionHandler`는 Lambda 함수가 실행될 때 실행되는 Lambda 기능입니다. 이 프로젝트에는 입력 텍스트에서 `ToUpper()`를 호출하는 `FunctionHandler` 함수가 하나 정의되어 있습니다.

이제 프로젝트에서 Lambda에 게시할 준비가 되었습니다.

## Lambda에 게시
<a name="publish-to-lam"></a>

다음 절차와 이미지는 AWS Toolkit for Visual Studio를 사용하여 함수를 Lambda에 업로드하는 방법을 보여줍니다.

![\[테스트 함수 호출 페이지\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/uploadnet8.png)


**Lambda에 함수 게시**

1. **보기를** 확장하고 AWS 탐색기를 선택하여 **AWS 탐색**기로 이동합니다.

1. **솔루션 탐색**기에서 게시하려는 프로젝트의 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭)를 연 다음 ** AWS Lambda에 게시**를 선택하여 **Lambda 함수 업로드** 창을 엽니다.

1. **Lambda 함수 업로드** 창에서 다음 필드를 작성합니다.

   1. **패키지 유형**: **Zip**을 선택합니다. 빌드 프로세스의 결과로 ZIP 파일이 생성되고 Lambda에 업로드됩니다. 또는 **패키지 유형** **Image**를 선택할 수 있습니다. [자습서: 기본 Lambda 프로젝트 Docker 이미지 생성](lambda-creating-project-docker-image.md)에서는 **패키지 유형** **Image**를 사용하여 게시하는 방법을 설명합니다.

   1. **Lambda 런타임**: 드롭다운 메뉴에서 Lambda 런타임을 선택합니다.

   1. **아키텍처**: 원하는 아키텍처의 방사형을 선택합니다.

   1. **함수 이름**: **새 함수 생성**의 방사형을 선택한 다음 Lambda 인스턴스의 표시 이름을 입력합니다. 이 이름은 AWS 탐색기와 AWS Management Console 디스플레이 모두에서 참조됩니다.

   1. **핸들러**: 이 필드를 사용하여 함수 핸들러를 지정합니다. 예를 들어 **AWSLambdaSample::AWSLambdaSample.Function::FunctionHandler**입니다.

   1. *(선택 사항) ***설명**: AWS Management Console내의 인스턴스와 함께 표시할 텍스트를 입력합니다.

   1. **구성**: 드롭다운 메뉴에서 원하는 구성을 선택합니다.

   1. **프레임워크**: 드롭다운 메뉴에서 원하는 프레임워크를 선택합니다.

   1. **설정 저장**: 현재 설정을 향후 배포의 기본값으로 `aws-lambda-tools-defaults.json`에 저장하려면 이 상자를 선택합니다.

   1. **다음**을 선택하여 **고급 함수 세부 정보** 창으로 이동합니다.

1. **고급 함수 세부 정보** 창에서 다음 필드를 작성합니다.

   1. **역할 이름**: 계정과 관련된 역할을 선택합니다. 역할은 함수의 코드에 의해 수행된 모든 AWS 서비스 호출에 대한 임시 자격 증명을 제공합니다. 역할이 없는 경우 드롭다운 선택기에서 스크롤하여 ** AWS 관리형 정책을 기반으로 새 역할을** 찾은 다음 **AWSLambdaBasicExecutionRole**을 선택합니다. 이 역할에는 최소한의 액세스 권한이 있습니다.
**참고**  
계정에는 IAM ListPolicies 작업을 실행할 수 있는 권한이 있어야 합니다. 그렇지 않으면 **역할 이름** 목록이 비게 되어 계속 진행할 수 없습니다.

   1. *(선택 사항)* Lambda 함수가 Amazon VPC의 리소스에 액세스할 경우 서브넷과 보안 그룹을 선택합니다.

   1. *(선택 사항)* Lambda 함수에 필요한 환경 변수를 설정합니다. 키는 무료 기본 서비스 키로 자동으로 암호화됩니다. 또는 요금이 부과되는 AWS KMS 키를 지정할 수 있습니다. [KMS](https://aws.amazon.com/kms/)는 데이터 암호화에 사용하는 암호화 키를 생성하고 제어하는 데 사용할 수 있는 관리형 서비스입니다. AWS KMS 키가 있는 경우 목록에서 키를 선택할 수 있습니다.

1. **업로드**를 선택하여 **함수 업로드** 창을 열고 업로드 프로세스를 시작합니다.
**참고**  
**함수가 업로드되는** 동안 함수 업로드 페이지가 표시됩니다 AWS. 보고서를 볼 수 있도록 마법사를 열어 두려면 업로드가 완료되기 전에 양식 하단에 있는 **완료 후 자동으로 마법사 닫기**를 지웁니다.  
함수가 업로드되고 나면 Lambda 함수가 활성화됩니다. **함수:** 보기 페이지가 열리고 새 Lambda 함수의 구성이 표시됩니다.

1. **테스트 함수** 탭에서 텍스트 입력 필드에 `hello lambda!`를 입력한 다음 **간접 호출**을 선택하여 Lambda 함수를 수동으로 간접 호출합니다. 텍스트가 대문자로 변환되어 **응답** 탭에 표시됩니다.
**참고**  
**AWS 탐색기**의 **AWS Lambda** 노드 아래에 있는 배포된 인스턴스를 두 번 클릭하여 언제든지 **함수:** 보기를 다시 열 수 있습니다.  
![\[테스트 함수 호출 페이지\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/invokeBasic.PNG)

1. *(선택 사항)* Lambda 함수를 성공적으로 게시했는지 확인하려면에 로그인 AWS Management Console 한 다음 Lambda를 선택합니다. 콘솔에는 방금 생성한 함수를 포함하여 게시된 Lambda 함수가 모두 표시됩니다.

## 정리
<a name="cleanup-lam"></a>

이 예제를 사용하여 개발을 계속하지 않을 경우 계정에서 사용하지 않은 리소스에 대한 요금이 청구되지 않도록 배포된 함수를 삭제합니다.

**참고**  
Lambda는 자동으로 Lambda 함수를 모니터링하고 Amazon CloudWatch를 통해 지표를 보고합니다. 함수를 모니터링하고 문제를 해결하려면 AWS Lambda 개발자 안내서의 [ Amazon CloudWatch를 사용한 AWS Lambda 함수 문제 해결 및 모니터링을](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions.html) 참조하세요.

**함수 삭제**

1. **AWS 탐색기**에서 **AWS Lambda** 노드를 확장합니다.

1. 배포된 인스턴스를 마우스 오른쪽 버튼으로 클릭한 다음 **삭제**를 선택합니다.

# 기본 AWS Lambda 프로젝트 생성 Docker 이미지
<a name="lambda-creating-project-docker-image"></a>

Toolkit for Visual Studio를 사용하여 AWS Lambda 함수를 도커 이미지로 배포할 수 있습니다. Docker를 사용하면 런타임을 더 잘 제어할 수 있습니다. 예를 들어 .NET 8.0과 같은 사용자 지정 런타임을 선택할 수 있습니다. 다른 컨테이너 이미지와 동일한 방식으로 도커 이미지를 배포합니다. 이 자습서는 [자습서: 기본 Lambda 프로젝트](lambda-creating-project-in-visual-studio.md)와 비슷하지만 두 가지 차이점이 있습니다.
+ Dockerfile은 프로젝트에 포함되어 있습니다.
+ 대체 게시 구성이 선택됩니다.

Lambda 컨테이너 이미지에 대한 자세한 정보는 *AWS Lambda 개발자 안내서*의 [Lambda 배포 패키지](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html)를 참조하세요.

Lambda 작업에 대한 자세한 내용은이 사용 설명서의 주제에서 템플릿 사용을 AWS Toolkit for Visual Studio참조하세요. [AWS LambdaAWS Toolkit for Visual Studio](lambda-index.md) 

## Visual Studio .NET Core Lambda 프로젝트 생성
<a name="create-a-visual-studio-net-core-lam-project"></a>

Lambda Visual Studio 템플릿과 블루프린트를 사용하여 프로젝트 초기화 속도를 높일 수 있습니다. Lambda 블루프린트에는 미리 작성된 함수가 포함되어 있어 유연한 프로젝트 기반 생성을 간소화해 줍니다.

**Visual Studio .NET Core Lambda 프로젝트 생성**

1. Visual Studio에서 **파일** 메뉴와 **새로 만들기**를 확장한 다음 **프로젝트**를 선택합니다.

1. **새 프로젝트** 대화 상자에서 **언어**, **플랫폼** 및 **프로젝트 유형** 드롭다운 상자가 ‘모두’로 설정되어 있는지 확인하고 **검색** 필드에 **aws lambda**를 입력합니다. **AWS Lambda 프로젝트(.NET Core - C\$1)** 템플릿을 선택합니다.

1. **프로젝트 이름** 필드에 **AWSLambdaDocker**를 입력하고 파일 **위치**를 지정한 다음 **생성**을 선택합니다.

1. **블루프린트 선택** 페이지에서 **.NET 8(컨테이너 이미지)** 블루프린트를 선택한 다음 **완료**를 선택하여 Visual Studio 프로젝트를 생성합니다. 이제 프로젝트의 구조와 코드를 검토할 수 있습니다.

## 프로젝트 파일 검토
<a name="review-the-project-files"></a>

다음 섹션에서는 **.NET 8(컨테이너 이미지)** 블루프린트에서 생성된 세 가지 프로젝트 파일을 살펴봅니다.

1. `Dockerfile`

1. `aws-lambda-tools-defaults.json`

1. `Function.cs`

### 1. Dockerfile
<a name="dockerfile"></a>

`Dockerfile`은 세 가지 기본 작업을 수행합니다.
+ `FROM`: 이 이미지에 활용할 기본 이미지를 설정합니다. 이 기본 이미지는.NET 런타임, Lambda 런타임 및 Lambda .NET 프로세스의 진입점을 제공하는 쉘 스크립트를 제공합니다.
+ `WORKDIR`: 이미지의 내부 작업 디렉터리를 로 설정합니다`/var/task`.
+ `COPY`: 빌드 프로세스에서 생성된 파일을 로컬 위치에서 이미지의 작업 디렉터리로 복사합니다.

다음은 지정할 수 있는 선택적 `Dockerfile` 작업입니다.
+ `ENTRYPOINT`: 이 기본 이미지에는 이미지가 시작될 때 실행되는 시작 프로세스인 `ENTRYPOINT`가 이미 포함되어 있습니다. 직접 지정하려는 경우 해당 기본 진입점을 재정의해야 합니다.
+ `CMD`: 실행할 AWS 사용자 지정 코드를 지시합니다. 사용자 지정 메서드에는 완전한 이름이 필요합니다. 이 행은 Dockerfile에 직접 포함하거나 게시 프로세스 중에 지정할 수 있습니다.

  ```
  # Example of alternative way to specify the Lambda target method rather than during the publish process.
  CMD [ "AWSLambdaDocker::AWSLambdaDocker.Function::FunctionHandler"]
  ```

다음은 .NET 8(컨테이너 이미지) 블루프린트에 의해 생성된 Dockerfile의 예입니다.

```
FROM public.ecr.aws/lambda/dotnet:8

WORKDIR /var/task

# This COPY command copies the .NET Lambda project's build artifacts from the host machine into the image. 
# The source of the COPY should match where the .NET Lambda project publishes its build artifacts. If the Lambda function is being built 
# with the AWS .NET Lambda Tooling, the `--docker-host-build-output-dir` switch controls where the .NET Lambda project
# will be built. The .NET Lambda project templates default to having `--docker-host-build-output-dir`
# set in the aws-lambda-tools-defaults.json file to "bin/Release/lambda-publish".
#
# Alternatively Docker multi-stage build could be used to build the .NET Lambda project inside the image.
# For more information on this approach checkout the project's README.md file.
COPY "bin/Release/lambda-publish"  .
```

### 2. aws-lambda-tools-defaults.json
<a name="aws-lambda-tools-defaults"></a>

`aws-lambda-tools-defaults.json` 파일은 Toolkit for Visual Studio 배포 마법사 및 .NET Core CLI의 기본값을 지정하는 데 사용됩니다. 다음 목록은 `aws-lambda-tools-defaults.json` 파일에서 설정할 수 있는 필드를 설명합니다.
+ `profile`: AWS 프로필을 설정합니다.
+ `region`: 리소스가 저장되는 AWS 리전을 설정합니다.
+ `configuration`: 함수를 게시하는 데 사용되는 구성을 설정합니다.
+ `package-type`: 배포 패키지 유형을 컨테이너 이미지 또는 .zip 파일 아카이브로 설정합니다.
+ `function-memory-size`: 함수의 메모리 할당을 MB 단위로 설정합니다.
+ `function-timeout`: 제한 시간은 Lambda 함수를 실행할 수 있는 최대 시간(초)입니다. 이 값을 1초 단위로 최대 15분까지 조정할 수 있습니다.
+ `docker-host-build-output-dir`: `Dockerfile`의 지침과 관련된 빌드 프로세스의 출력 디렉터리를 설정합니다.
+ `image-command`: Lambda 함수를 실행하려는 메서드의 정규화된 이름, 즉 Lambda 함수를 실행하려는 코드입니다. 구문은 다음과 같습니다. `{Assembly}::{Namespace}.{ClassName}::{MethodName}` 자세한 정보는 [핸들러 서명](https://docs.aws.amazon.com/lambda/latest/dg/csharp-handler.html#csharp-handler-signatures)을 참조하세요. 여기서 `image-command`를 설정하면 나중에 Visual Studio의 게시 마법사에 이 값이 미리 채워집니다.

다음은 .NET 8(컨테이너 이미지) 블루프린트에 의해 생성된 aws-lambda-tools-defaults.json의 예입니다.

```
{
  "Information": [
    "This file provides default values for the deployment wizard inside Visual Studio and the AWS Lambda commands added to the .NET Core CLI.",
    "To learn more about the Lambda commands with the .NET Core CLI execute the following command at the command line in the project root directory.",
    "dotnet lambda help",
    "All the command line options for the Lambda command can be specified in this file."
  ],
  "profile": "default",
  "region": "us-west-2",
  "configuration": "Release",
  "package-type": "image",
  "function-memory-size": 512,
  "function-timeout": 30,
  "image-command": "AWSLambdaDocker::AWSLambdaDocker.Function::FunctionHandler",
  "docker-host-build-output-dir": "./bin/Release/lambda-publish"
}
```

### 3. Function.cs
<a name="w2aac15c45c16c17c21"></a>

`Function.cs` 파일은 Lambda 함수로 노출되는 c\$1 함수를 정의합니다. `FunctionHandler`는 Lambda 함수가 실행될 때 실행되는 Lambda 기능입니다. 이 프로젝트에서 `FunctionHandler`는 입력 텍스트의 `ToUpper()`를 직접적으로 호출합니다.

## Lambda에 게시
<a name="publish-to-lam"></a>

빌드 프로세스에서 생성되는 도커 이미지는 Amazon Elastic Container Registry(Amazon ECR)에 업로드됩니다. Amazon ECR은 개발자가 도커 컨테이너 이미지를 저장, 관리 및 배포할 수 있게 해주는 완벽한 관리형 도커 컨테이너 레지스트리입니다. Amazon ECR은 이미지를 호스팅하며, Lambda는 호출 시 이를 참조하여 프로그래밍된 Lambda 함수를 제공합니다.

**Lambda에 함수 게시**

1. **솔루션 탐색기**에서 프로젝트의 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭)를 연 다음 ** AWS Lambda에 게시**를 선택하여 **Lambda 함수 업로드** 창을 엽니다.

1. **Lambda 함수 업로드** 페이지에서 다음을 수행합니다.  
![\[이미지 기반 Lambda 함수를에 게시하기 위한 업로드 화면 AWS\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/lambda-upload-docker-03192024.png)

   1.  **패지지 유형**의 경우 게시 마법사가 프로젝트 내에서 `Dockerfile`을 발견했기 때문에 **Image**가 **패키지 유형**으로 자동 선택되었습니다.

   1. **함수 이름**에 Lambda 인스턴스의 표시 이름을 입력하세요. 이 이름은 Visual Studio의 AWS 탐색기 및 AWS Management Console에서 모두 표시되는 참조 이름입니다.

   1.  **설명**에는 AWS Management Console의 인스턴스와 함께 표시할 텍스트를 입력하세요.

   1. **이미지 명령**에는 Lambda 함수를 실행하려는 메서드의 정규화된 경로를 입력하세요. **AWSLambdaDocker::AWSLambdaDocker.Function::FunctionHandler** 
**참고**  
여기에 입력된 모든 메서드 이름은 Dockerfile 내의 모든 CMD 명령을 무시합니다. `Dockerfile`에 Lambda 함수를 시작하는 방법을 지시하는 `CMD`가 포함된 경우에만 **이미지 명령** 입력은 선택 사항입니다.

   1. **이미지 리포지토리**에는 새로운 또는 기존의 Amazon Elastic Container Registry 이름을 입력하세요. 빌드 프로세스에서 생성되는 도커 이미지는 이 레지스트리에 업로드됩니다. 게시되는 Lambda 정의는 해당 Amazon ECR 이미지를 참조합니다.

   1.  **이미지 태그**의 경우 리포지토리의 이미지와 연결할 도커 태그를 입력하세요.

   1. **다음**을 선택합니다.

1. **고급 함수 세부 정보** 페이지의 **역할 이름**에서 계정과 관련된 역할을 선택하세요. 역할은 함수의 코드에 의해 수행된 Amazon Web Services 호출에 대한 임시 보안 인증 정보를 제공하는 데 사용됩니다. 역할이 없는 경우 ** AWS 관리형 정책을 기반으로 새 역할을** 선택한 다음 **AWSLambdaBasicExecutionRole**을 선택합니다.
**참고**  
계정에는 IAM ListPolicies 작업을 실행할 수 있는 권한이 있어야 합니다. 그렇지 않으면 **역할 이름** 목록이 비게 됩니다.

1. **업로드**를 선택하여 업로드 및 게시 프로세스를 시작합니다.
**참고**  
함수를 업로드하는 동안 **함수 업로드** 페이지가 표시됩니다. 그런 다음 게시 프로세스는 구성 파라미터를 기반으로 이미지를 빌드하고, 필요한 경우 Amazon ECR 리포지토리를 생성하고, 이미지를 리포지토리에 업로드하고, 해당 이미지와 함께 해당 리포지토리를 참조하는 Lambda를 생성하세요.  
함수가 업로드되면 **함수** 페이지가 열리고 새 Lambda 함수의 구성이 표시됩니다.

1. Lambda 함수를 수동으로 호출하려면 **테스트 함수** 탭에서 요청 자유 텍스트 입력 필드에 `hello image based lambda`를 입력한 다음 **호출**을 선택하세요. 대문자로 변환된 텍스트는 **응답**에 표시됩니다.  
![\[게시된 함수 보기 페이지의 테스트 함수 탭에는 Lambda 메서드를 수동으로 호출할 수 있는 버튼이 있습니다.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/lambda-invoke-docker-03192024.png)

1. 리포지토리를 보려면 **AWS 탐색기**의 **Amazon Elastic Container Service**에서 **리포지토리**를 선택하세요.

   **AWS 탐색기**의 **AWS Lambda** 노드 아래에 있는 배포된 인스턴스를 두 번 클릭하여 언제든지 **함수:** 보기를 다시 열 수 있습니다.
**참고**  
 AWS 탐색기 창이 열려 있지 않은 경우 **보기** -> **AWS 탐색**기를 통해 도킹할 수 있습니다.

1. **구성** 탭에 있는 추가 이미지별 구성 옵션을 참고하세요. 이 탭은 Dockerfile 내에 지정되었을 수 `ENTRYPOINT`, `CMD`, `WORKDIR`을 재정의하는 방법을 제공합니다. **설명**은 업로드/게시 중에 입력한 설명(있는 경우)입니다.

## 정리
<a name="cleanup-lam"></a>

이 예제를 사용하여 개발을 계속하지 않을 경우 계정에서 사용하지 않은 리소스에 대한 요금이 청구되지 않도록 배포된 함수와 ECR 이미지를 삭제해야 합니다.
+ **AWS 탐색기**의 **AWS Lambda** 노드 아래에 있는 배포된 인스턴스를 마우스 오른쪽 버튼으로 클릭하여 함수를 삭제할 수 있습니다.
+ 리포지토리는 **AWS 탐색기**의 **Amazon Elastic Container Service** -> **리포지토리**에서 삭제할 수 있습니다.

## 다음 단계
<a name="next-steps-lam"></a>

Lambda 이미지 생성 및 테스트에 대한 정보는 [Lambda에서 컨테이너 이미지 사용](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html)을 참조하세요.

컨테이너 이미지 배포, 권한 및 구성 설정 재정의에 대한 정보는 [함수 구성](https://docs.aws.amazon.com/lambda/latest/dg/configuration-images.html)을 참조하세요.

# 자습서:를 사용하여 서버리스 애플리케이션 빌드 및 테스트 AWS Lambda
<a name="lambda-build-test-severless-app"></a>

 AWS Toolkit for Visual Studio 템플릿을 사용하여 서버리스 Lambda 애플리케이션을 빌드할 수 있습니다. Lambda 프로젝트 템플릿에는 **AWS 서버리스 애플리케이션** 모델(SAM)의 AWS Toolkit for Visual Studio 구현인 서버리스 애플리케이션용 템플릿이 포함되어 있습니다. [AWSAWS](https://github.com/awslabs/serverless-application-model) 이 프로젝트 유형을 사용하면 AWS Lambda 함수 모음을 개발하고 필요한 AWS 리소스와 함께 전체 애플리케이션으로 배포할 수 있습니다.를 사용하여 배포를 오케스트레이션 AWS CloudFormation 할 수 있습니다.

설정에 대한 사전 조건 및 정보는 Toolkit for Visual Studio의 Lambda 템플릿 사용을 AWS Toolkit for Visual Studio참조하세요. [AWSAWS](lambda-index.md) 

**Topics**
+ [

## 새 AWS 서버리스 애플리케이션 프로젝트 생성
](#create-a-new-aws-serverless-application-project)
+ [

## 서버리스 애플리케이션 파일 검토
](#examine-the-files-in-the-serverless-application)
+ [

## 서버리스 애플리케이션 배포
](#deploy-the-serverless-application)
+ [

## 서버리스 애플리케이션 테스트
](#test-the-serverless-application)

## 새 AWS 서버리스 애플리케이션 프로젝트 생성
<a name="create-a-new-aws-serverless-application-project"></a>

AWS 서버리스 애플리케이션 프로젝트는 서버리스 CloudFormation 템플릿으로 Lambda 함수를 생성합니다. CloudFormation templates를 사용하면 데이터베이스와 같은 추가 리소스를 정의하고, IAM 역할을 추가하고, 한 번에 여러 함수를 배포할 수 있습니다. 이는 단일 AWS Lambda 함수를 개발하고 배포하는 데 중점을 둔 Lambda 프로젝트와 다릅니다.

다음 절차에서는 새로운 AWS 서버리스 애플리케이션 프로젝트를 생성하는 방법을 설명합니다.

1. Visual Studio에서 **파일** 메뉴와 **새로 만들기**를 확장한 다음 **프로젝트**를 선택합니다.

1. **새 프로젝트** 대화 상자에서 **언어**, **플랫폼** 및 **프로젝트 유형** 드롭다운 상자가 ‘모두…’로 설정되어 있는지 확인하고 **검색** 필드에 **aws lambda**를 입력합니다.

1. **테스트가 포함된AWS 서버리스 애플리케이션(.NET Core - C\$1)** 템플릿을 선택하세요.
**참고**  
**테스트가 포함된AWS 서버리스 애플리케이션(.NET Core - C\$1)** 템플릿이 결과 상단에 채워지지 않을 수 있습니다.

1. **다음**을 클릭하여 **새 프로젝트 구성** 대화 상자를 엽니다.

1. **새 프로젝트 구성** 대화 상자에서 **이름**에 **ServerlessPowertools**를 입력한 다음 나머지 필드를 원하는 대로 작성합니다. **생성** 버튼을 선택하여 **블루프린트 선택** 대화 상자로 이동합니다.

1. **블루프린트 선택** 대화 상자에서 ** AWS Lambda용 Powertools** 블루프린트를 선택한 후 **완료**를 선택하여 Visual Studio 프로젝트를 만듭니다.

## 서버리스 애플리케이션 파일 검토
<a name="examine-the-files-in-the-serverless-application"></a>

다음 섹션에서는 프로젝트에 대해 생성된 3개의 서버리스 애플리케이션 파일을 자세히 살펴봅니다.

1. serverless.template

1. Functions.cs

1. aws-lambda-tools-defaults.json

### 1. serverless.template
<a name="blogcs"></a>

`serverless.template` 파일은 Serverless 함수 및 기타 AWS 리소스를 선언하기 위한 AWS CloudFormation 템플릿입니다. 이 프로젝트에 포함된 파일에는 Amazon API Gateway를 통해 `HTTP *Get*` 작업으로 노출되는 단일 Lambda 함수에 대한 선언이 포함되어 있습니다. 이 템플릿을 편집하여 기존 함수를 사용자 지정하거나 애플리케이션에 필요한 함수 및 기타 리소스를 더 추가할 수 있습니다.

다음은 `serverless.template` 파일의 예제입니다.

```
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Transform": "AWS::Serverless-2016-10-31",
  "Description": "An AWS Serverless Application.",
  "Resources": {
    "Get": {
      "Type": "AWS::Serverless::Function",
      "Properties": {
         "Architectures": [
            "x86_64"
            ],
         "Handler": "ServerlessPowertools::ServerlessPowertools.Functions::Get",
         "Runtime": "dotnet8",
         "CodeUri": "",
         "MemorySize": 512,
         "Timeout": 30,
         "Role": null,
         "Policies": [
            "AWSLambdaBasicExecutionRole"
            ],
         "Environment": {
            "Variables": {
               "POWERTOOLS_SERVICE_NAME": "ServerlessGreeting",
               "POWERTOOLS_LOG_LEVEL": "Info",
               "POWERTOOLS_LOGGER_CASE": "PascalCase",
               "POWERTOOLS_TRACER_CAPTURE_RESPONSE": true,
               "POWERTOOLS_TRACER_CAPTURE_ERROR": true,
               "POWERTOOLS_METRICS_NAMESPACE": "ServerlessGreeting"
               }
            },
         "Events": {
            "RootGet": {
               "Type": "Api",
               "Properties": {
                  "Path": "/",
                  "Method": "GET"
                  }
               }
            }
         }
      }
   },
  "Outputs": {
    "ApiURL": {
      "Description": "API endpoint URL for Prod environment",
      "Value": {
        "Fn::Sub": "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/"
      }
    }
  }
}
```

많은 `...AWS:: Serverless::Function...` 선언 필드가 Lambda 프로젝트 배포의 필드와 유사합니다. Powertools 로깅, 지표 및 추적은 다음 환경 변수를 통해 구성됩니다.
+ POWERTOOLS\$1SERVICE\$1NAME=ServerlessGreeting
+ POWERTOOLS\$1LOG\$1LEVEL=Info
+ POWERTOOLS\$1LOGGER\$1CASE=PascalCase
+ POWERTOOLS\$1TRACER\$1CAPTURE\$1RESPONSE=true
+ POWERTOOLS\$1TRACER\$1CAPTURE\$1ERROR=true
+ POWERTOOLS\$1METRICS\$1NAMESPACE=ServerlessGreeting

환경 변수에 대한 정의 및 추가 세부 정보는 [Powertools for AWS Lambda references](https://awslabs.github.io/aws-lambda-powertools-dotnet/references/) 웹 사이트를 참조하세요.

### 2. Functions.cs
<a name="functionscs"></a>

`Functions.cs`는 템플릿 파일에 선언된 단일 함수에 매핑된 C\$1 메서드가 포함된 클래스 파일입니다. Lambda 함수는 API Gateway의 `HTTP Get` 메서드에 응답합니다. 다음은 `Functions.cs` 파일의 예입니다.

```
public class Functions
{
    [Logging(LogEvent = true, CorrelationIdPath = CorrelationIdPaths.ApiGatewayRest)]
    [Metrics(CaptureColdStart = true)]
    [Tracing(CaptureMode = TracingCaptureMode.ResponseAndError)]
    public APIGatewayProxyResponse Get(APIGatewayProxyRequest request, ILambdaContext context)
    {
        Logger.LogInformation("Get Request");

        var greeting = GetGreeting();

        var response = new APIGatewayProxyResponse
        {
            StatusCode = (int)HttpStatusCode.OK,
            Body = greeting,
            Headers = new Dictionary (string, string) { { "Content-Type", "text/plain" } }
        };

        return response;
    }

    [Tracing(SegmentName = "GetGreeting Method")]
    private static string GetGreeting()
    {
        Metrics.AddMetric("GetGreeting_Invocations", 1, MetricUnit.Count);

        return "Hello Powertools for AWS Lambda (.NET)";
    }
}
```

### 3. aws-lambda-tools-defaults.json
<a name="functionscs"></a>

`aws-lambda-tools-defaults.json`는 Visual Studio 내의 AWS 배포 마법사 기본값과 .NET Core CLI에 추가된 AWS Lambda 명령을 제공합니다. 다음은 이 프로젝트에 포함된 `aws-lambda-tools-defaults.json` 파일의 예입니다.

```
{
  "profile": "Default",
  "region": "us-east-1",
  "configuration": "Release",
  "s3-prefix": "ServerlessPowertools/",
  "template": "serverless.template",
  "template-parameters": ""
}
```

## 서버리스 애플리케이션 배포
<a name="deploy-the-serverless-application"></a>

서버리스 애플리케이션을 배포하려면 다음 단계를 완료합니다.

1. **솔루션 탐색**기에서 프로젝트의 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭)를 열고 ** AWS Lambda에 게시**를 선택하여 ** AWS 서버리스 애플리케이션 게시** 대화 상자를 엽니다.

1. ** AWS 서버리스 애플리케이션 게시** 대화 상자에서 CloudFormation 스택 이름 필드에 스택 컨테이너의 **이름을** 입력합니다.

1. **S3 버킷** 필드에서 애플리케이션 번들이 업로드할 Amazon S3 버킷을 선택하거나 **새로 만들기...** 버튼을 선택하고 새 Amazon S3 버킷의 이름을 입력합니다. 그런 다음 **게시**를 선택하여 애플리케이션 배포를 게시합니다.
**참고**  
 CloudFormation 스택과 Amazon S3 버킷이 동일한 AWS 리전에 있어야 합니다. 프로젝트의 나머지 설정은 `serverless.template` 파일에 정의되어 있습니다.  
![\[AWS 서버리스 애플리케이션 게시 대화 상자의 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/lambda-upload-serverless-03192024.png)

1. 게시 프로세스 중에 **스택** 보기 창이 열리고 배포가 완료되면 **상태** 필드에 `CREATE_COMPLETE`가 표시됩니다.  
![\[Visual Studio의 배포 스택 보기 창 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/lambda-upload-stackview-03192024.png)

## 서버리스 애플리케이션 테스트
<a name="test-the-serverless-application"></a>

스택 생성이 완료되면 **AWS 서버리스 URL**을 사용하여 애플리케이션을 볼 수 있습니다. 함수나 파라미터를 추가하지 않고이 자습서를 완료한 경우 AWS 서버리스 URL에 액세스하면 웹 브라우저에 라는 문구가 표시됩니다`Hello Powertools for AWS Lambda (.NET)`.

# 자습서: Amazon Rekognition Lambda 애플리케이션 생성
<a name="lambda-rekognition-example"></a>

이 자습서는 Amazon Rekognition을 사용하여 감지된 레이블이 있는 Amazon S3 객체에 태그를 지정하는 Lambda 애플리케이션을 생성하는 방법을 보여줍니다.

설정에 대한 사전 조건 및 정보는 Toolkit for Visual Studio의 Lambda 템플릿 사용을 AWS Toolkit for Visual Studio참조하세요. [AWSAWS](lambda-index.md) 

## Visual Studio .NET Core 이미지 인식 프로젝트 생성
<a name="create-a-visual-studio-net-core-lam-image-rekognition-project"></a>

다음 절차에서는 AWS Toolkit for Visual Studio에서 Amazon Rekognition Lambda 애플리케이션을 생성하는 방법을 설명합니다.

**참고**  
애플리케이션을 생성하면 두 가지 프로젝트가 포함된 솔루션이 생성됩니다. 이 프로젝트는 Lambda에 배포하기 위한 Lambda 함수 코드가 포함된 소스 프로젝트와 함수를 로컬로 테스트하기 위해 xUnit을 사용하는 테스트 프로젝트입니다.  
경우에 따라 Visual Studio가 프로젝트에 대한 모든 NuGet 참조를 찾지 못할 수 있습니다. 이는 블루프린트에 NuGet에서 검색해야 하는 종속성이 필요하기 때문입니다. 새 프로젝트가 생성되면 Visual Studio에서는 NuGet에서 로컬 참조만 가져오고 원격 참조는 가져오지 않습니다. NuGet 오류를 해결하려면 참조를 마우스 오른쪽 버튼으로 클릭하고 **패키지 복원**을 선택합니다.

1. Visual Studio에서 **파일** 메뉴와 **새로 만들기**를 확장한 다음 **프로젝트**를 선택합니다.

1. **새 프로젝트** 대화 상자에서 **언어**, **플랫폼** 및 **프로젝트 유형** 드롭다운 상자가 ‘모두’로 설정되어 있는지 확인하고 **검색** 필드에 **aws lambda**를 입력합니다.

1. **AWS Lambda with Tests(.NET Core - C\$1)** 템플릿을 선택합니다.

1. **다음**을 클릭하여 **새 프로젝트 구성** 대화 상자를 엽니다.

1. **새 프로젝트 구성** 대화 상자에서 **이름**에 ‘ImageRekognition’을 입력한 다음 나머지 필드를 원하는 대로 작성합니다. **생성** 버튼을 선택하여 **블루프린트 선택** 대화 상자로 이동합니다.

1. **블루프린트 선택** 대화 상자에서 **이미지 레이블 감지** 블루프린트를 선택한 후 **완료**를 선택하여 Visual Studio 프로젝트를 만듭니다.
**참고**  
이 청사진은 Amazon S3 이벤트를 수신하기 위한 코드를 제공하며, Amazon Rekognition을 사용하여 레이블을 감지하고 감지된 레이블을 S3 객체에 태그로 추가합니다.

## 프로젝트 파일 검토
<a name="examine-the-files"></a>

다음 섹션에서는 이러한 프로젝트 파일을 검토합니다.

1. `Function.cs`

1. `aws-lambda-tools-defaults.json`

### 1. Function.cs
<a name="functioncs"></a>

`Function.cs` 파일 내에서 코드의 첫 번째 세그먼트는 파일 상단에 있는 어셈블리 속성입니다. 기본적으로 Lambda는 `System.IO.Stream` 유형의 반환 유형과 입력 파라미터만 허용합니다. 입력 파라미터와 반환 유형에 대해 입력한 클래스를 사용하려면 직렬 변환기를 등록해야 합니다. 어셈블리 속성은 Lambda JSON 직렬 변환기를 등록합니다. 이 직렬 변환기는 `Newtonsoft.Json`을 사용하여 스트림을 입력된 클래스로 변환합니다. 어셈블리 수준 또는 메서드 수준에서 직렬 변환기를 설정할 수 있습니다.

다음은 어셈블리 속성에 대한 예시입니다.

```
// Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class.
[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))]
```

클래스에는 두 개의 생성자가 있습니다. 첫 번째는 기본 생성자로 Lambda가 함수를 호출할 때 사용됩니다. 이 생성자는 Amazon S3 및 Amazon Rekognition 서비스 클라이언트를 생성합니다. 생성자는 또한 함수를 배포할 때 함수에 할당하는 IAM 역할에서 이러한 클라이언트의 AWS 자격 증명을 검색합니다. 클라이언트의 AWS 리전은 Lambda 함수가 실행 중인 리전으로 설정됩니다. 이 블루프린트에서 Amazon Rekognition 서비스에 레벨에 대한 최소 수준의 신뢰도가 있는 경우 Amazon S3 객체에만 태그를 추가합니다. 이 생성자는 `MinConfidence` 환경 변수를 확인하여 허용되는 신뢰도 수준을 결정합니다. Lambda 함수를 배포할 때 이 환경 변수를 설정할 수 있습니다.

다음은 `Function.cs`의 첫 번째 클래스 생성자의 예입니다.

```
public Function()
{
    this.S3Client = new AmazonS3Client();
    this.RekognitionClient = new AmazonRekognitionClient();

    var environmentMinConfidence = System.Environment.GetEnvironmentVariable(MIN_CONFIDENCE_ENVIRONMENT_VARIABLE_NAME);
    if(!string.IsNullOrWhiteSpace(environmentMinConfidence))
    {
        float value;
        if(float.TryParse(environmentMinConfidence, out value))
        {
            this.MinConfidence = value;
            Console.WriteLine($"Setting minimum confidence to {this.MinConfidence}");
        }
        else
        {
            Console.WriteLine($"Failed to parse value {environmentMinConfidence} for minimum confidence. Reverting back to default of {this.MinConfidence}");
        }
    }
    else
    {
        Console.WriteLine($"Using default minimum confidence of {this.MinConfidence}");
    }
}
```

다음 예제에서는 두 번째 생성자를 테스트에 활용하는 방법을 보여줍니다. 테스트 프로젝트는 고유한 S3 및 Rekognition 클라이언트를 구성하여 전달합니다.

```
public Function(IAmazonS3 s3Client, IAmazonRekognition rekognitionClient, float minConfidence)
{
    this.S3Client = s3Client;
    this.RekognitionClient = rekognitionClient;
    this.MinConfidence = minConfidence;
}
```

다음은 `Function.cs` 파일 내 `FunctionHandler` 메서드의 예입니다.

```
public async Task FunctionHandler(S3Event input, ILambdaContext context)
{
    foreach(var record in input.Records)
    {
        if(!SupportedImageTypes.Contains(Path.GetExtension(record.S3.Object.Key)))
        {
            Console.WriteLine($"Object {record.S3.Bucket.Name}:{record.S3.Object.Key} is not a supported image type");
            continue;
        }

        Console.WriteLine($"Looking for labels in image {record.S3.Bucket.Name}:{record.S3.Object.Key}");
        var detectResponses = await this.RekognitionClient.DetectLabelsAsync(new DetectLabelsRequest
        {
            MinConfidence = MinConfidence,
            Image = new Image
            {
                S3Object = new Amazon.Rekognition.Model.S3Object
                {
                    Bucket = record.S3.Bucket.Name,
                    Name = record.S3.Object.Key
                }
            }
        });

        var tags = new List();
        foreach(var label in detectResponses.Labels)
        {
            if(tags.Count < 10)
            {
                Console.WriteLine($"\tFound Label {label.Name} with confidence {label.Confidence}");
                tags.Add(new Tag { Key = label.Name, Value = label.Confidence.ToString() });
            }
            else
            {
                Console.WriteLine($"\tSkipped label {label.Name} with confidence {label.Confidence} because maximum number of tags reached");
            }
        }

        await this.S3Client.PutObjectTaggingAsync(new PutObjectTaggingRequest
        {
            BucketName = record.S3.Bucket.Name,
            Key = record.S3.Object.Key,
            Tagging = new Tagging
            {
                TagSet = tags
            }
        });
    }
    return;
}
```

 `FunctionHandler`는 인스턴스를 구성한 후 Lambda가 호출하는 메서드입니다. 입력 파라미터는 `S3Event`이 아닌 `Stream` 유형이어야 합니다. 등록된 Lambda JSON 직렬 변환기로 인해 이를 수행할 수 있습니다. `S3Event`에는 Amazon S3에서 트리거된 이벤트에 대한 모든 정보가 포함되어 있습니다. 함수는 이벤트의 일부인 모든 S3 객체를 통해 반복하며 Rekognition에 레이블을 감지하라고 알려줍니다. 레이블이 감지되면 태그로 S3 객체에 추가됩니다.

**참고**  
코드에는 `Console.WriteLine()`에 대한 직접 호출이 포함됩니다. Lambda에서 함수가 실행되면 `Console.WriteLine()`에 대한 모든 호출이 Amazon CloudWatch Logs로 리디렉션됩니다.

### 2. aws-lambda-tools-defaults.json
<a name="toolsdefaults"></a>

`aws-lambda-tools-defaults.json` 파일에는 배포 마법사의 일부 필드를 채우도록 블루프린트가 설정한 기본값이 포함되어 있습니다. 이는 .NET Core CLI와의 통합을 통해 명령줄 옵션을 설정할 때에도 유용합니다.

.NET Core CLI 통합에 액세스하려면 함수의 프로젝트 디렉터리로 이동하여 **dotnet lambda help**를 입력합니다.

**참고**  
함수 핸들러는 간접 호출된 함수에 대한 응답으로 Lambda가 직접 호출할 메서드를 나타냅니다. 이 필드의 형식은 `<assembly-name>::<full-type-name>::<method-name>`입니다. 유형 이름과 함께 네임스페이스를 포함해야 합니다.

## 함수 배포
<a name="deploy-the-function"></a>

다음 절차에서는 Lambda 함수를 배포하는 방법을 설명합니다.

1. **솔루션 탐색**기에서 Lambda 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 ** AWS Lambda에 게시**를 선택하여 **업로드 AWS Lambda** 대상 창을 엽니다.
**참고**  
사전 설정 값은 `aws-lambda-tools-defaults.json` 파일에서 검색됩니다.

1. ** AWS Lambda에 업로드** 창에서 **함수 이름** 필드에 이름을 입력한 후 **다음** 버튼을 선택하여 **고급 함수 세부 정보** 창으로 이동합니다.
**참고**  
이 예에서는 **함수 이름** **ImageRekognition**을 사용합니다.  
![\[AWS Lambda function upload interface with package type, runtime, and configuration options.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/lambda-upload-imgrek-03192024.png)

1. **고급 함수 세부 정보** 창에서 Amazon S3 및 Amazon Rekognition 리소스에 액세스할 수 있는 권한을 코드에 부여하는 IAM 역할을 선택합니다.
**참고**  
이 예제와 함께 따르는 경우 `AWSLambda_FullAccess` 역할을 선택합니다.

1. 환경 변수 `MinConfidence`를 60으로 설정한 다음 **업로드**를 선택하여 배포 프로세스를 시작합니다. **함수** 보기가 **AWS 탐색기**에 표시되면 게시 프로세스가 완료된 것입니다.  
![\[AWS Lambda function configuration interface showing permissions, execution, and environment settings.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/lambda-upload-imgrek-advanced-03192024.png)

1. 배포가 성공하면 **이벤트 소스** 탭으로 이동하여 새 함수로 이벤트를 보내도록 Amazon S3를 구성합니다.

1. **이벤트 소스** 탭에서 **추가** 버튼을 선택한 다음 Lambda 함수에 연결할 Amazon S3 버킷을 선택합니다.
**참고**  
버킷은 Lambda 함수와 동일한 AWS 리전에 있어야 합니다.

## 함수 테스트
<a name="test-the-function"></a>

함수가 배포되고 S3 버킷이 함수에 대한 이벤트 소스로 구성되면 선택한 버킷에 대해 **AWS 탐색기**에서 S3 버킷 브라우저를 엽니다. 그런 다음 일부 이미지를 업로드합니다.

업로드가 완료되면 함수 보기에서 로그를 살펴 함수가 실행되었는지를 확인할 수 있습니다. 또는 버킷 브라우저의 이미지를 마우스 오른쪽 버튼으로 클릭하고 **속성**을 선택합니다. **태그** 탭에서는 객체에 적용된 태그를 볼 수 있습니다.

![\[Properties window showing metadata tags for an image file in a cloud storage bucket.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/lambda-object-properties.png)


# 자습서:에서 Amazon Logging Frameworks AWS Lambda 를 사용하여 애플리케이션 로그 생성
<a name="cw-log-frameworks"></a>

Amazon CloudWatch Logs를 사용하여 애플리케이션의 로그를 모니터링, 저장 및 액세스할 수 있습니다. CloudWatch Logs로 로그 데이터를 가져오려면 AWS SDK를 사용하거나 CloudWatch Logs 에이전트를 설치하여 특정 로그 폴더를 모니터링합니다. CloudWatch Logs는 널리 사용되는 여러 .NET 로깅 프레임워크와 통합되어 워크플로를 간소화합니다.

CloudWatch Logs 및 .NET 로깅 프레임워크 작업을 시작하려면 애플리케이션에 적절한 NuGet 패키지 및 CloudWatch Logs 출력 소스를 추가한 다음 평소와 같이 로깅 라이브러리를 사용합니다. 이렇게 하면 애플리케이션이 .NET 프레임워크로 메시지를 로깅하여 CloudWatch Logs로 전송하고 CloudWatch Logs 콘솔에 애플리케이션의 로그 메시지를 표시할 수 있습니다. 또한 CloudWatch Logs 콘솔에서 애플리케이션의 로그 메시지에 따라 지표 및 경보도 설정할 수 있습니다.

지원되는 .NET 로깅 프레임워크에는 다음이 포함됩니다.
+ **NLog**: 보려면 [nuget.org NLog 패키지](https://www.nuget.org/packages/AWS.Logger.NLog)를 참조합니다.
+ **Log4net**: 보려면 [nuget.org Log4net 패키지](https://www.nuget.org/packages/AWS.Logger.NLog)를 참조합니다.
+ **ASP.NET Core 로깅 프레임워크**: 보려면 [nuget.org ASP.NET Core 로깅 프레임워크 패키지](https://www.nuget.org/packages/AWS.Logger.AspNetCore/)를 참조합니다.

다음은 `AWS.Logger.NLog` NuGet 패키지 및 AWS 대상을에 추가하여 CloudWatch Logs와 콘솔을 모두 로그 메시지의 출력으로 활성화하는 `NLog.config` 파일의 예입니다`NLog.config`.

```
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      throwExceptions="true">
  <targets>
    <target name="aws" type="AWSTarget" logGroup="NLog.ConfigExample" region="us-east-1"/>
    <target name="logfile" xsi:type="Console" layout="${callsite} ${message}" />
  </targets>
  <rules>
    <logger name="*" minlevel="Info" writeTo="logfile,aws" />
  </rules>
</nlog>
```



로깅 플러그인은 모두를 기반으로 빌드되며 SDK AWS SDK for .NET 와 유사한 프로세스에서 자격 AWS 증명을 인증합니다. 다음 예제에서는 CloudWatch Logs에 액세스하기 위해 로깅 플러그인 자격 증명에 필요한 권한을 자세히 설명합니다.

**참고**  
 AWS .NET 로깅 플러그인은 오픈 소스 프로젝트입니다. 추가 정보, 샘플 및 지침은 [AWS 로깅 .NET GitHub](https://github.com/aws/aws-logging-dotnet) 리포지토리의 [샘플](https://github.com/aws/aws-logging-dotnet/tree/master/samples) 및 [지침](https://github.com/aws/aws-logging-dotnet/blob/master/README.md) 주제를 참조하세요.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogGroups"
      ],
      "Resource": [
        "arn:aws:logs:*:*:*"
      ]
    }
  ]
}
```

------