[CI/CD] EC2 에 jar 배포 (3/3)

By | 2020년 3월 29일
Table of Content

EC2 에 jar 배포

EC2 용 IAM 역할추가

IAM역할 을 추가합니다.

ec2-codedeploy-role 또는 원하는 이름으로 역할을 생성합니다.

신뢰할 수 있는 유형의 개체 선택AWS 서비스 를 선택하고, 사용 사례 선택EC2 를 선택 후, 다음 : 권한 을 클릭합니다.

AmazonEC2RoleforAWSCodeDeploy 을 선택하고 역할을 생성합니다.

CodeDeploy 용 IAM 역할추가

IAM역할 을 추가합니다.

codedeploy-role 또는 원하는 이름으로 역할을 생성합니다.

신뢰할 수 있는 유형의 개체 선택AWS 서비스 를 선택하고, 사용 사례 선택CodeDeploy 를 선택 후, 다음 : 권한 을 클릭합니다.

AWSCodeDeployRole 단 하나밖에 없으므로 선택없이 역할을 생성합니다.

EC2 인스턴스 생성

인스턴스를 생성하고, 이름을 지정합니다.(보안그룹에 ssh 와 8080포트를 열어줍니다.)

여기 를 참조하여 CodeDeploy 에이전트를 설치합니다.

여기 를 참조하여 JDK 를 설치합니다.

인스턴스에 인스턴스 설정 > IAM 역할 연결/바꾸기 에서, 위에서 생성한 ec2-codedeploy-role 를 설정하고, 인스턴스를 재부팅합니다.

CodeDeploy 애플리케이션 생성

CodeDeploy 로 이동하여, 애플리케이션 생성 버튼을 클릭하여 애플리케이션을 생성합니다.

애플리케이션 이름 을 입력하고, 컴퓨팅 플랫폼EC2/온프레미스 를 선택합니다.

애플리케이션이 생성되면, 배포그룹생성 버튼을 클릭합니다.

배포그룹 이름을 입력하고, 서비스 역할에 위에서 생성한 codedeploy-role 을 입력합니다.

배포유형은 현재위치를 선택합니다.

태그 키에 Name 을 입력하고, 값에 생성한 EC2 인스턴스의 이름을 선택합니다.

환경설정에 Amazon EC2 인스턴스를 체크하고, 배포설정은 CodeDeployDefault.AllAtOnce 를 입력합니다.

로드 밸런싱 활성화는 체크 해제해 줍니다.

.travis.yml 수정

.travis.yml 에 아래 내용을 추가합니다.

......
deploy:
  - provider: s3
    access_key_id: $AWS_ACCESS_KEY
    secret_access_key: $AWS_SECRET_KEY
    bucket: skyer9-deploy
    region: ap-northeast-2
    skip_cleanup: true
    acl: private
    local_dir: deploy
    wait-until-deployed: true
  - provider: codedeploy
    access_key_id: $AWS_ACCESS_KEY
    secret_access_key: $AWS_SECRET_KEY
    bucket: skyer9-deploy
    key: TestCI2.zip
    application: test-ci2               # CodeDeploy 애플리케이션 생성시 입력한 애플리케이션 이름
    deployment_group: codedeploy-group  # CodeDeploy 애플리케이션 생성시 입력한 배포그룹 이름
    bundle_type: zip
    region: ap-northeast-2
    wait-until-deployed: true
......

커밋을 하면 EC2 인스턴스에 배포됩니다.

답글 남기기