개발자 블로그

Azure DevOps Pipeline - 8. AWS CodeArtifact 연동 본문

프로그래밍/DevOps

Azure DevOps Pipeline - 8. AWS CodeArtifact 연동

로이드.Roid 2025. 7. 1. 17:39
반응형

AWS CodeArtifact는 무엇?

  • 완전관리형 소프트웨어 아티팩트 리포지토리 서비스
    • AWS CodeArtifact는 규모에 관계 없이 모든 조직이 소프트웨어 개발 프로세스에서 사용되는 소프트웨어 패키지를 안전하게 저장, 게시 및 공유 할 수 있도록 지원하는 완전관리형의 아티팩트 리포지토리 서비스입니다. CodeArtifact는 퍼블릭 아티팩트 리포지토리에서 소프트웨어 패키지 및 종속 항목을 자동으로 가져오도록 구성할 수 있으므로, 개발자는 최신 버전에 대한 엑세스 권한을 가집니다. CodeArtifact는 일반적으로 사용되는 패키지 관리자와 빌드 도구(예: Maven, Gradle, npm, yarn, twine, pip 및 NuGet)에서 작동하므로 기존 개발 워크플로에 손쉽게 통합할 수 있습니다.
    • 출처: https://aws.amazon.com/ko/codeartifact/
  • 쉽게 요약하면 인가 된 사용자만 접근할 수 있도록한 private repository.. 정도인 것 같습니다.
  • 예제에서는 제 3자가 라이브러리를 AWS CodeArtifact를 통해서 딜리버리 하는 상황을 가정하고 설명하겠습니다.

 

AWS 액세스 키 생성

  • AWS CodeArtifact에 접근하기 위해서는 액세스 키가 필요합니다. (Access key ID & Secret access key)
  • 이 키는 AWS IAM 자격증명에서 생성 할 수 있습니다.
  • 위 IAM 접근을 위해서는 라이브러리 제공 업체로부터 AWS 접속 URL과 계정 정보(ID, PW)를 받아야 됩니다.
  • 그런 다음 해당 URL에 로그인을 하고 (최초 로그인 시 패스워드 변경이 요구될 수 있습니다.)
  • 내 보안 자격 증명에서 "엑세스 키 만들기" 버튼을 클릭해서 엑세스 키를 생성합니다.

 

로컬 머신에서 AWS 설정하기

 

Azure 파이프라인에서 AWS 설정하기

  • Azure 파이프라인 OS 이미지에는 이미 AWS CLI가 설치되어 있습니다. 따라서 AWS CLI 설치 단계는 필요하지 않습니다.
  • CodeArtifact 인증 토큰은 gradle 파일을 수정하는 것으로 해결 했습니다.
  • 따라서 "aws configure set"으로 시작하는 명령어 세 줄만 추가해주면 됩니다.
  • 근데 이건 어떻게 추가해야 될까요?
  • 파이프라인 YAML 에디터 오른쪽에 Tasks 목록에서 찾아보면 AWS CLI라는 항목이 보입니다.
    • 클릭을 해서 세부정보(오른쪽 이미지)를 보니 뭔가 우리가 추가하려는 것과 거의 일치하는 것 같습니다.
    • 이걸 추가하면 될 것 같지만..
    • 훗, 당신은 Azure 파이프라인 함정카드에 걸려들었습니다.
  • 무려 40트 넘게 삽질하면서 알아낸 것이지만.. 결론만 말하면 그냥 "CmdLine@2"를 사용하시면 됩니다. (매우 간단하죠)
  • 수정 된 스크립트는 아래와 같습니다.
    • - task: CmdLine@2
        input:
          script: |
            aws configure set aws_access_key_id $(AWS_IAM_ACCESS_KEY_ID)
            aws configure set aws_secret_access_key $(AWS_IAM_SECRET_KEY)
            aws configure set region us-east-2
            echo 'set aws config done'
        displayName: 'Set AWS config'
    • 위 스크립트는 gradle 스크립트 이전에 추가해주면 됩니다.
  • 환경변수가 사용되었으니 "Variables"에 이 두 환경변수를 추가해 줍니다.
    • 환경변수 추가는 이미 전에 Firebase 인증 토큰을 추가하면서 해봤기 때문에 스샷만 보고 넘어가도록 하겠습니다.
  • 이제 파이프라인을 돌려봅시다.
    • 20분이라는 긴 시간이 소요되긴 했지만 AWS CodeArtifact에서 정상적으로 모듈을 내려받아서 빌드가 성공했습니다.
      • 여담이지만, 로컬에서 빌드를 해도 빌드 시간이 꽤 오래 걸립니다. CodeArtifact에서 모듈을 내려받는데 속도가 너무 느려서 다운로드 하는데 시간을 많이 잡아먹습니다.

 

마무리

  • 여기까지 Azure Pipelines 구축에 대해서 살펴보았습니다.
  • 안드로이드 기준이라서 얼마나 도움이 될런지 모르겠네요.
  • 긴 글 봐주셔서 감사합니다.

 

반응형
Comments