책 '서비스 운영이 쉬워지는 AWS 인프라 구축 가이드' 6장 내용에 aws cli 내용을 덧붙였습니다.
aws ec2 create-image --instance-id codeDeploy_예시_인스턴스_id \
--name "codeDeploy_예시_ami" --description "codeDeploy ami 예시"
이 때 codeDeploy예시인스턴스에는 codeDeploy agent가 깔려 있어야 합니다.
aws ec2 create-launch-template \
--launch-template-name codedeploy-experiment-launch-template \
--launch-template-data '{"ImageId": "codeDeploy_예시_ami_id","SecurityGroupIds":["알맞는_security_group_id"],"KeyName": "알맞는_key","InstanceType":"알맞는_인스턴스_타입","IamInstanceProfile": {"Arn":"알맞는_역할의_arn"}}'
launch template을 만드는데 필요한 securityGroup, Key, role은 이미 만들어져 있다고 가정합니다.(명령어로 만드는 과정은 생략합니다)
aws autoscaling update-auto-scaling-group \
--auto-scaling-group-name codeDeploy_예시_auto_scaling_group \
--launch-template '{"LaunchTemplateId": "codedeploy-experiment-launch-template_아이디"}'
aws deploy create-application --application-name code-deploy-example --compute-platform "Server"
aws deploy create-deployment-group \
--application-name code-deploy-example \
--auto-scaling-groups codeDeploy_예시_auto_scaling_group \
--deployment-group-name deploy-group-example \
--service-role-arn 알맞는_역할의_arn \
--deployment-style '{"deploymentType":"IN_PLACE","deploymentOption": "WITH_TRAFFIC_CONTROL"}' \
--load-balancer-info '{"targetGroupInfoList":[{"name":"target_group_예시"}]}'
aws deploy create-deployment \
--application-name code-deploy-example \
--deployment-group-name deploy-group-example \
--revision '{"revisionType":"GitHub", "gitHubLocation":{"repository":"deopard/aws-exercise-a","commitId":"84f927f9598d0b821cf5e876e3bc7f61d040d8f4"}}'