EC2에서 사용할 IAM 역할을 생성
AWS 서비스가 클릭되어 있는 지 확인하고, 일반 사용 사례에서 EC2 항목을 선택한 후 다음
아래 권한들을 연결.
•AWSCodeDeployFullAccess
•AmazonS3FullAccess
•AWSCodeDeployRole
•CloudWatchLogsFullAccess
역할 만들기
보안 -> IAM 역할 수정
5.CodeDeploy에 적용할 역할도 만들기
6.CodeDeploy, 아래 쪽 사용 사례 선택에서 CodeDeploy를 선택후 역할 만들기.
CodeDeploy 역할 만든 후 AWS 서비스의 CodeDeploy로 이동하여 애플리케이션 생성
EC2/온프레미스를 선택한 후 애플리케이션 생성
CodeDeploy에서 발생한 이벤트를 EC2가 수신할 수 있도록 CodeDeploy Agent를 설치.
우선 사용자 추가를 위해 IAM 서비스의 그룹 페이지로 이동해서 새로운 그룹 생성
정책 연결에서는 아무것도 선택하지 않기.
정책 연결을 생략했기 때문에 인라인 정책 생성 클릭.
Json 클릭(수정됨)
정책을 설정하고 적용
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"autoscaling:*",
"codedeploy:*",
"ec2:*",
"lambda:*",
"elasticloadbalancing:*",
"s3:*",
"cloudwatch:*",
"logs:*",
"sns:*"
],
"Resource": "*"
}
]
}
그룹에 사용자를 추가
사용자 추가 단계 1에서는 사용자 이름과 AWS 액세스 유형을 선택
16.사용자 추가 단계 2에서는 그룹에 사용자 추가를 클릭하고 위에서 생성한 그룹 선택
AWS Access Key ID [None]: 다운로드 받은 .csv파일에서 Access key ID 항목 입력
AWS Secret Access Key [None]: 다운로드 받은 .csv파일에서 Secret access key 항목 입력
Default region name [None]: ap-northeast-2
Default output foramt [None]: json
wget https://aws-codedeploy-ap-northeast-2.s3.amazonaws.com/latest/install
chmod +x ./install
sudo apt-get install ruby
sudo ./install auto
sudo service codedeploy-agent status
sudo vim /etc/init.d/codedeploy-startup.sh
#!/bin
sudo service codedeploy-agent restart
sudo chmod +x /etc/init.d/codedeploy-startup.sh
--------------------------터미널 끝 -------------------------------
프로젝트 제일 상위에 appspec.yml 추가
version: 0.0
os: linux
files:
CodeDeploy가 배포하게 될 위치를 build폴더로 잡아두었기 때문에 해당 경로에 build 폴더를 생성
AWS 서비스의 EC2 대시보드로 이동해 해당 인스턴스를 클릭하면 하단에 세부정보가 나오는데 그 중 태그 탭
태그 설정이 끝났다면 다시 AWS 서비스의 CodeDeploy 페이지로 이동 리스트에서 CodeDeploy 애플리케이션 클릭
애플리케이션의 상세화면에서 배포 그룹 생성을 클릭
배포 그룹 이름과, 서비스 역할을 선택. 서비스 역할은 앞서 IAM 서비스에서 CodeDeploy용으로 만들었는데 해당 태그 값이 리스트를 클릭하면 노출, 만들고 나서 배포 생성 클릭
연동할 저장소의 이름을 입력하고 배포를 하고 싶은 커밋 ID를 입력
파이프라인 생성
GitHub version2선택(수정)
본인의 저장소와 브랜치를 설정, 빌드 설정X
배포 스테이지에서는 CodeDeploy를 선택했고, 2편에서 설정한 배포 애플리케이션 및 배포그룹을 선택
pm2 --watch옵션으로 서버 실행 -> 코드가 변경되면 자동으로 서버 재시작
https://urbanbase.github.io/dev/2019/07/02/AWS-CodePipeline.html