2022년 전에 정리한 문서들
ECS CI/CD Workshop 정리(1)
반가운사람2
2022. 8. 23. 19:45
반응형
먼저 Cloud9에 IDE 환경을 사용자는 생성하도록 합니다. 따로 정리하지 않겠습니다.
1. 텍스트 유틸리티 설치: jq 도구와 gettext 도구를 설치합니다.
sudo yum -y install jq gettext
2. env-vars.sh 스크립트를 설정합니다. 필요한 모든 환경 변수의 추적을 기록하는 함수를 정의합니다.
cat <<EoF > ~/env-vars.sh
#!/bin/bash
save_var() {
if [ \$? -eq 0 ]; then
export \$1=\$2
echo export \$1=\$2 >> ~/env-vars.sh
fi
}
EoF
chmod +x ~/env-vars.sh
source ~/env-vars.sh
echo "[[ -s ~/env-vars.sh ]] && source ~/env-vars.sh" >> ~/.bash_profile
3. 현재 리전을 기본값으로 CLI에 설정
save_var AWS_REGION $(curl -s 169.254.169.254/latest/dynamic/instance-identity/document | jq -r .region)
aws configure set default.region ${AWS_REGION}
aws configure get default.region
4. 계정 ID를 환경 변수 설정합니다.
save_var AWS_ACCOUNT_ID $(aws sts get-caller-identity --query Account --output text)
5. 워크샵에서 사용하는 리소스를 다운로드합니다.
cd ~/environment
git clone https://github.com/aws-samples/cicd-for-ecs-workshop-code.git
6. ECS에 Cloudwatch Container Insights를 활성화합니다.
aws ecs put-account-setting-default --name containerInsights --value enabled
#활성화 확인
aws ecs list-account-settings --effective-settings --name containerInsights
7. 환경 부분까지 이어서 작성하도록 하겠습니다. 로드 벨런서 및 ECS에 대한 서비스 연결 역할이 있는지 확인합니다.
aws iam get-role --role-name "AWSServiceRoleForElasticLoadBalancing" || aws iam create-service-linked-role --aws-service-name "elasticloadbalancing.amazonaws.com"
aws iam get-role --role-name "AWSServiceRoleForECS" || aws iam create-service-linked-role --aws-service-name "ecs.amazonaws.com"
8. Workshop에서는 Cloudformation에서 사용하는 stack을 제공합니다. 이제 템플릿파일을 이용해서 인프라 환경을 배포합니다.
cd ~/environment/cicd-for-ecs-workshop-code/setup
aws cloudformation deploy \
--stack-name prod-cluster \
--template-file Cluster-ECS-EC2-2AZ-ALB-1NAT.yaml \
--parameter-overrides "EnvironmentName=prod" \
--capabilities CAPABILITY_IAM &
aws cloudformation deploy \
--stack-name staging-cluster \
--template-file Cluster-ECS-EC2-2AZ-ALB-1NAT.yaml \
--parameter-overrides "EnvironmentName=staging" \
--capabilities CAPABILITY_IAM &
클러스터 생성에는 몇 분이 소요되지만 그 동안에는 사용 가능한 클러스터에 의존하지 않으므로 실습 0으로 진행할 수 있습니다. 그래서 Lab 0번을 바로 하겠습니다.
반응형