Chapter2 AWS CodeArtifact
Last updated
Last updated
AWS CodeArtifact는 모든 규모의 조직이 소프트웨어 개발 프로세스에 사용되는 소프트웨어 패키지를 안전하게 가져오고, 저장하고, 게시하고, 공유할 수 있도록 하는 완전관리형 아티팩트 리포지토리 서비스입니다.
이 실습에서는 CodeBuild와 함께 빌드 단계에서 공용 패키지 리포지토리("Maven Central Repository")의 Maven 패키지를 가져오는 데 사용할 CodeArtifact 리포지토리를 설정합니다. 공개 리포지토리 대신 CodeArtifact를 직접 사용하면 사용할 수 있는 패키지를 엄격하게 정의할 수 있으므로 보안 향상을 비롯한 여러 이점이 있습니다. CodeArtifact 사용의 다른 이점을 보려면 AWS CodeArtifact 기능을 참조하십시오.
이 실습에서는 CodeArtifact를 간단한 패키지 캐시로 사용할 것입니다. 이렇게 하면 공개 패키지 저장소를 사용할 수 없게 되더라도 여전히 애플리케이션을 빌드할 수 있습니다. 실제 시나리오에서 이는 공용 리포지토리의 중단으로 인해 전체 CI/CD 파이프라인이 중단될 수 있는 위험을 줄이는데 중요한 요구 사항이 될 수 있습니다. 또한 프로젝트가 의존하고, 공개 패키지 리포지토리에서 실수로 또는 고의로 제거되는 패키지가 CI/CD 파이프라인을 중단하지 않도록 하는 데 도움이 됩니다. (CodeArtifact를 통해 계속 사용할 수 있기 때문)
AWS 콘솔에 CodeArtifact 서비스를 검색합니다.
리포지토리 생성을 클릭 합니다. 이름을 unicorn-packages로 지정합니다. 퍼블릭 업스트림 리포지토리에서 maven-central-store를 선택 하고 다음을 클릭합니다.
3. 이 AWS 계정을 도메인 소유자로 선택 합니다. 도메인 이름으로 unicorns을 입력 하고 다음을 클릭 합니다.
4. 설정을 검토합니다. 패키지 흐름 섹션에서 두 개의 리포지토리가 생성되는 프로세스를 시각적으로 확인합니다. 실제로 unicorn-packages 리포지토리와 퍼블릭 리포지토리 사이의 중간 역할을 담당하는 것이 업스트림 리포지토리(maven-central-store)입니다. 리포지토리 생성을 클릭 하여 프로세스를 완료합니다.
다음 페이지에서 연결 지침 보기를 클릭 하고 대화 상자 에서 mvn을 선택 합니다.
2. 인증 토큰에 대한 명령(수동 설정 1번 내용)을 복사하고, Cloud9 명령 프롬프트에서 실행합니다. 아래의 명령어와 유사하게 보일 것입니다.
3. 다음 단계에서는 settings.xml을 업데이트해야 합니다. 아직 존재하지 않으므로 먼저 생성해 보겠습니다.
4. Cloud9 왼쪽 파일 탐색기를 확인하면 settings.xml 파일이 생성된 것을 확인할 수 있습니다. settings.xml 파일에 앞서 연결지침에서 확인한(수동 설정 2,3,4번 내용) 텍스트를 복사해서 <settings>, </settings> 사이에 붙여넣기 합니다.
중요 : 아래 내용은 구조를 설명하기 위한 것입니다. 앞서 발급 받은 연결 지침(수동 설정 2,3,4의 내용)으로 대체해야 합니다.
#수동 설정 2의 <url> 태그 값과 수동 설정 4의 <url> 태그 값을 변경해서 사용해야 합니다.
5. settings.xml 파일 변경을 완료하면 저장(Ctrl+S) 합니다.
설정 파일을 사용하여 Cloud9에서 로컬로 애플리케이션을 성공적으로 컴파일할 수 있는지 확인해 보겠습니다. (Cloud9의 터미널 프롬프트에 입력)
2. 빌드에 성공하면 CodeArtifact 콘솔로 돌아가 unicorn-packages 리포지토리의 페이지를 새로고침합니다. 아티팩트 리포지토리에서 빌드 중에 사용된 패키지를 볼 수 있습니다. 즉, 퍼블릭 리포지토리에서 다운로드 되었으며 이제 CodeArtifact 내에서 복사본으로 사용할 수 있습니다.
다음 실습으로 이동하기 전에 다른 서비스가 새로 생성된 CodeArtifact 리포지토리를 사용할 수 있도록 IAM 정책을 정의해 보겠습니다.
AWS 콘솔에서 IAM을 검색하고 선택 하고 왼쪽 메뉴에서 정책을 클릭 합니다.
정책 생성을 클릭 하고 상단의 JSON 탭을 선택하여 아래의 값을 복사/붙여넣기 합니다. 이렇게 하면 CodeBuild와 같은 서비스가 CodeArtifact 리포지토리의 패키지를 읽을 수 있습니다.
3. 다음: 태그 및 다음: 검토를 클릭 합니다.
4. 정책 이름을 codeartifact-unicorn-consumer-policy로 지정하고 설명에는 "permission to read from CodeArtifact"이라고 적습니다.
5. 정책 만들기를 클릭 합니다.
이제 다른 서비스에서 사용할 수 있는 작업 리포지토리가 있습니다. 다음으로 AWS 내에서 코드를 컴파일하여 Java WAR 파일을 생성하는 방법이 필요합니다.