Amazon AWS :: CodeDeploy 이해
국내 전문 CDN 사업자인 GS네오텍은 2015년에 Amazon Web Service의 AWS Premier Consulting 파트너로서 WiseN 이라는 서비스 브랜드로 클라우드 사업을 함께 하고 있습니다.
CODEDEPLOY 이해
다루는 내용
-
CodeDeploy 이해
-
IAM Role 생성
-
CodeDeploy Agent 설치
-
AppSpec 파일 생성
-
CodeDeploy 배포
실습
CodeDeploy 이해
CodeDeploy는 아마존 EC2 인스턴스 및 온프레미스에서 실행 중인 인스턴스를 비롯한 모든 인스턴스에 어플리케이션 배포를 자동화 한다.
CodeDeploy를 사용하기 위해서는 몇가지 준비 사항이 필요하다.
-
EC2 인스턴스에서 S3에 접근하여 소스를 다운 받기 위한 권한
-
CodeDeploy 서비스가 실행되는데 필요한 권한
-
인스턴스에서 실행중인 Agent
-
소스의 배포를 명세하는 appspec.yml 파일
IAM Role 생성
EC2 인스턴스를 위한 IAM Role
-
콘솔에서 IAM 클릭
-
왼쪽 메뉴에서 Policies 클릭
-
Create Policy 클릭
-
Create Your Own Policy à Select 클릭
-
Review Policy 페이지에서1) Policy Name : CodeDeploy-EC2-Policy 입력2) Policy Document :3) Create Policy 클릭
-
왼쪽 메뉴에서 Roles 클릭
-
Create New Role 클릭
-
Set Role Name 페이지에서1) Role Name : CodeDeploy-EC2 입력2) Next Step 클릭
-
Select Role Type 페이지에서1) AWS Service Roles à Amazon EC2 à Select 클릭
-
Attach Policy 페이지에서1) CodeDeploy-EC2-Policy 선택2) Next Step 클릭
-
Review 페이지에서1) Create Role 클릭
CodeDeploy 서비스를 위한 IAM Role
-
Create New Role 클릭
-
Set Role Name 페이지에서1) Role Name : CodeDeploy-Service 입력2) Next Step 클릭
-
Select Role Type 페이지에서1) Amazon EC2 à Select 클릭
-
Attach Policy 페이지에서1) AWSCodeDeployRole 선택2) Next Step 클릭
-
Review 페이지에서1) Create Role 클릭
-
CodeDeploy-Service 롤 클릭
-
Edit Trust Relationship 클릭
-
Edit Trush Relationship 페이지에서1) Policy Document해당 IAM Role을 CodeDeploy 서비스가 사용할 수 있도록 Service 부분을 수정해준다. CodeDeploy의 ARN은 리전별로 다르므로 적절한 ARN으로 수정한다.2) Update Trust Policy 클릭
CodeDeploy Agent 설치
인스턴스를 생성하면서 IAM Role 할당 및 CodeDeploy Agent 설치
-
콘솔에서 EC2 클릭
-
Launch Instance 클릭
-
Step 1: Choose an Amazon Machine Image (AMI) 페이지에서1) Amazon Linux AMI à Select 클릭
-
Step 2: Choose an Instance Type 페이지에서1) Next: Configure Instance Details 클릭
-
Step 3: Configure Instance Details 페이지에서1) IAM Role : CodeDeploy-EC2 선택2) Advanced Details à User data :
User data에 Agent 설치 스크립트 입력3) Next: Add Storage 클릭 -
Step 4: Add Storage 페이지에서1) Next: Tag Instance 클릭
-
Step 5: Tag Instance 페이지에서1) Value : CodeDeploy1 입력2) Next: Configure Security Group 클릭
-
Step 6: Configure Security Group 페이지에서1) SSH, HTTP allow 보안그룹 선택2) Review and Launch 클릭
-
Step 7: Review Instance Launch 페이지에서1) Launch 클릭
-
Select an existing key pair or create a new key pair 창에서1) keypair 선택2) Launch Instance 클릭3) View Instances 클릭
AppSpec 파일 생성
소스 살펴 보기
-
index.html
index.html 파일 하나만 있은 웹 어플리케이션이다. -
appspec.yml
CodeDeploy는 appspec.yml파일을 참조하여 소스를 배포한다.1) version – AppSpec 파일의 버전. 어플리케이션의 버전이 아니다. 변경할 필요 없으며, 향후 CodeDeploy 서비스에서 사용하기 위해서 예정된 키워드이다. (현재는 의미 없음)2) os – 인스턴스의 OS 명시3) files :source – 배포될 소스 경로 지정. (단일 파일 혹은 디렉토리 지정 가능)
destination – 인스턴스에 배포될 경로 지정.4) hooks :
BeforeInstall – 소스가 배포되기 전에 실행할 스크립트
ApplicationStop – 어플리케이션 중지시 실행할 스크립트 -
script/install_dependencies
-
script/start_server
-
script/stop_server· appspec.yml과 각 스크립트 파일들을 메모장(notepad)에서 작성한 경우 escape sequence에 의해 정상적으로 실행되지 않으므로 주의하자.
S3에 소스 업로드
-
CLI를 이용하여 업로드
.tar.gz 혹은 .zip 형태의 압축 파일을 S3 버킷에 업로드 한다.
CodeDeploy 배포
-
콘솔에서 CodeDeploy 클릭
-
Get Started Now 클릭
-
Welcome to AWS CodeDeploy 페이지에서1) Custom Deployment 선택2) Skip Walkthrough 클릭
-
Create New Application 페이지에서1) Application Name : CodeDeployDemo 입력2) Deployment Group Name : CodeDeployGroup 입력3) Search by Tags : 배포 대상 인스턴스 선택CodeDeploy 서비스를 위한 IAM Role4) Service Role ARN : CodeDeploy-Service IAM 롤 선택5) Create Application 클릭
-
“CodeDeployDemo” CodeDeploy 어플리케이션 설정페이지에서1) “CodeDeployGroup” CodeDeploy 그룹명 클릭하여 확장
-
Deploy New Revision 클릭
-
Create New Deployment 페이지에서1) Application : CodeDeployDemo 선택2) Deployment Group : CodeDeployGroup 선택3) Revision Location : https://s3-us-west-2.amazonaws.com/arang-lab/codedeploy.tar.gz 입력 (S3에 업로드한 어플리케이션 소스의 URL)4) Deploy Now 클릭
-
결과
정상적으로 배포되었다.
해당 서버 public로 접속하면 웹 어플리케이션이 실행된다.
참고
※ http://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.html
'Cloud AWS' 카테고리의 다른 글
Amazon AWS :: GS Shop AWS 도입사례 (0) | 2016.02.18 |
---|---|
Amazon AWS :: 인터파크 AWS 도입 (0) | 2016.02.18 |
Amazon AWS Service Limit 알아보기 (0) | 2015.11.28 |
AWS Free Tier 요금 정리 (0) | 2015.11.28 |
Amazon AWS :: RedShift 활용 (0) | 2015.11.25 |