관리 메뉴

제뉴어리의 모든것

[Section 4] [Spring Security] 배포 자동화 - 1 [추후 정리] 본문

코드스테이츠/정리 블로깅

[Section 4] [Spring Security] 배포 자동화 - 1 [추후 정리]

제뉴어리맨 2022. 10. 7. 02:09

AWS에서 사용되는 개념

  • IAM (Identity and Access Manager)
    AWS에서 제공하는 리소스에 대하여 접근 권한을 계정, 그룹별로 지정 가능하게 해주는 서비스이다.

  • IAM과 권한 정책
    IAM과 관련하여 권한 정책을 세울 수 있다.
    그리고 그 정책은 AWS에서 다양한 형식으로 제공하고 커스텀으로 만들수도 있는듯 하다.

    참조 : https://whchoi98.gitbook.io/aws-iam/iam-policy
 

IAM 정책(Policy)과 권한(Permission) - AWS IAM

명시적 거부가 있는 경우, 허용된 정책 권한이 있더라도 우선하게 됩니다. hawkeye는 EC2FullAccess 권한으로 Cloudwatch에 대한 권한을 가지고 있지만, 사용자에 인라인정책을 적용하여 명시적 접근 거

whchoi98.gitbook.io

 

  • CodeCommit
    AWS가 제공하는 서비스.
    소스단계에서 사용된다.
    Git과 비슷한 서비스이다. 다만 Private 한 Repository를 지원한다고 보면 된다.
    보안측면에서 상대적으로 좋음.
    즉, 저장소 역할.

  • CodeBuild
    AWS가 제공하는 서비스.
    Build 단계에서 사용되는 서비스
    즉, 넘어 온 코드를 빌드, 테스트, 컴파일 같은것들을 수행하는 역할
  • CodeDeploy
    AWS가 제공하는 서비스.
    배포 단계에서 사용되는 서비스
    빌드된 결과물을 배포하는 기능을 수행.

  • CodePipeline
    AWS가 제공하는 서비스.
    Source 단계, Build 단계, Deploy 단계의 사이를 이어주는 역할을 하는 서비스이다.
    예를들어, 소스단계에서 코드의 변화가 감지되면 빌드단계로 전달하는 기능을 한다.

  • CodeDeploy-Agent 
    CodeDeploy 에서 사용되는 소프트웨어.

  • appspec.yml 파일
    CodeDeploy-Agent 가 인식하는 파일.

  • CodeBuild-Agent
    CodeBuild 에서 사용되는 소프트웨어.

  • buildspec.yml 파일
    CodeBuild-Agent가 인식하는 파일

 

 

참조 : https://memory-hub.tistory.com/17

 

 

출처 : https://choseongho93.tistory.com/263

 

 

 

 

배포 자동화 파이프라인

 

전체적인 흐름

Source 단계 -> Build 단계 -> Deploy 단계

 

  • Source 단계
    원격저장소의 코드가 변경이 될 경우에 감지하는 역할.
    그리고 코드를 다음 단계로 전달.

  • Build 단계
    이전 단계에서 넘겨받은 코드를 컴파일, 빌드, 테스트를 하여 결과물 (빌드 내용)을 생성함.
    그리고 결과물을 다음 단계로 전달.

  • Deploy 단계
    이전 단계에서 받은 결과물을 서비스에 반영 역할