회사의 DevOps 팀은 Node Package Manager(NPM) 오픈 소스 라이브러리를 사용하여 애플리케이션을 빌드합니다. DevOps 팀은 AWS CodeBuild 프로젝트에서 공개 NPM 저장소에서 NPM 라이브러리를 다운로드하는 애플리케이션 빌드 프로세스를 실행합니다. 회사는 NPM 라이브러리를 비공개 NPM 저장소에서 호스팅하려고 합니다. 회사는 또한 DevOps 팀이 라이브러리를 사용하기 전에 라이브러리의 새로운 버전에 대한 확인을 실행할 수 있어야 합니다. 이 요구사항을 최소한의 운영 노력으로 충족하는 솔루션은 무엇입니까?
- A. npm-store라는 업스트림 저장소가 있는 AWS CodeArtifact 저장소를 생성합니다. CodeArtifact 저장소를 NPM의 기본 소스로 사용하도록 애플리케이션 빌드 프로세스를 구성합니다. CodeArtifact 저장소의 패키지 버전에 대한 필요한 확인을 수행하는 AWS CodePipeline 파이프라인을 생성합니다. 실패 발생 시 패키지 상태를 unlisted로 설정합니다.✓ 정답
- B. CodeBuild 프로젝트 구성에서 Amazon S3 캐싱을 활성화합니다. buildspec.yaml 구성 파일에 단계를 추가하여 캐시의 패키지 버전에 대한 필요한 확인을 수행합니다.
- C. 각 라이브러리에 대한 AWS CodeCommit 저장소를 생성합니다. 필요한 NPM 라이브러리를 적절한 CodeCommit 저장소로 복제합니다. CodeBuild appspec.yaml 구성 파일을 수정하여 비공개 CodeCommit 저장소를 사용합니다. 패키지 버전에 대한 필요한 확인을 수행하는 단계를 추가합니다.
- D. 각 라이브러리에 대한 AWS CodeCommit 저장소를 생성합니다. 필요한 NPM 라이브러리를 적절한 CodeCommit 저장소로 복제합니다. CodeBuild buildspec.yaml 구성 파일을 수정하여 NPM이 비공개 CodeCommit 저장소를 사용하도록 합니다. 각 저장소에 대한 새로운 커밋에 대한 패키지 버전에 대한 필요한 확인을 수행하는 AWS CodePipeline 파이프라인을 추가합니다. 실패 시 가장 최근 커밋으로 되돌리도록 파이프라인을 구성합니다.
해설
【핵심 용어】 ▸ CodeArtifact — NPM 저장소 호스팅 (업스트림 연결 지원) ▸ Upstream Repository — 공개 npm에 자동 페치 ▸ Package Status Unlisted — 승인되지 않은 버전 숨김 【정답 포인트】 ▸ CodeArtifact가 npm-store 업스트림으로 공개 저장소와 자동 연결 ▸ CodePipeline이 새 버전 자동 감지 및 검증 ▸ 검증 실패 시 unlisted로 설정 (자동 숨김) ▸ CodeBuild는 CodeArtifact만 사용 (매우 간단) 【오답 체크】 (B) S3 캐싱은 저장소 역할 불가 (매번 다운로드) (C) CodeCommit은 NPM 저장소 아님 (npm install 미지원) (D) CodeCommit을 NPM 저장소로 사용 불가능 (복잡성 증가) 【시험 포인트】 NPM 버전 검증: CodeArtifact(호스팅 + 업스트림) → CodePipeline(검증) → 상태 제어(unlisted)