

 AWS Cloud9 는 더 이상 신규 고객이 사용할 수 없습니다. AWS Cloud9 의 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. [자세히 알아보기](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

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

# AWS CodeCommit 에 대한 자습서 AWS Cloud9
<a name="sample-codecommit"></a>

자습서를 사용하여 CodeCommit의 원격 코드 AWS CodeCommit 리포지토리와 상호 작용하도록 AWS Cloud9 개발 환경을 설정할 수 있습니다. CodeCommit은 AWS 클라우드에 Git 리포지토리를 비공개로 저장하고 관리하는 데 사용할 수 있는 소스 코드 제어 서비스입니다. CodeCommit에 대한 자세한 내용은 [AWS CodeCommit 사용 설명서](https://docs.aws.amazon.com/codecommit/latest/userguide/)를 참조하세요.

이 자습서를 따르고이 샘플을 생성하면 요금이 발생할 수 있습니다 AWS 계정. 여기에는 Amazon EC2 및 CodeCommit 같은 서비스에 대한 발생할 수 있는 요금이 포함됩니다. 자세한 내용은 [Amazon EC2 요금](https://aws.amazon.com/ec2/pricing/) 및 [AWS CodeCommit 요금](https://aws.amazon.com/codecommit/pricing/)을 참조하세요.
+  [사전 조건](#sample-codecommit-prereqs) 
+  [1단계: 필요한 액세스 권한을 사용하여 IAM 그룹 설정](#sample-codecommit-permissions) 
+  [2단계:에서 리포지토리 생성 AWS CodeCommit](#sample-codecommit-create-repo) 
+  [3단계: 원격 리포지토리에 환경을 연결](#sample-codecommit-connect-repo) 
+  [4단계: 원격 리포지토리를 환경에 복제](#sample-codecommit-clone-repo) 
+  [5단계: 리포지토리에 파일 추가](#sample-codecommit-add-files) 
+  [6단계: 정리](#sample-codecommit-clean-up) 

## 사전 조건
<a name="sample-codecommit-prereqs"></a>

이 샘플을 사용하기 전에 설정이 다음 요구 사항을 충족하는지 확인하세요.
+ **기존 AWS Cloud9 EC2 개발 환경이 있어야 합니다.** 이 샘플에서는 Amazon Linux 또는 Ubuntu 서버를 실행 중인 Amazon EC2 인스턴스에 연결된 EC2 환경이 이미 있다고 가정합니다. 다른 환경 또는 운영 시스템이라면 이 샘플 지침을 관련 도구를 설치하는 데에 적용해야 합니다. 자세한 내용은 [에서 환경 생성 AWS Cloud9](create-environment.md) 단원을 참조하십시오.
+ **기존 환경의 AWS Cloud9 IDE가 이미 열려 있습니다.** 환경을 열면가 웹 브라우저에서 해당 환경의 IDE를 AWS Cloud9 엽니다. 자세한 내용은 [에서 환경 열기 AWS Cloud9](open-environment.md) 단원을 참조하십시오.

## 1단계: 필요한 액세스 권한을 사용하여 IAM 그룹 설정
<a name="sample-codecommit-permissions"></a>

자격 AWS 증명이의 관리자 사용자와 연결되어 AWS 계정있고 해당 사용자를 사용하여 CodeCommit으로 작업하려는 경우에서 [2단계: 리포지토리 생성으로 AWS CodeCommit](#sample-codecommit-create-repo)건너뜁니다.

이 단계는 [AWS Management Console](#sample-codecommit-permissions-console) 또는 [AWS 명령줄 인터페이스(AWS CLI)](#sample-codecommit-permissions-cli)를 사용하여 완료할 수 있습니다.

### 콘솔을 사용하여 필요한 액세스 권한으로 IAM 그룹 설정
<a name="sample-codecommit-permissions-console"></a>

1. 아직 로그인하지 않은 경우 AWS Management Console에 로그인합니다.

   이 단계에서는 AWS 계정의 관리자 사용자에 대한 보안 인증 정보를 사용하여 로그인하는 것이 좋습니다. 이렇게 할 수 없으면 AWS 계정 관리자에게 문의하세요.

1. IAM 콘솔을 엽니다. 이렇게 하려면 콘솔의 탐색 모음에서 **서비스**를 선택합니다. 그런 다음, **IAM**을 선택합니다.

1. **그룹**을 선택합니다.

1. 그룹의 이름을 선택합니다.

1. **권한** 탭의 **관리형 정책**에서 **정책 연결**을 선택합니다.

1. 정책 이름 목록에서 다음 상자 중 하나를 선택합니다.
   + CodeCommit 및 리포지토리 관련 리소스의 모든 기능에 액세스하려면 **AWS CodeCommitPowerUser**를 선택하세요. 그러나 이렇게 하면 CodeCommit 리포지토리를 삭제하거나 Amazon CloudWatch Events AWS 서비스와 같은 다른에서 리포지토리 관련 리소스를 생성하거나 삭제할 수 없습니다.
   + 에서 CodeCommit 리포지토리 및 관련 리소스를 완전히 제어하려면 **AWSCodeCommitFullAccess**를 선택합니다 AWS 계정. 여기에는 리포지토리 삭제 기능이 포함됩니다.

   목록에서 이러한 정책 이름 중 하나가 보이지 않으면 표시할 정책 이름을 **Filter**(필터) 상자에 입력합니다.

1. **정책 연결**을 선택합니다.

이러한 AWS 관리형 정책이 그룹에 부여하는 액세스 권한 목록을 보려면 *AWS CodeCommit 사용 설명서*의에 [AWS 대한 관리형(미리 정의된) 정책을 AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html#managed-policies) 참조하세요.

[2단계:에서 리포지토리 생성으로 AWS CodeCommit](#sample-codecommit-create-repo) 건너뜁니다.

### 를 사용하여 필요한 액세스 권한으로 IAM 그룹 설정 AWS CLI
<a name="sample-codecommit-permissions-cli"></a>

필요한 액세스 권한을 설명하는 AWS 관리형 정책의 그룹 이름과 Amazon 리소스 이름(ARN)을 지정하여 IAM `attach-group-policy` 명령을 실행합니다. 구문은 다음과 같습니다.

```
aws iam attach-group-policy --group-name MyGroup --policy-arn POLICY_ARN
```

앞의 명령에서 `MyGroup`을 그룹의 이름으로 바꿉니다. 를 AWS 관리형 정책의 ARN`POLICY_ARN`으로 바꿉니다.
+  CodeCommit 및 리포지토리 관련 리소스의 모든 기능에 액세스하려면 `arn:aws:iam::aws:policy/AWSCodeCommitPowerUser`를 선택하세요. 그러나 CodeCommit 리포지토리를 삭제하거나 Amazon CloudWatch Events AWS 서비스와 같은 다른에서 리포지토리 관련 리소스를 생성하거나 삭제할 수 없습니다.
+  `arn:aws:iam::aws:policy/AWSCodeCommitFullAccess`에서 CodeCommit 리포지토리 및 관련 리소스를 완전히 제어할 수 있습니다 AWS 계정. 여기에는 리포지토리 삭제 기능이 포함됩니다.

이러한 AWS 관리형 정책이 그룹에 부여하는 액세스 권한 목록을 보려면 *AWS CodeCommit 사용 설명서*의에 [AWS 대한 관리형(미리 정의된) 정책을 AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html#managed-policies) 참조하세요.

## 2단계: CodeCommit에서 리포지토리 생성
<a name="sample-codecommit-create-repo"></a>

이 단계에서는 CodeCommit 콘솔을 사용하여 CodeCommit에서 원격 코드 리포지토리를 생성합니다.

이미 CodeCommit 리포지토리가 있으면 [3단계: 원격 리포지토리를 환경에 연결](#sample-codecommit-connect-repo) 섹션으로 건너뜁니다.

이 단계는 [AWS Management Console](#sample-codecommit-create-repo-console) 또는 [AWS 명령줄 인터페이스(AWS CLI)](#sample-codecommit-create-repo-cli)를 사용하여 완료할 수 있습니다.

### 콘솔을 사용하여 CodeCommit에 리포지토리 생성
<a name="sample-codecommit-create-repo-console"></a>

1. 이전 단계에서 관리자 사용자 AWS Management Console 로에 로그인했으며 관리자 사용자를 사용하여 리포지토리를 생성하지 않으려고 한다고 가정해 보겠습니다. 그런 다음에서 로그아웃합니다 AWS Management Console.

1. [https://console.aws.amazon.com/codecommit](https://console.aws.amazon.com/codecommit)에서 CodeCommit 콘솔을 엽니다.

1. 콘솔의 탐색 모음에서 리전 선택기를 사용하여 리포지토리를 생성할 AWS 리전 (예: **미국 동부(오하이오)**)을 선택합니다.

1. 시작 페이지가 표시되면 [**시작하기(Get started)**]를 선택합니다. 그렇지 않은 경우 [**리포지토리 생성(Create repository)**]을 선택합니다.

1. **Create repository**(리포지토리 생성) 페이지에서 **Repository name**(리포지토리 이름)에 새 리포지토리의 이름(예: `MyDemoCloud9Repo`)을 입력합니다. 다른 이름을 선택하는 경우 이 샘플 전체에서 해당 이름으로 바꿉니다.

1. (선택 사항) **Description**(설명)에 리포지토리에 관한 설명을 입력합니다. 예를 들면 다음과 같이 입력할 수 있습니다. `This is a demonstration repository for the AWS Cloud9 sample.` 

1. **리포지토리 생성**을 선택합니다. [**리포지토리에 연결(Connect to your repository)**] 창이 표시됩니다. 이 주제의 뒷부분에서 다른 방법으로 리포지토리에 연결하게 되므로 [**닫기(Close)**]를 선택합니다.

[3단계: 원격 리포지토리를 환경에 연결](#sample-codecommit-connect-repo) 섹션으로 진행합니다.

### 를 사용하여 CodeCommit에서 리포지토리 생성 AWS CLI
<a name="sample-codecommit-create-repo-cli"></a>

 AWS CodeCommit `create-repository` 명령을 실행합니다. 리포지토리의 이름, 선택적 설명 및 리포지토리 AWS 리전 를 생성할를 지정합니다.

```
aws codecommit create-repository --repository-name MyDemoCloud9Repo --repository-description "This is a demonstration repository for the AWS Cloud9 sample." --region us-east-2
```

앞의 명령에서 `us-east-2`를 리포지토리를 생성할 AWS 리전 의 ID로 바꿉니다. 지원되는 리전 목록은 **Amazon Web Services 일반 참조의 [AWS CodeCommit](https://docs.aws.amazon.com/general/latest/gr/rande.html#codecommit_region) 섹션을 참조하세요.

다른 이름을 사용하도록 선택하는 경우 이 샘플 전체에서 해당 이름으로 바꿉니다.

## 3단계: 원격 리포지토리에 환경을 연결
<a name="sample-codecommit-connect-repo"></a>

이 단계에서는 AWS Cloud9 IDE를 사용하여 이전 단계에서 생성하거나 식별한 CodeCommit 리포지토리에 연결합니다.

**참고**  
시각적 인터페이스를 통해 Git로 작업하는 것을 선호하는 경우 원격 리포지토리를 복제할 수 있습니다. 그런 다음, IDE에서 사용할 수 있는 [Git 패널](source-control-gitpanel.md) 기능을 사용하여 파일을 추가할 수 있습니다.

사용 중인 AWS Cloud9 개발 환경의 유형에 따라 다음 절차 중 하나를 완료합니다.


****  

|  **환경 유형**  |  **따라야 할 절차**  | 
| --- | --- | 
|  EC2 환경  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/cloud9/latest/user-guide/sample-codecommit.html)  | 
|  SSH 환경  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/cloud9/latest/user-guide/sample-codecommit.html)  | 

## 4단계: 원격 리포지토리를 환경에 복제
<a name="sample-codecommit-clone-repo"></a>

이 단계에서는 AWS Cloud9 IDE를 사용하여 CodeCommit의 원격 리포지토리를 환경에 복제합니다.

리포지토리를 복제하려면 **`git clone`** 명령을 실행합니다. `CLONE_URL`을 리포지토리의 클론 URL로 바꿉니다.

```
git clone CLONE_URL
```

EC2 환경의 경우 `https://`로 시작하는 HTTPS 복제 URL을 제공합니다. SSH 환경의 경우 `ssh://`로 시작하는 SSH 복제 URL을 제공합니다.

리포지토리의 전체 복제 URL을 가져오려면 *AWS CodeCommit 사용 설명서*[의 AWS CodeCommit 콘솔을 사용하여 리포지토리 세부 정보 보기를](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-view-repository-details.html#how-to-view-repository-details-console) 참조하세요.

리포지토리에 파일이 없으면 `You appear to have cloned an empty repository.`와 같은 경고 메시지가 표시됩니다. 이는 예상할 수 있는 경우입니다. 나중에 설명하겠습니다.

## 5단계: 리포지토리에 파일 추가
<a name="sample-codecommit-add-files"></a>

이 단계에서는 AWS Cloud9 환경에 복제된 리포지토리로 세 가지 간단한 파일을 생성합니다. 다음으로 복제된 저장소의 Git 스테이징 영역에 파일을 추가합니다. 마지막으로 준비된 파일을 커밋하고 커밋을 CodeCommit의 원격 리포지토리로 푸시합니다.

복제된 리포지토리의 이 위치에 파일이 이미 있는 경우 작업이 완료되었으며 이 샘플의 나머지 부분을 건너뛸 수 있습니다.

**리포지토리에 파일을 추가하려면**

1. 새 파일을 만듭니다. 메뉴 모음에서 **File(파일)**과 **New File(새 파일)**을 선택합니다.

1. 파일에 다음 콘텐츠를 입력한 다음 **파일**, **저장**을 선택하여 AWS Cloud9 환경의 `MyDemoCloud9Repo` 디렉터리`bird.txt`에 파일을 로 저장합니다.

   ```
   bird.txt
   --------
   Birds are a group of endothermic vertebrates, characterized by feathers,
   toothless beaked jaws, the laying of hard-shelled eggs, a high metabolic
   rate, a four-chambered heart, and a lightweight but strong skeleton.
   ```
**참고**  
이 파일을 올바른 디렉터리로 저장하는지 확인하려면 **Save As**(다른 이름으로 저장) 대화 상자에서 `MyDemoCloud9Repo` 폴더를 선택하세요. 그런 다음, **Folder**(폴더)에서 `/MyDemoCloud9Repo`이 표시되는지 확인합니다.

1. 이름이 `insect.txt` 및 `reptile.txt`인 파일을 다음과 같은 내용으로 두 개 더 만듭니다. `MyDemoCloud9Repo` 디렉터리에 파일을 저장합니다.

   ```
   insect.txt
   ----------
   Insects are a class of invertebrates within the arthropod phylum that
   have a chitinous exoskeleton, a three-part body (head, thorax, and abdomen),
   three pairs of jointed legs, compound eyes, and one pair of antennae.
   ```

   ```
   reptile.txt
   -----------
   Reptiles are tetrapod (four-limbed vertebrate) animals in the class
   Reptilia, comprising today's turtles, crocodilians, snakes,
   amphisbaenians, lizards, tuatara, and their extinct relatives.
   ```

1. 이 터미널에서는 **`cd`** 명령을 실행하여 `MyDemoCloud9Repo` 디렉터리로 바꿉니다.

   ```
   cd MyDemoCloud9Repo
   ```

1. **`git status`** 명령을 실행하여 파일이 `MyDemoCloud9Repo` 디렉터리에 성공적으로 저장되었는지 확인합니다. 두 개의 파일 모두 추적되지 않는 파일로 나열됩니다.

   ```
   Untracked files:
     (use "git add <file>..." to include in what will be committed)
   
           bird.txt
           insect.txt
           reptile.txt
   ```

1. **`git add`** 명령을 실행하여 파일을 Git 스테이징 지역에 추가합니다.

   ```
   git add --all
   ```

1. **`git status`** 명령을 다시 실행하여 파일이 Git 스테이징 지역에 성공적으로 추가되었는지 확인합니다. 변경 사항이 커밋되면 세 개 파일 모두가 나열됩니다.

   ```
   Changes to be committed:
     (use "git rm --cached <file>..." to unstage)
   
           new file:   bird.txt
           new file:   insect.txt
           new file:   reptile.txt
   ```

1. **`git commit`** 명령을 실행하여 스테이징된 파일을 커밋합니다.

   ```
   git commit -m "Added information about birds, insects, and reptiles."
   ```

1. **`git push`** 명령을 실행하여 CodeCommit에서 원격 리포지토리로 커밋을 푸시합니다.

   ```
   git push -u origin master
   ```

1. 파일이 성공적으로 푸시되었는지 확인합니다. 열려 있지 않은 경우 [https://console.aws.amazon.com/codecommit](https://console.aws.amazon.com/codecommit)에서 CodeCommit 콘솔을 엽니다.

1. 상단 탐색 모음의 오른쪽 가장자리 근처에서 리포지토리를 생성한 AWS 리전 를 선택합니다(예: **미국 동부(오하이오)**).

1. [**대시보드(Dashboard)**] 페이지에서 **MyDemoCloud9Repo**를 선택합니다. 세 개의 파일이 표시됩니다.

CodeCommit 리포지토리를 계속 실험하려면 *AWS CodeCommit 사용 설명서*에서 [리포지토리 콘텐츠 검색](https://docs.aws.amazon.com/codecommit/latest/userguide/getting-started-cc.html#getting-started-cc-browse)을 참조하세요.

Git에 익숙하지 않고 CodeCommit 리포지토리에 서툴다면 [Git 시도하기](https://try.github.io/)의 샘플 Git 리포지토리를 먼저 경험해보세요.

## 6단계: 정리
<a name="sample-codecommit-clean-up"></a>

이 샘플 사용을 완료한 AWS 계정 후에 요금이 계속 부과되지 않도록 하려면 CodeCommit 리포지토리를 삭제합니다. 지침은 *AWS CodeCommit 사용 설명서*의 [AWS CodeCommit 리포지토리 삭제](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-delete-repository.html)를 참조하세요.

또한 환경도 삭제해야 합니다. 지침에 대한 내용은 [환경 삭제](delete-environment.md)를 참조하십시오.