

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

# GitHub Enterprise Server 연결
<a name="connections-ghes"></a>

연결을 사용하면 타사 공급자를 AWS 리소스와 연결하는 구성을 승인하고 설정할 수 있습니다. 타사 리포지토리를 파이프라인의 소스로 연결하려면 연결을 사용합니다.

**참고**  
계정에서 기존 연결을 생성하거나 사용하는 대신 다른 AWS 계정간에 공유 연결을 사용할 수 있습니다. [다른 계정과 공유하는 연결 사용](connections-shared.md)을(를) 참조하세요.

**참고**  
아시아 태평양(홍콩), 아시아 태평양(하이데라바드), 아시아 태평양(자카르타), 아시아 태평양(멜버른), 아시아 태평양(오사카), 아프리카(케이프타운), 중동(바레인), 중동(UAE), 유럽(스페인), 유럽(취리히), 이스라엘(텔아비브) 또는 AWS GovCloud(미국 서부) 리전에서는이 기능을 사용할 수 없습니다. 사용 가능한 다른 작업을 참조하려면 [CodePipeline과 제품 및 서비스 통합](integrations.md)을 참조하세요. 유럽(밀라노) 리전에서 이 조치를 고려할 경우 [Bitbucket Cloud, GitHub, GitHub Enterprise Server, GitLab.com 및 GitLab 자체 관리형 작업용 CodeStarSourceConnection](action-reference-CodestarConnectionSource.md)의 참고 사항을 참조하세요.

CodePipeline에 GitHub Enterprise Server 소스 작업을 추가하려면 다음 중 하나를 선택할 수 있습니다.
+ CodePipeline 콘솔 **파이프라인 생성** 마법사 또는 **작업 편집** 페이지를 사용하여 **GitHub Enterprise Server** 공급자 옵션을 선택합니다. 작업을 추가하려면 [GitHub Enterprise Server에 대한 연결 생성(콘솔)](#connections-ghes-console)을 참조하세요. 콘솔을 사용하면 호스트 리소스와 연결 리소스를 만들 수 있습니다.
+ CLI를 사용하여 `GitHubEnterpriseServer` 공급자와 함께 `CreateSourceConnection` 작업에 대한 작업 구성을 추가하고 리소스를 생성합니다.
  + 연결 리소스를 생성하려면 [GitHub Enterprise Server에 대한 연결 및 호스트 생성(CLI)](#connections-ghes-cli)을 참조하여 CLI를 사용하여 호스트 리소스 및 연결 리소스를 생성합니다.
  + [Bitbucket Cloud, GitHub, GitHub Enterprise Server, GitLab.com 및 GitLab 자체 관리형 작업용 CodeStarSourceConnection](action-reference-CodestarConnectionSource.md)의 `CreateSourceConnection` 예제 작업 구성을 사용하여 [파이프라인 생성(CLI)](pipelines-create.md#pipelines-create-cli)과 같이 작업을 추가합니다.

**참고**  
**설정**의 개발자 도구 콘솔을 사용하여 연결을 생성할 수도 있습니다. [연결 생성](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create.html)을 참조하세요.

시작하기 전:
+ GitHub Enterprise Server에 계정을 생성하고 인프라에 GitHub Enterprise Server 인스턴스를 설치해야 합니다.
**참고**  
각 VPC는 한 번에 하나의 호스트(GitHub 엔터프라이즈 서버 인스턴스)에만 연결 가능합니다.
+ GitHub Enterprise Server가 있는 코드 리포지토리가 생성되어 있어야 합니다.

**Topics**
+ [GitHub Enterprise Server에 대한 연결 생성(콘솔)](#connections-ghes-console)
+ [GitHub Enterprise Server에 대한 연결 및 호스트 생성(CLI)](#connections-ghes-cli)

## GitHub Enterprise Server에 대한 연결 생성(콘솔)
<a name="connections-ghes-console"></a>

다음 단계를 사용하여 CodePipeline 콘솔을 사용하여 GitHub Enterprise Server 리포지토리에 연결 작업을 추가할 수 있습니다.

**참고**  
GitHub Enterprise Server 연결은 연결을 만드는 데 사용된 GitHub Enterprise Server 계정이 소유한 리포지토리에 대한 액세스 권한만 제공합니다.

**시작하기 전:**

GitHub Enterprise Server에 대한 호스트 연결의 경우 연결에 대한 호스트 리소스를 생성하기 위한 단계를 완료해야 합니다. [연결을 위한 호스트 관리](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-hosts.html)를 참조하세요.

### 1단계: 파이프라인 생성 또는 편집
<a name="connections-ghes-console-action"></a>

**파이프라인을 생성 또는 편집하려면**

1. CodePipeline 콘솔에 로그인합니다.

1. 다음 중 하나를 선택합니다.
   + 파이프라인을 생성하려면 선택합니다. 파이프라인 생성의 단계에 따라 첫 화면을 완료하고 **다음**을 선택합니다.** **소스** 페이지의 **소스 공급자**에서 **GitHub Enterprise Server**를 선택합니다.
   + 기존 파이프라인을 편집하려면 선택합니다. **편집**을 선택하고 **단계 편집**을 선택합니다. 소스 작업을 추가 또는 편집하려면 선택합니다. **작업 편집** 페이지의 **작업 이름**에 작업 이름을 입력합니다. **작업 공급자**에서 **GitHub Enterprise Server**를 선택합니다.

1. 다음 중 하나를 수행하세요.
   + **연결**에서 공급자와의 연결을 아직 생성하지 않은 경우 **GitHub Enterprise Server에 연결**을 선택합니다. 2단계: GitHub Enterprise Server에 대한 연결 생성으로 이동합니다.
   + **연결**에서 공급자와의 연결을 이미 생성한 경우 연결을 선택합니다. 3단계: 연결에 대한 소스 작업 저장으로 이동합니다.

### GitHub Enterprise Server에 대한 연결 생성
<a name="connections-ghes-console-create"></a>

연결을 생성하도록 선택하면 **GitHub Enterprise Server에 연결** 페이지가 표시됩니다.

**중요**  
AWS CodeConnections 는 릴리스에서 알려진 문제로 인해 GitHub Enterprise Server 버전 2.22.0을 지원하지 않습니다. 연결하려면 버전 2.22.1 또는 사용 가능한 최신 버전으로 업그레이드하세요.

**GitHub Enterprise Server에 연결하려면**

1. [**연결 이름(Connection name)**]에 연결 이름을 입력합니다.

1. [**URL**]에 서버의 엔드포인트를 입력합니다.
**참고**  
제공된 URL이 연결을 위해 GitHub Enterprise Server를 설정하는 데 이미 사용된 경우, 해당 엔드포인트에 대해 이전에 생성된 호스트 리소스 ARN을 선택하라는 메시지가 표시됩니다.

1. Amazon VPC로 서버를 시작한 후 VPC에 연결하려는 경우 [**VPC 사용(Use a VPC)**]을 선택하고 다음을 완료합니다.

   1. [**VPC ID**]에서 VPC ID를 선택합니다. GitHub Enterprise Server 인스턴스가 설치된 인프라의 VPC를 선택하거나 VPN 또는 Direct Connect를 통해 GitHub Enterprise Server 인스턴스에 액세스할 수 있는 VPC를 선택해야 합니다.

   1. [**서브넷 ID(Subnet ID)**]를 선택하고 [**추가(Add)**]를 선택합니다. 해당 필드에서 호스트에 사용할 서브넷 ID를 선택합니다. 서브넷은 최대 10개까지 선택할 수 있습니다.

      GitHub Enterprise Server 인스턴스가 설치된 인프라의 서브넷를 선택하거나 VPN 또는 Direct Connect를 통해 설치된 GitHub Enterprise Server 인스턴스에 액세스할 수 있는 서브넷을 선택해야 합니다.

   1. [**보안 그룹 ID(Security group IDs)**]에서 [**추가(Add)**]를 선택합니다. 해당 필드에서 호스트에 사용할 보안 그룹을 선택합니다. 보안 그룹은 최대 10개까지 선택할 수 있습니다.

      GitHub Enterprise Server 인스턴스가 설치된 인프라의 보안 그룹을 선택하거나 VPN 또는 Direct Connect를 통해 설치된 GitHub Enterprise Server 인스턴스에 액세스할 수 있는 보안 그룹을 선택해야 합니다.

   1. 프라이빗 VPC 가 구성되어 있고 퍼블릭이 아닌 인증 기관을 사용하여 TLS 검증을 수행하도록 GitHub Enterprise Server 인스턴스를 구성한 경우 [**TLS 인증서(TLS certificate)**]에 인증서 ID를 입력합니다. TLS 인증서 값은 인증서의 퍼블릭 키여야 합니다.  
![\[VPC 옵션의 GitHub Enterprise Server 연결 생성 페이지를 보여주는 콘솔 스크린샷입니다.\]](http://docs.aws.amazon.com/ko_kr/codepipeline/latest/userguide/images/connections-create-ghes-screen-vpc.png)

1. [**GitHub Enterprise Server Server에 연결(Connect to GitHub Enterprise Server)**]을 선택합니다. 생성된 연결은 [**대기 중(Pending)**] 상태로 표시됩니다. 사용자가 제공한 서버 정보를 사용하여 연결을 위한 호스트 리소스가 생성됩니다. 호스트 이름으로 URL이 사용됩니다.

1. [**보류 중인 연결을 업데이트(Update pending connection)**]를 선택합니다.

1. 메시지가 표시되면 GitHub Enterprise 로그인 페이지에서 GitHub Enterprise 자격 증명으로 로그인합니다.

1. [**GitHub 앱 생성(Create GitHub App)**] 페이지에서 앱의 이름을 선택합니다.

1. GitHub 승인 페이지에서 [**<app-name> 승인(Authorize <app-name>)**]을 선택합니다.

1. 앱 설치 페이지에, 커넥터 앱을 설치할 준비가 되었다는 메시지가 표시됩니다. 여러 조직이 있는 경우 앱을 설치할 조직을 선택하라는 메시지가 표시될 수 있습니다.

   앱을 설치할 리포지토리 설정을 선택합니다. **설치**를 선택합니다.

1. 연결 페이지에 생성된 연결이 [**사용 가능(Available)**] 상태로 표시됩니다.

### 3단계: GitHub Enterprise Server 소스 작업 저장
<a name="connections-ghes-console-save"></a>

마법사 또는 **작업 편집** 페이지에서 다음 단계를 사용하여 소스 작업을 연결 정보와 함께 저장합니다.

**연결을 통해 소스 작업을 완료하고 저장하려면**

1. **리포지토리 이름**에서 타사 리포지토리의 이름을 선택합니다.

1. 작업이 CodeConnections 작업인 경우 **파이프라인 트리거**에서 트리거를 추가할 수 있습니다. 파이프라인 트리거 구성을 구성하고 선택적으로 트리거로 필터링하려면 [코드 푸시 또는 풀 요청 이벤트 유형을 사용하여 트리거 추가](pipelines-filter.md)에서 자세한 내용을 참조하세요.

1. **Output artifact format(출력 아티팩트 형식)**에서 아티팩트의 형식을 선택해야 합니다.
   + 기본 방법을 사용하여 GitHub Enterprise Server 작업의 출력 아티팩트를 저장하려면 **CodePipeline 기본 방법**을 선택합니다. 그러면 GitHub Enterprise Server 리포지토리의 파일에 액세스하여 파이프라인 아티팩트 스토어에 ZIP 파일로 아티팩트가 저장됩니다.
   + 다운스트림 작업이 Git 명령을 직접 수행할 수 있도록 리포지토리에 대한 URL 참조가 포함된 JSON 파일을 저장하려면 **Full clone(전체 복제)**을 선택합니다. 이 옵션은 CodeBuild 다운스트림 작업에서만 사용할 수 있습니다.

1. 마법사에서 **다음**을 선택하거나 **작업 편집** 페이지에서 **저장**을 선택합니다.

## GitHub Enterprise Server에 대한 연결 및 호스트 생성(CLI)
<a name="connections-ghes-cli"></a>

 AWS Command Line Interface (AWS CLI)를 사용하여 연결을 생성할 수 있습니다.

이렇게 하려면 **create-connection** 명령을 사용합니다.

**중요**  
 AWS CLI 또는를 통해 생성된 연결 AWS CloudFormation 은 기본적으로 `PENDING` 상태입니다. CLI 또는 와의 연결을 생성한 후 콘솔을 CloudFormation사용하여 연결을 편집하여 상태를 로 설정합니다`AVAILABLE`.

 AWS Command Line Interface (AWS CLI)를 사용하여 설치된 연결을 위한 호스트를 생성할 수 있습니다.

**참고**  
GitHub Enterprise Server 계정별로 한 번만 호스트를 생성합니다. 특정 GitHub Enterprise Server 계정에 대한 모든 연결은 동일한 호스트를 사용합니다.

호스트를 사용하여 서드 파티 공급자가 설치된 인프라의 엔드포인트를 나타냅니다. CLI를 사용하여 호스트 생성을 완료하면 호스트가 **보류 중** 상태입니다. 그러면 호스트를 설정 또는 등록하여 **사용 가능** 상태로 전환합니다. 호스트를 사용할 수 있게 되면 연결을 생성하는 단계를 완료합니다.

이렇게 하려면 **create-host** 명령을 사용합니다.

**중요**  
를 통해 생성된 호스트 AWS CLI 는 기본적으로 `Pending` 상태입니다. CLI를 사용하여 호스트를 생성한 후 콘솔 또는 CLI를 통해 호스트를 설정하여 호스트를 상태를 `Available`로 전환합니다.

**호스트를 생성하는 방법**

1. 터미널(Linux, macOS, Unix) 또는 명령 프롬프트(Windows)를 엽니다. AWS CLI 를 사용하여 연결을 `--provider-endpoint` 위해 `--name`, `--provider-type`및를 지정하여 **create-host** 명령을 실행합니다. 이 예제에서 서드 파티 공급자 이름은 `GitHubEnterpriseServer`이고 엔드포인트는 `my-instance.dev`입니다.

   ```
   aws codestar-connections create-host --name MyHost --provider-type GitHubEnterpriseServer --provider-endpoint "https://my-instance.dev"
   ```

   이 명령이 제대로 실행되면 다음과 비슷한 호스트 Amazon 리소스 이름(ARN) 정보가 반환됩니다.

   ```
   {
       "HostArn": "arn:aws:codestar-connections:us-west-2:account_id:host/My-Host-28aef605"
   }
   ```

   이 단계가 끝나면 호스트는 `PENDING` 상태입니다.

1. 콘솔을 사용하여 호스트 설정을 완료하고 호스트를 `Available` 상태로 전환합니다.

**GitHub Enterprise Server에 대한 연결을 생성하려면**

1. 터미널(Linux, macOS, Unix) 또는 명령 프롬프트(Windows)를 엽니다. AWS CLI 를 사용하여 연결을 `--connection-name` 위해 `--host-arn` 및를 지정하여 **create-connection** 명령을 실행합니다.

   ```
   aws codestar-connections create-connection --host-arn arn:aws:codestar-connections:us-west-2:account_id:host/MyHost-234EXAMPLE --connection-name MyConnection
   ```

   이 명령이 제대로 실행되면 다음과 비슷한 연결 ARN 정보가 반환됩니다.

   ```
   {
       "ConnectionArn": "arn:aws:codestar-connections:us-west-2:account_id:connection/aEXAMPLE-8aad"
   }
   ```

1. 콘솔을 사용하여 보류 중인 연결을 설정합니다.

1. 파이프라인은 기본적으로 연결 소스 리포지토리로 코드를 푸시할 때 변경 사항을 감지합니다. 수동 릴리스 또는 Git 태그에 대한 파이프라인 트리거 구성을 구성하려면 다음 중 하나를 수행합니다.
   + 수동 릴리스로만 시작하도록 파이프라인 트리거 구성을 구성하려면 구성에 다음 줄을 추가하세요.

     ```
     "DetectChanges": "false",
     ```
   + 트리거로 필터링하도록 파이프라인 트리거 구성을 구성하려면 [코드 푸시 또는 풀 요청 이벤트 유형을 사용하여 트리거 추가](pipelines-filter.md)에서 자세한 내용을 참조하세요. 예를 들어, 다음은 파이프라인 JSON 정의의 파이프라인 수준에 추가됩니다. 이 예제에서, `release-v0` 및 `release-v1`은 포함할 Git 태그이고 `release-v2`는 제외할 Git 태그입니다.

     ```
     "triggers": [
                 {
                     "providerType": "CodeStarSourceConnection",
                     "gitConfiguration": {
                         "sourceActionName": "Source",
                         "push": [
                             {
                                 "tags": {
                                     "includes": [
                                         "release-v0", "release-v1"
                                     ],
                                     "excludes": [
                                         "release-v2"
                                     ]
                                 }
                             }
                         ]
                     }
                 }
             ]
     ```