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 인스턴스에 배포됩니다.