sudo yum update
sudo yum install ruby
sudo yum install wget
wget https://aws-codedeploy-ap-northeast-2.s3.amazonaws.com/latest/install
pwd
[ec2-user@ip-172-31-10-59 ~]$ ll
합계 20
-rwxrwxr-x 1 ec2-user ec2-user 17482 5월 14 17:07
install
chmod +x install
sudo ./install auto
sudo service codedeploy-agent status # 설치된 것 확인.
The AWS CodeDeploy agent is running as PID 3498
Iam > 사용자 만들기
권한 >
기존 정책 직접 연결
엑세스 키 아이디와 비밀 키가 발급 되었다.
임의로 만든 유저 계정으로 접속한다 . ( aws 가 아닌 내 로컬에서 접속하기 위해 )
터미널을 킨다
[ec2-user@ip-172-31-10-59 ~]$ aws configure
AWS Access Key ID [None]:
AKIASKSQNKILN7WJNxxxxxx # iam > 사용자 > 보안자격그룹 확인
Secret Access Key [None]: xxxxxx
Default region
name [None]: ap-northeast-2
Default output format [None]:
vim ~/.aws/credentials 로 잘 들어갔나 확인
[ec2-user@ip-172-31-10-59 ~]$ aws deploy create-application --application-name mywebapp
혹시 이런 에러가 나온다면 aws configre 계정 잘못 누른것이다.
An error occurred (UnrecognizedClientException) when calling the CreateApplication operation: The security token included in the request is invalid.
다시 쳐봐라
[ec2-user@ip-172-31-10-59 ~]$ aws deploy create-application --application-name mywebapp
{
"applicationId": "4a43a0e8-aaa4-43d9-8712-7cb6ab17c0c3"
}
aws deploy push --application-name mywebapp --s3-location s3://aws-learner-code-deploy-bucket123/mywebapp.zip --ignore-hidden-files
잘 나왔을 떄,
(base) hongtae@user:~/다운로드/mywebapp$ aws deploy push --application-name mywebapp --s3-location s3://aws-learner-code-deploy-bucket123/mywebapp.zip --ignore-hidden-files
To deploy with this revision, run:
aws deploy create-deployment --application-name mywebapp --s3-location bucket=aws-learner-code-deploy-bucket123,key=mywebapp.zip,bundleType=zip,eTag=547d5094adf0b83387cfc0655f6d489d --deployment-group-name <deployment-group-name> --deployment-config-name <deployment-config-name> --description <description>
s3 프라이빗 환경에서 버킷 생성
에서 생성 날짜 시간이 바뀌었다?.
aws-learner-code-deploy-bucket123
s3 버킷에 mywebapp.zip이라는 압축파일을 업로드 해놨다
s3://aws-learner-code-deploy-bucket123/mywebapp.zip
/home/ec2-user/appspec.yml was not found
code deploy에 어플리케이션이 생성된 것을 확인할 수 있다.
이제 코드 디플로이와 s3 버켓를 연동시켜
s3에 업로드 되는 파일을 따라 배포할 수 있는 기능을 구현했다.
이제 배포를 시작해보자
호스트를 생성?
배포그룹 생성 필수!
배포 그룹 이름
aws_learner_deploy_group
서비스 역할
자동으로 뜸
배포 유형은
롤형과 블루/그린이 있다
롤형은 배포가 되면 기존에 시스템이 멈추므로 시스템에 영향이 있지만
블루/그린은 새로운 ec2를 추가해 따로 진행 하고 배포가 완료되면 지워지는 것으로 블루/그린이 안정적이다
하지만 인스턴스를 과하게 쓰는 단점이 있다
처음 배포 할 때는 롤링이 좋고 그 다음부터는 안전하게 블루/그린으로
환경 구성은 아직 Ec2 인스턴스 밖에 해놓은게 없다 클릭!
태그는 기존에 있던거 누르면 된다 .
에이전트는 원래 필수로 해야 하지만 이미 Ec2에 다운 받았고 하나밖에 없기에 안함을 설정한다 . 혹시 여러개 인스턴스를 사용한다면 지금 업데이트 및 업데이트 일정 예약
배포 설정을 한번에 할꺼냐 , 반만 할거냐, 한번씩 할거냐를 선택하며 우린 처음이니까 AllAtOnce를 누르고
프러덕트에서는 롤백을 신경써 HalfAtATime을 권장한다
로드 밸런서는 배포 프로세스 중 수신 트래픽을 관리할 로드밸런스를 선택 하지만 우린 만들지 않았으니 패스한다!