AWS CodeStar에서 프로젝트 만들기 - AWS CodeStar

2024년 7월 31일부터 AWS(Amazon Web Services)는 AWS CodeStar 프로젝트 생성 및 보기에 대한 지원을 중단합니다. 2024년 7월 31일 후에는 더 이상 AWS CodeStar 콘솔에 액세스하거나 새 프로젝트를 만들 수 없습니다. 하지만 소스 리포지토리, 파이프라인, 빌드를 포함하여 AWS CodeStar에서 생성한 AWS 리소스는 이번 변경의 영향을 받지 않고 계속 작동합니다. AWS CodeStar 이번 중단으로 인해 연결 및 AWS CodeStar 알림에는 영향을 미치지 않습니다.

 

작업을 추적하고, 코드를 개발하고, 애플리케이션을 빌드, 테스트 및 배포하려는 경우 Amazon CodeCatalyst는 간소화된 시작 프로세스와 소프트웨어 프로젝트를 관리할 수 있는 추가 기능을 제공합니다. Amazon CodeCatalyst의 기능요금에 대해 자세히 알아보십시오.

AWS CodeStar에서 프로젝트 만들기

AWS CodeStar 콘솔을 사용하여 프로젝트를 만듭니다. 프로젝트 템플릿을 사용하면 사용자에게 필요한 리소스가 설정됩니다. 템플릿에는 코딩을 시작하는 데 도움이 되는 샘플 코드도 포함돼 있습니다.

프로젝트를 만들려면 AWSCodeStarFullAccess 정책이 있거나 이와 동등한 권한이 있는 사용자로 AWS Management Console에 로그인합니다. 자세한 내용은 AWS CodeStar 설정 섹션을 참조하세요.

참고

이 주제의 절차를 완료하려면 먼저 AWS CodeStar 설정 단원의 단계를 완료해야 합니다.

AWS CodeStar에서 프로젝트 생성(콘솔)

AWS CodeStar 콘솔을 사용하여 프로젝트를 만듭니다.

AWS CodeStar에서 프로젝트를 만들려면
  1. 그런 다음 AWS Management Console에 로그인하고 https://console.aws.amazon.com/glue/에서 AWS CodeStar 콘솔을 열 수 있습니다.

    프로젝트 및 그 리소스를 만들려는 AWS 리전에 로그인해야 합니다. 예를 들어 미국 동부(오하이오)에서 프로젝트를 만들려면 해당 AWS 리전을 선택해야 합니다. AWS CodeStar이 지원되는 AWS 리전에 대한 자세한 내용은 AWS 일반 참조리전 및 엔드포인트를 참조하세요.

  2. AWS CodeStar 페이지에서 프로젝트 생성을 선택합니다.

  3. 프로젝트 템플릿 선택 페이지의 AWS CodeStar 프로젝트 템플릿 목록에서 프로젝트 유형을 선택합니다. 필터 막대를 사용하여 선택 범위를 좁힐 수 있습니다. 예를 들어 Amazon EC2 인스턴스에 배포할 Node.js로 작성된 웹 애플리케이션 프로젝트의 경우 웹 애플리케이션, Node.js, Amazon EC2 확인란을 선택합니다. 그런 다음 해당 옵션 세트에 사용 가능한 템플릿 중에서 선택합니다.

    자세한 내용은 AWS CodeStar 프로젝트 템플릿 섹션을 참조하세요.

  4. 다음을 선택합니다.

  5. 프로젝트 이름 텍스트 입력 필드에 프로젝트 이름(예: My First Project)을 입력합니다. 프로젝트 ID에서 프로젝트 ID는 이 프로젝트 이름에서 파생되지만, 15자로 제한됩니다.

    예를 들어 My First Project라는 프로젝트의 기본 ID는 my-first-projec입니다. 이 프로젝트 ID는 해당 프로젝트와 관련된 모든 리소스 이름의 토대입니다. AWS CodeStar는 이 프로젝트 ID를 코드 리포지토리에 대한 URL의 일부로 사용하고, IAM의 관련 보안 액세스 역할 및 정책 이름으로도 사용합니다. 프로젝트를 만든 후에는 프로젝트 ID를 변경할 수 없습니다. 프로젝트를 만들기 전에 프로젝트 ID를 편집하려면 프로젝트 ID에 사용하려는 ID를 입력합니다.

    프로젝트 이름 및 프로젝트 ID 제한에 대한 자세한 내용은 AWS CodeStar의 제한 값 단원을 참조하십시오.

    참고

    프로젝트 ID는 AWS 리전 내 AWS 계정에 대해 고유해야 합니다.

  6. 리포지토리 공급자 AWS CodeCommit 또는 GitHub를 선택합니다.

  7. AWS CodeCommit를 선택한 경우 리포지토리 이름에는 기본 AWS CodeCommit 리포지토리 이름을 그대로 이용하거나 다른 이름을 입력합니다. 그런 다음 9단계로 건너뜁니다.

  8. GitHub를 선택한 경우 연결 리소스를 선택하거나 생성해야 합니다. 기존 연결이 있는 경우 검색 필드에서 해당 연결을 선택합니다. 기존 연결이 없는 경우 지금 새 연결을 생성합니다. GitHub에 연결을 선택합니다.

    연결 생성 페이지가 표시됩니다.

    참고

    연결을 생성하려면 GitHub 계정이 필요합니다. 조직 연결을 생성하는 경우 조직 소유자여야 합니다.

    1. GitHub 앱 연결 생성 아래의 연결 이름 입력 텍스트 필드에 연결 이름을 입력합니다. GitHub에 연결을 선택합니다.

      GitHub에 연결 페이지가 나타나고 GitHub 앱 필드가 표시됩니다.

    2. GitHub 앱에서 앱 설치를 선택하거나 새 앱 설치를 선택하여 앱을 새로 만듭니다.

      참고

      특정 공급자에 대한 모든 연결에 대해 하나의 앱을 설치합니다. 이미 설치한 경우 AWS Connector for GitHub 앱을 선택한 다음 이 단계를 건너뜁니다.

    3. AWS Connect for GitHub 설치 페이지에서 앱을 설치할 계정을 선택합니다.

      참고

      이전에 앱을 설치한 경우 구성을 선택하여 앱 설치의 수정 페이지로 이동하거나 뒤로 버튼을 사용하여 콘솔로 돌아갈 수 있습니다.

    4. 계속하려면 암호 확인 페이지가 표시되면 GitHub 암호를 입력한 다음 로그인을 선택합니다.

    5. GitHub용 AWS 커넥터 설치 페이지에서 기본값을 그대로 두고 설치를 선택합니다.

    6. GitHub에 연결 페이지의 GitHub 앱 텍스트 입력 필드에 새 설치의 설치 ID가 표시됩니다.

      연결이 생성되면 CodeStar 프로젝트 생성 페이지에 연결 준비 완료 메시지가 표시됩니다.

      참고

      개발자 도구 콘솔의 설정에서 연결을 볼 수 있습니다. 자세한 정보는 연결 시작하기를 참조하십시오.

      
                        GitHub 리포지토리에 대한 완료된 연결 설정을 보여주는 콘솔 스크린샷입니다.
    7. 리포지토리 소유자의 경우 GitHub 조직이나 사용자의 개인 GitHub 계정을 선택합니다.

    8. 리포지토리 이름에는 기본 GitHub 리포지토리 이름을 그대로 이용하거나 다른 이름을 입력합니다.

    9. 퍼블릭 또는 프라이빗을 선택합니다.

      참고

      또한 개발 환경으로 AWS Cloud9를 사용하려면 퍼블릭을 선택해야 합니다.

    10. (선택 사항) 리포지토리 설명에 GitHub 리포지토리에 대한 설명을 입력합니다.

    참고

    Alexa Skill 프로젝트 템플릿을 선택하는 경우 Amazon 개발자 계정을 연결해야 합니다. Alexa Skill 프로젝트 작업에 대한 자세한 내용은 자습서: AWS CodeStar에 Alexa Skill 프로젝트 생성 단원을 참조하십시오.

  9. 프로젝트가 Amazon EC2 인스턴스에 배포되어 있고 변경하려는 경우 Amazon EC2 구성에서 Amazon EC2 인스턴스를 구성하십시오. 예를 들어, 프로젝트에 사용 가능한 인스턴스 유형 중에서 선택할 수 있습니다.

    참고

    Amazon EC2 인스턴스 유형마다 서로 다른 수준의 컴퓨팅 성능을 제공하므로 관련 비용도 다를 수 있습니다. 자세한 내용은 Amazon EC2 인스턴스 유형Amazon EC2 요금을 참조하세요.

    Amazon Virtual Private Cloud에서 만든 서브넷이 여러 개이거나 Virtual Private Cloud(VPC)가 두 개 이상인 경우, 사용할 서브넷 및 VPC를 선택할 수도 있습니다. 그러나 전용 인스턴스에서 지원되지 않는 Amazon EC2 인스턴스 유형을 선택하는 경우, 인스턴스 테넌시가 전용으로 설정된 VPC를 선택할 수 없습니다.

    자세한 내용은 Amazon VPC란 무엇입니까?전용 인스턴스 기본 사항 단원을 참조하십시오.

    키 페어에서 4단계: AWS CodeStar 프로젝트에 대한 Amazon EC2 키 페어 만들기에서 생성한 Amazon EC2 키 페어를 선택합니다. 프라이빗 키 파일에 대한 액세스 권한이 있음을 인정함을 선택합니다.

  10. 다음을 선택합니다.

  11. 리소스와 구성 세부 정보를 검토합니다.

  12. [Next] 또는 [Create project]를 선택합니다. (표시되는 선택 사항은 프로젝트 템플릿에 따라 다릅니다.)

    프로젝트(리포지토리 포함)를 만드는 데 몇 분 정도 걸릴 수 있습니다.

  13. 프로젝트에 리포지토리가 있으면 리포지토리 페이지를 사용하여 리포지토리에 대한 액세스를 구성할 수 있습니다. 다음 단계의 링크를 사용하여 IDE를 구성하거나, 이슈 트래킹을 설정하거나, 프로젝트에 팀 구성원을 추가할 수 있습니다.

프로젝트를 만드는 중에 팀원을 추가하거나 명령줄 또는 선호하는 IDE에서 프로젝트 리포지토리에 대한 액세스를 구성할 수 있습니다.

AWS CodeStar에서 프로젝트 생성(AWS CLI)

AWS CodeStar 프로젝트는 소스 코드와 코드 배포를 위해 생성한 리소스의 결합입니다. 코드 빌드, 릴리스, 배포에 도움이 되는 리소스 모음을 도구 체인 리소스라고 합니다. 프로젝트 생성 시 AWS CloudFormation 템플릿은 지속적인 통합/지속적인 배포(CI/CD) 파이프라인에 도구 체인 리소스를 공급합니다.

콘솔을 사용하여 프로젝트를 만들면, 도구 체인 템플릿이 생성됩니다. AWS CLI를 사용하여 프로젝트를 만들면, 도구 체인 리소스를 생성하는 도구 체인 템플릿을 생성하게 됩니다.

온전한 도구 체인은 다음과 같은 권장 리소스를 요구합니다.

  1. 소스 코드가 포함된 CodeCommit 또는 GitHub 리포지토리입니다.

  2. 리포지토리의 변경 사항을 주시하도록 구성된 CodePipeline 파이프라인입니다.

    1. CodeBuild를 이용해 단위 또는 통합 테스트를 실행할 때는, 파이프라인에 빌드 단계를 추가해 빌드 아티팩트를 생성하는 방법을 권장합니다.

    2. 되도록 CodeDeploy 또는 AWS CloudFormation을 사용하는 배포 단계를 파이프라인에 추가해 빌드 아티팩트와 소스 코드를 실행 시간 인프라에 배포하십시오.

      참고

      CodePipeline은 파이프라인에서 최소한 두 단계를 요구하며, 첫 번째 단계는 소스 단계여야 하므로 빌드나 배포 단계는 두 번째 단계로 추가하십시오.

AWS CodeStar 도구 체인은 CloudFormation 템플릿으로 정의됩니다.

이 작업을 진행하고 샘플 리소스를 설정하는 방법은 자습서: AWS CLI를 이용하여 AWS CodeStar에서 프로젝트 생성에서 확인할 수 있습니다.

사전 조건:

프로젝트를 만들 때는, 입력 파일에 다음과 같은 파라미터를 입력해야 합니다. 다음 파라미터를 입력하지 않으면, AWS CodeStar는 빈 프로젝트를 생성합니다.

  • 소스 코드입니다. 이 파라미터가 요청에 포함되면, 도구 체인 템플릿도 포함해야 합니다.

    • 소스 코드에는 프로젝트를 실행하는 데 필요한 애플리케이션 코드가 포함되어야 합니다.

    • 소스 코드는 CodeBuild 프로젝트를 위한 buildspec.yml이나 CodeDeploy 배포를 위한 appspec.yml 같은 필수 구성 파일을 포함해야 합니다.

    • 소스 코드에 README나 도구 체인이 아닌 AWS 리소스 같은 선택 사항 항목을 포함할 수도 있습니다.

  • 도구 체인 템플릿입니다. 도구 체인 템플릿은 프로젝트를 위해 관리해야 하는 AWS 리소스와 IAM 역할을 제공합니다.

  • 소스 위치입니다. 프로젝트를 위한 소스 코드와 도구 체인 템플릿을 지정할 때는, 위치를 지정해야 합니다. 소스 파일과 도구 체인 템플릿을 버킷에 업로드하십시오. AWS CodeStar는 파일을 검색하고 이를 이용해 프로젝트를 생성합니다.

중요

AWS CLI에서 원하는 AWS 리전을 구성했는지 확인하십시오. 프로젝트는 AWS CLI에서 구성한 AWS 리전에 생성됩니다.

  1. create-project 명령을 실행하고 --generate-cli-skeleton 파라미터를 포함하십시오.

    aws codestar create-project --generate-cli-skeleton

    JSON 형식 데이터가 출력에 표시됩니다. AWS CLI가 설치된 로컬 컴퓨터 또는 인스턴스의 위치에 있는 파일(예: input.json)에 데이터를 복사합니다. 복사된 데이터를 다음과 같이 수정하고 결과를 저장합니다.

    { "name": "project-name", "id": "project-id", "description": "description", "sourceCode": [ { "source": { "s3": { "bucketName": "s3-bucket-name", "bucketKey": "s3-bucket-object-key" } }, "destination": { "codeCommit": { "name": "codecommit-repository-name" }, "gitHub": { "name": "github-repository-name", "description": "github-repository-description", "type": "github-repository-type", "owner": "github-repository-owner", "privateRepository": true, "issuesEnabled": true, "token": "github-personal-access-token" } } } ], "toolchain": { "source": { "s3": { "bucketName": "s3-bucket-name", "bucketKey": "s3-bucket-object-key" } }, "roleArn": "service-role-arn", "stackParameters": { "KeyName": "key-name" } }, "tags": { "KeyName": "key-name" } }

    다음을 바꿉니다.

    • project-name: 필수 항목입니다. 이 AWS CodeStar 프로젝트의 표시 이름입니다.

    • project-id: 필수 항목입니다. 이 AWS CodeStar 프로젝트의 프로젝트 ID입니다.

      참고

      프로젝트를 생성할 때는 고유 프로젝트 ID가 있어야 합니다. 프로젝트 ID가 이미 존재하는 입력 파일을 전송하면 오류가 발생합니다.

    • description: 선택 사항입니다. 이 AWS CodeStar 프로젝트의 설명입니다.

    • sourceCode: 선택 사항입니다. 프로젝트에 제공된 소스 코드의 구성 정보입니다. 현재는 단일 sourceCode 객체만 지원됩니다. 각각의 sourceCode 객체에는 AWS CodeStar가 소스 코드를 검색한 위치와 소스 코드가 입력되는 대상 주소에 대한 정보가 포함됩니다.

      • source: 필수 항목입니다. 소스 코드를 업로드한 위치를 정의합니다. 유일하게 지원되는 소스는 Amazon S3입니다. AWS CodeStar는 소스 코드를 검색하며 프로젝트가 생성되면 이를 리포지토리에 포함합니다.

        • S3: 선택 사항입니다. 소스 코드의 Amazon S3 위치입니다.

          • bucket-name: 소스 코드를 포함하는 버킷입니다.

          • bucket-key: 소스 코드를 포함하는 .zip 파일(예: src.zip)을 지칭하는 버킷 접두사와 객체 키입니다.

      • destination: 선택 사항입니다. 프로젝트 생성 시 소스 코드가 입력되는 대상 위치입니다. 소스 코드에 지원되는 대상은 CodeCommit와 GitHub입니다.

        다음 두 가지 옵션 중 하나만 제공할 수 있습니다.

        • codeCommit: 유일한 필수 속성은 소스 코드를 포함해야 하는 CodeCommit 리포지토리의 이름입니다. 이 리포지토리는 사용자의 도구 체인 템플릿에 있어야 합니다.

          참고

          CodeCommit의 경우에는 도구 체인 스택에서 정의한 리포지토리의 이름을 입력해야 합니다. AWS CodeStar는 Amazon S3에서 입력한 소스 코드를 이용해 이 리포지토리를 초기화합니다.

        • gitHub: 이 객체는 GitHub 리포지토리를 생성하는 데 필요한 정보를 나타내며, 소스 코드를 이용해 이를 시드합니다. GitHub 리포지토리를 선택하면, 다음 값을 입력해야 합니다.

          참고

          GitHub의 경우에는 기존 GitHub 리포지토리를 지정해선 안 됩니다. AWS CodeStar는 사용자를 대신해 리포지토리를 생성하고 사용자가 Amazon S3에 업로드한 소스 코드를 입력합니다. AWS CodeStar는 다음 정보를 이용해 GitHub에 리포지토리를 생성합니다.

          • name: 필수 항목입니다. GitHub 리포지토리의 이름입니다.

          • description: 필수 항목입니다. GitHub 리포지토리의 설명입니다.

          • type: 필수 항목입니다. GitHub 리포지토리의 유형입니다. 유효한 값은 User 또는 Organization입니다.

          • owner: 필수 항목입니다. The GitHub user 리포지토리 소유자의 이름입니다. 리포지토리를 GitHub 조직이 소유해야 한다면, 조직 이름을 입력하십시오.

          • privateRepository: 필수 항목입니다. 이 리포지토리의 프라이빗/퍼블릭 여부를 결정합니다. 유효한 값은 true 또는 false입니다.

          • issuesEnabled: 필수 항목입니다. 이 리포지토리를 이용해 GitHub에서 문제를 활성화할지를 결정합니다. 유효한 값은 true 또는 false입니다.

          • 토큰: 선택사항. AWS CodeStar가 사용자의 GitHub 계정에 액세스할 때 사용하는 개인용 액세스 토큰입니다. 이 토큰에는 다음 범위가 포함되어야 합니다. repo, useradmin:repo_hook. GitHub에서 개인용 액세스 토큰을 검색하려면 GitHub 웹 사이트의 명령줄에 대한 개인용 액세스 토큰 생성을 참조하십시오.

            참고

            CLI를 사용하여 GitHub 소스 리포지토리가 있는 프로젝트를 생성하는 경우, AWS CodeStar는 토큰을 사용하여 OAuth 앱을 통해 리포지토리에 액세스합니다. 콘솔을 사용하여 GitHub 소스 리포지토리로 프로젝트를 생성하는 경우 AWS CodeStar는 GitHub 앱으로 리포지토리에 액세스하는 연결 리소스를 사용합니다.

        • 도구 체인: 프로젝트 생성 시 설정해야 하는 CI/CD 도구 체인 관련 정보입니다. 여기에는 도구 체인 템플릿을 업로드한 위치가 포함됩니다. 템플릿은 도구 체인 리소스가 포함된 AWS CloudFormation 스택을 생성합니다. 또한 참조를 위해 AWS CloudFormation이 재정의한 파라미터와 스택 생성을 위해 사용한 역할도 포함됩니다. AWS CodeStar는 템플릿을 검색하고 AWS CloudFormation을 이용해 템플릿을 실행합니다.

          • source: 필수 항목입니다. 툴체인 템플릿의 위치입니다. Amazon S3가 유일하게 지원되는 소스 위치입니다.

            • S3: 선택 사항입니다. 도구 체인 템플릿을 업로드한 Amazon S3 위치입니다.

              • bucket-name: Amazon S3 버킷 이름입니다.

              • bucket-key: 도구 체인 템플릿을 포함하는 .yml 또는 .json 파일(예: files/toolchain.yml)을 지칭하는 버킷 접두사와 객체 키입니다.

          • stackParameters: 선택 사항입니다. AWS CloudFormation으로 전달해야 하는 키-값 페어가 포함되어 있습니다. 이것은 (해당하는 경우) 도구 체인 템플릿이 참조를 위해 설정하는 파라미터입니다.

          • role: 선택 사항입니다. 계정에서 도구 체인 리소스를 생성하는 데 사용한 역할입니다. 필요한 역할은 다음과 같습니다.

            • 역할을 입력하지 않으면, 도구 체인이 AWS CodeStar 빠른 시작 템플릿인 경우 AWS CodeStar는 사용자 계정에 대해 생성된 기본 서비스 역할을 사용합니다. 계정에 서비스 역할이 없다면 새로 만들면 됩니다. 자세한 내용은 2단계: AWS CodeStar 서비스 역할 만들기을 참조하세요.

            • 자체의 사용자 지정 도구 체인 템플릿을 업로드하고 사용하는 경우에는 역할을 입력해야 합니다. AWS CodeStar 서비스 역할 및 정책 설명에 따라 역할을 생성할 수 있습니다. 이 정책 설명의 예제는 AWSCodeStarServiceRole 정책 단원을 참조하십시오.

        • tags: 선택 사항입니다. 태그는 AWS CodeStar 프로젝트에 연결됩니다.

          참고

          이 태그는 프로젝트에 포함된 리소스에는 연결되지 않습니다.

  2. 방금 저장한 파일이 들어 있는 디렉터리로 전환한 다음, create-project 명령을 다시 실행합니다. --cli-input-json 파라미터를 포함합니다.

    aws codestar create-project --cli-input-json file://input.json
  3. 이 명령이 제대로 실행되면 다음과 비슷한 데이터가 출력에 표시됩니다.

    { "id": "project-ID", "arn": "arn" }
    • 출력에는 새 프로젝트에 대한 정보가 들어 있습니다.

      • id 값은 프로젝트 ID를 나타냅니다.

      • arn 값은 프로젝트의 ARN을 나타냅니다.

  4. describe-project 명령을 이용해 프로젝트 생성 상태를 확인하십시오. --id 파라미터를 포함합니다.

    aws codestar describe-project --id <project_ID>

    다음과 비슷한 데이터가 결과에 나타납니다.

    { "name": "MyProject", "id": "myproject", "arn": "arn:aws:codestar:us-east-1:account_ID:project/myproject", "description": "", "createdTimeStamp": 1539700079.472, "stackId": "arn:aws:cloudformation:us-east-1:account_ID:stack/awscodestar-myproject/stack-ID", "status": { "state": "CreateInProgress" } }
    • 출력에는 새 프로젝트에 대한 정보가 들어 있습니다.

      • state 값은 프로젝트 생성 상태(CreateInProgress 또는 CreateComplete 등)를 나타냅니다.

프로젝트를 만드는 중에 팀원을 추가하거나 명령줄 또는 선호하는 IDE에서 프로젝트 리포지토리에 대한 액세스를 구성할 수 있습니다.