Microsoft Visual Studio Team Services용 AWS 개발 도구 출시
오늘 Amazon Web Services는 Microsoft Visual Studio Team Services(VSTS)용 AWS 도구를 발표했습니다. Visual Studio 마켓플레이스에서 도구를 자유롭게 사용하고 배포할 수 있습니다. 빌드에서 이 작업을 사용하고 VSTS 및 Team Foundation Server에서 호스팅되는 파이프라인을 릴리스하여 AWS 제품과 상호 작용할 수 있습니다. 예를 들어, 작업을 사용하여 Amazon S3 버킷으로/버킷에서 콘텐츠를 복사하거나 파이프라인에 작업을 추가하여 빌드 출력을 AWS Elastic Beanstalk, AWS CodeDeploy 및 AWS Lambda에 배포할 수 있습니다. 또한 도구는 오픈 소스이며 GitHub에서 찾을 수 있습니다.
이 게시물에서는 도구를 설치하는 방법을 살펴보고 도구에 포함된 작업의 개요를 제공한 후 간단한 시나리오를 안내하여 설정을 확인하고 도구의 간편한 사용 방법을 보여줍니다. 이후의 게시물에서는 작업을 면밀하게 살펴보고 VSTS 파이프라인에서 작업을 사용하는 방법을 알아보겠습니다.
설치하기
쉽고 빠르게 Microsoft Visual Studio Team Services용 AWS 도구를 설치할 수 있습니다. 먼저 Visual Studio 마켓플레이스를 방문하십시오. 아래와 같이 도구 설치를 위한 두 가지 옵션이 있습니다. 온라인 VSTS 계정에 도구를 설치하거나 도구를 다운로드하여 온프레미스 Team Foundation Server 인스턴스에 설치할 수 있습니다.
그러면 끝입니다. 이제 계정이나 온프레미스 인스턴스에서 확장의 작업을 사용할 수 있으므로 이 초기 릴리스에 제공된 작업을 빠르게 검토해 보겠습니다. 앞에서 말했듯이 후속 게시물에서는 이 작업 중 몇 가지에 대해 자세히 살펴보겠습니다.
- AWS CloudFormation Create/Update Stack. 이 작업을 통해 템플릿 파일과 선택적 파라미터 파일을 사용하여 AWS CloudFormation에서 스택을 생성하거나 업데이트할 수 있습니다. 스택이 이미 있는지 여부에 따라 기존 스택 업데이트와 새 스택 생성 간에 자동으로 작업이 전환됩니다. “모드”를 선택할 필요가 없어 파이프라인에서 이 작업을 편리하게 사용할 수 있습니다. 템플릿과 파라미터 파일을 선택할 뿐 아니라 변경 세트를 자동으로 실행하기 위해 추가한 옵션과 함께(변경 세트 확인에 성공할 경우) 변경 세트를 사용하여 스택을 만들거나 업데이트하도록 선택할 수 있습니다. 또는 Execute Change Set 작업을 사용하여 확인된 변경 세트를 나중에 실행할 수 있습니다.
- AWS CloudFormation Delete Stack. 이 작업은 이름이나 ID로 식별된 스택을 삭제합니다. 이 작업을 사용하여 제거 및 다시 빌드 시나리오에서 새로운 배포 후에 개발 또는 테스트 환경 스택을 정리할 수 있습니다.
- AWS CloudFormation Execute Change Set. 앞에서 말했듯이 Create/Update Stack 작업에서는 변경 세트를 사용하여 변경하는 옵션과 세트가 확인될 경우 즉시 또는 나중에 이 스택을 사용하여 변경을 실행하는 옵션이 제공됩니다. 변경 세트 이름과 연결된 스택을 제공하면 스택이 생성 또는 업데이트 완료 상태에 도달할 때까지 대기했다가 작업이 나머지 과정을 진행합니다.
- AWS Elastic Beanstalk Deployment. 이 작업을 통해 WebDeploy 아카이브를 사용하여 기존의 ASP.NET 애플리케이션을 배포하거나 ASP.NET Core 애플리케이션을 배포할 수 있습니다.
- AWS Lambda .NET Core Deployment. 이 작업을 통해 독립 실행형 함수 또는 서버리스 애플리케이션을 AWS Lambda에 배포할 수 있습니다. AWS Visual Studio Toolkit과 동일한 dotnet CLI 확장이 작업에 사용되므로 명령둘 도구 스위치의 전체 사용자 정의 기능을 작업에 사용할 수 있습니다.
- AWS Lambda Invoke Function. AWS Lambda에 배포하는 것 외에도 이 작업을 사용하여 파이프라인에서 실행되도록 Lambda 함수를 트리거합니다 파이프라인의 후속 작업이 소비할 변수로 함수 결과를 내보낼 수 있습니다.
- AWS S3 Download. 버킷 이름과 선택적 키 접두사를 함께 사용하면 하나 이상의 globbing 패턴 세트가 이 작업에 사용되어 Amazon S3 버킷에서 파이프라인의 작업 폴더로 콘텐츠를 다운로드할 수 있습니다. 예를 들어, 이 작업을 사용하여 사용자 정의 정적 콘텐츠를 빌드에 주입할 수 있습니다.
- AWS S3 Upload. S3 다운로드 작업과 유사하게 이 작업도 버킷 이름과 globbing 패턴 세트를 소스 폴더에서 실행하여 파이프라인 작업 폴더에서 버킷으로 콘텐츠를 업로드합니다.
- AWS Tools for Windows PowerShell Script. 이 작업을 통해 Windows PowerShell용 AWS 도구(AWSPowerShell) 모듈의 cmdlets를 사용하는 스크립트를 실행할 수 있습니다. 스크립트가 실행되기 전에 선택적으로 모듈을 설치할 수 있습니다.
- AWS CLI. 이 작업을 통해 개별 AWS CLI 명령을 실행할 수 있습니다. 하지만 AWS CLI가 빌드 호스트에 이미 설치되어 있어야 합니다.
작업 구성 및 사용
릴리스에 포함된 작업에 대해 약간 알아보았으니 이제 파이프라인에서 AWS S3 Upload 작업을 사용하는 방법을 살펴보겠습니다. 여기서 도구의 설정을 확인하고 작업에 맞게 자격 증명이 처리되는 방식을 알아볼 수도 있습니다.
이 연습에서는 빌드 및/또는 배포할 아티팩트를 가져오는 기존의 빌드 또는 릴리스 정의가 있다고 가정합니다. 파이프라인 끝에 새 작업을 추가하고 빌드되거나 배포 가능한 아티팩트를 S3 버킷에 업로드하도록 구성하는 간단한 과정이 진행됩니다. 이제 사용할 빌드 정의를 선택하거나 새로 만드십시오. 정의를 선택하거나 만들었으면 옵션을 선택하여 정의를 편집합니다.
다음 스크린샷 예에서는 ASP.NET Core 프로젝트의 빌드 정의를 새로 만들기로 선택했습니다. 나열된 작업이 기본적으로 할당됩니다.
1. 파이프라인에 S3 업로드 작업 추가
이 연습에서는 Publish 작업에서 생성된 빌드 출력을 캡처하고 Amazon S3에 추가합니다. 따라서 기존 Publish 작업과 Publish Artifacts 작업 사이에 새 작업을 삽입합니다. 그러려면 [Add Task]를 선택하십시오. 오른쪽 패널에서 AWS 작업, 특히 [AWS S3 Upload]가 보일 때까지 사용 가능한 작업을 스크롤합니다. [Add]를 선택하여 빌드 정의에 추가하십시오.
[Publish] 작업 바로 뒤에 새 작업이 추가되지 않으면 새 작업을 제 자리로 끌어다 놓습니다. 그러면 새 작업 구성을 시작할 수 있습니다.
2. 작업 자격 증명 구성
Amazon S3와 같은 AWS 제품의 요청을 만드는 작업에는 자격 증명을 구성해야 합니다. Team Systems 용어로 서비스 엔드포인트라고 합니다. AWS 작업은 AWS라는 서비스 엔드포인트를 제공하여 자격 증명을 제공할 수 있도록 합니다. 이 작업의 자격 증명을 신속하게 추가하려면 [AWS Credentials] 상자 오른쪽에 있는 “+” 아이콘을 클릭하십시오.
기어 아이콘을 클릭하면 새 브라우저 페이지가 탭에 열리고 여기서 새 AWS 유형을 비롯하여 모든 서비스 엔드포인트를 관리할 수 있습니다. 작업에 사용할 여러 AWS 자격 증명 세트를 설정하려는 경우 이 과정을 수행합니다.
“+” 아이콘을 클릭하면 AWS 키를 입력할 수 있는 팝업 창이 나타납니다.
AWS SDK 또는 AWS CLI나 PowerShell용 AWS 모듈과 같은 도구를 자주 사용한 경우 이 옵션이 익숙하게 보일 것입니다. 이 SDK 및 도구에서와 같이 AWS 자격 증명 프로파일을 기본적으로 생성합니다. 프로파일에는 이름이 있으며 여기서는 [Connection name]에 입력한 값이 작업 구성에서 이 자격 증명 세트를 나타내는 이름이 됩니다. 이제 사용할 자격 증명의 액세스 키와 보안 키를 입력하고 기억할 이름을 할당한 후 [OK]를 클릭하여 저장하십시오. 팝업이 닫히고 새 자격 증명이 미리 선택된 [S3 Upload] 작업 구성으로 돌아갑니다.
입력한 자격 증명을 다른 작업에서 다시 사용할 수 있습니다. 구성 중인 작업의 [AWS Credentials] 목록에서 자격 증명을 식별하는 데 사용한 이름을 선택하면 됩니다.
참고
계정의 루트 자격 증명은 사용하지 않는 것이 좋습니다. 대신 하나 이상의 IAM 사용자를 생성한 후 해당 자격 증명을 사용하십시오. 자세한 내용은 AWS 액세스 키 관리를 위한 모범 사례를 참조하십시오.
3. 작업 옵션 구성
자격 증명이 구성 및 선택되어 있으면 작업 구성을 완료할 수 있습니다.
- 버킷이 있거나 생성될 리전을 설정합니다(예: us-east-1, us-west-2 등).
- 버킷 이름을 입력합니다. 버킷 이름은 전역적으로 고유해야 합니다.
- [Source Folder]는 업로드할 콘텐츠가 있는 빌드 영역의 폴더를 가리킵니다. Team Services에서는 하드 코딩 경로를 방지하는 데 사용할 수 있는 여러 가지 변수를 제공합니다. 자세한 내용은 여기를 참조하십시오. 이 연습에서는 Build.ArtifactStagingDirectory 변수를 사용하기로 선택합니다. 이 변수는 …아티팩트가 대상에 게시되기 전에 복사되는 에이전트의 로컬 경로로 정의됩니다. 완벽합니다.
- [Filename Patterns]에는 업로드용 [Source Folder] 아래에서 파일을 선택하는 데 사용되는 globbing 패턴이 하나 이상 포함됩니다. 여기에 표시된 기본값은 모든 파일을 재귀적으로 선택합니다. 한 줄에 하나씩 여러 패턴을 지정할 수 있습니다. 이 연습의 경우 이전 작업(Publish)에서 빌드가 포함된 zip 파일을 내보냅니다. 이 zip이 업로드할 파일입니다.
- [Target Folder]는 업로드한 모든 파일에 적용할 버킷의 키 접두사입니다. 폴더 경로와 비슷하게 생각할 수 있습니다. 값을 지정하지 않으면 파일이 버킷의 루트로 업로드됩니다. 기본적으로 상대적 폴더 계층 구조가 유지됩니다.
- 마지막으로 추가 옵션을 설정할 수 있습니다.
- Create S3 bucket if it does not exist. 버킷을 생성할 수 없으면 작업이 실패합니다.
- Overwrite([Advanced] 섹션). 기본적으로 선택됩니다.
- Flatten folders([Advanced] 섹션). [Source Folder]에 상대적인 각 파일의 경로를 제거하고 모든 파일을 [Target Folder]에 직접 배치합니다.
4. 빌드 실행
새 작업이 구성되었으므로 빌드를 실행할 수 있습니다. [Save & queue]를 선택하십시오.
빌드 도중에 작업이 로그에 메시지를 출력합니다.
맺는말
살펴본 바와 같이 새 작업을 사용하는 일은 단순합니다. 향후 게시물에서는 몇 가지 배포 작업과 그 사용 방법을 자세히 설명하겠습니다. 새로운 도구의 등장이 여러분에게 기쁨이 되고 VSTS 환경에서 유익하게 사용되기 바랍니다. GitHub repo에서 피드백을 주시면 이후의 개발 활동에 참고하겠습니다.
감사의 말씀
이 새로운 도구를 Visual Studio 마켓플레이스에 소개하도록 도움과 지원을 아끼지 않은 Visual Studio ALM Rangers에 감사드립니다.
이 글은 Announcing the AWS Tools for Microsoft Visual Studio Team Services의 한국어 번역입니다.