brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jun 07. 2020

396. CodeDeploy




<1> 리눅스 서버 접속

<2>  CodeDeploy 에이전트 설치 , Http 보안 그룹 허용

<3> 코드 준비

<4> 배포

<5> 모니터링

<6> 업데이트



<0> 사전 준비

role arn



<1>  linux EC2 접속

putty



<2>  CodeDeploy 에이전트 설치 , Http 보안 그룹 허용


1

EC2에  CodeDeploy 에이전트 설치

 #  service codedeploy-agent status

The AWS CodeDeploy agent is running as PID 12413

2

보안그룹 any에서 http   허용



<3> 코드 준비


1.  코드 준비

2.  웹서버 , 마리아 DB실행 


1 . 소스 코드 다운로드

$

wget https://s3-us-west-2.amazonaws.com/us-west-2-aws-training/awsu-spl/spl-82/1.4.1.prod/scripts/WordPress-master.zip


$

unzip WordPress-master.zip -d /tmp/WordPress_Temp


mkdir -p /tmp/WordPress


//tmp wordpress폴더를 소스로 하기 위해 복사.

cp -paf /tmp/WordPress_Temp/WordPress-master/* /tmp/WordPress


rm -rf /tmp/WordPress_Temp

rm -f WordPress-master.zip



2

스크립트 폴더 만들기

mkdir -p /tmp/WordPress/scripts


3

설치전 스크립트 만들기

vi  /tmp/WordPress/scripts/install_dependencies.sh

#!/bin/bash

yum install -y httpd php mariadb-server php-mysqlnd


4

시작 스크립트작성

vi  /tmp/WordPress/scripts/start_server.sh

#!/bin/bash

service httpd start

service mariadb start


5

stop 스크립트

vi /tmp/WordPress/scripts/stop_server.sh 

// 코드



6

DB생성 스크립트

vi  /tmp/WordPress/scripts/create_test_db.sh

#!/bin/bash mysql -uroot <<CREATE_TEST_DB

CREATE DATABASE IF NOT EXISTS test;

CREATE_TEST_DB


7

권한 허용 스크립트

vi  /tmp/WordPress/scripts/change_permissions.sh

#!/bin/bash

chmod -R 777 /var/www/html/WordPress


8

모든 스크립트 실행되게 

chmod +x /tmp/WordPress/scripts/*


9

ls -la /tmp/WordPress/scripts





10

배포시 ec2에서 사용할 스크립트 지정

디렉토리 지정

vi /tmp/WordPress/appspec.yml

appspec.yml 파일 내용

// 스크립트들 실행





<4> 배포


s3를 서버로 해서 배포한다.


aws configure


1

CodeDeploy 응용프로그램 만들기

aws deploy create-application --application-name WordPress_App




2

버킷 만들기

aws s3 mb s3://code-bucket11


cd /tmp/WordPress



3

S3에  애플리케이션 업로드

aws deploy push --application-name WordPress_App --description "This is a revision for the application WordPress_App" --ignore-hidden-files --s3-location s3://BUCKET/WordPressApp.zip --source .

// 버킷이름  변경


aws deploy push --application-name WordPress_App --description "This is a revision for the application WordPress_App" --ignore-hidden-files --s3-location s3://code-bucket11/WordPressApp.zip --source .





4

배포

aws deploy create-deployment-group --application-name WordPress_App --deployment-config-name CodeDeployDefault.AllAtOnce --deployment-group-name WordPress_DG --ec2-tag-filters Key=Name,Value=CodeDeploy,Type=KEY_AND_VALUE --service-role-arn ROLE

//ROLE 이름은 대체해야 함.


//  deployment-group-name WordPress_DG 


aws deploy create-deployment-group --application-name WordPress_App --deployment-config-name CodeDeployDefault.AllAtOnce --deployment-group-name WordPress_DG --ec2-tag-filters Key=Name,Value=CodeDeploy,Type=KEY_AND_VALUE --service-role-arn  arn:aws:iam::928585294515:role/codedeploy-service-role






5

aws deploy create-deployment --application-name WordPress_App --s3-location bucket=BUCKET,key=WordPressApp.zip,bundleType=zip --deployment-group-name WordPress_DG --description "This is a revision for the application WordPress_App"

// 버킷이름  변경


aws deploy create-deployment --application-name WordPress_App --s3-location bucket=code-bucket11,key=WordPressApp.zip,bundleType=zip --deployment-group-name WordPress_DG --description "This is a revision for the application WordPress_App"







<5> 모니터링


Service > CodeDeploy > Support


View events




<6>  update




감사합니다.

매거진의 이전글 395. ElastiCache : Windows
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari