공부하기싫어
article thumbnail

#AWS Certified Developer Associate

 

(12.11 시작)

 

198. CodeDeploy 개요

크롬 팅겨서 다 날아감

 

 

199. CodeDeploy 실습

먼저 iam role 을 생성해줌

 

codedeploy 를 위한 iam role
codedeploy 를 위한 iam role

그리고 ec2 instance 를 위한 역할도 새로 생성해 주는데

ec2 역할을 새로 만드는 이유는 codedeploy agent 를 실행하기 위함

iam role for ec2
iam role for ec2

 

iam role for ec2

 

역할이 모두 생성되었으니 이제 codedeploy 서비스를 생성할 차례

 

codedeploy application 생성

이후 배포 그룹을 생성하기 전에

배포할 ec2 instance 를 생성해줬다

 

ami : amazon linux2 ami

type : t2.micro

iam role : EC2InstanceRoleForCodeDeploy

sg : 22,80 free inbound

 

생성됬으면 ssh 접속해서

# Installing CodeDeploy Agent
sudo yum update
sudo yum install ruby

# Download the agent (replace the region)
wget https://aws-codedeploy-eu-west-3.s3.eu-west-3.amazonaws.com/latest/install
chmod +x ./install
sudo ./install auto
sudo service codedeploy-agent status

위 명령들로 codedeploy agnet 를 설치해줌

그리고 배포그룹에 적용할 태그도 생성

Environment

 

다시 codedeploy 로 와서

이제 배포 그룹을 만들어줄 차례인데, 배포 그룹은 EC2 인스턴스들의 세트 라고 한다

 

배포 그룹 생성

서비스 역할은 이전에 만들어줬던 codedeployservicerole 을 선택

이번 실습에서는 in-place(현재위치) 유형을 선택

 

Enviornment configure

auto scaling group 혹은 온프레미스 를 선택할 수도 있지만

이번 실습에선 ec2 인스턴스로만 진행

태깅했던 그룹을 선택

 

Deployment settings 는 많이 중요하다고 한다

Deployment settings

All at once , One at a time, Half at a time 을 선택하거나

create deployment settings

사용자 설정의 배포 구성을 만들 수도 있다

 

배포 그룹을 만들었으니 이제

배포를 생성할 차례

 

배포를 만들때 revision type(개정 유형) 을 s3 혹은 github 중 선택하게 되는데

이를 위해 s3 버킷을 하나 만들어줬다

그리고 sample application 을 s3 에 올려줬다

 

s3 buckekt
SampleApp_Linux.zip
0.01MB

위 zip 파일을 올리고

 

revision location

revision location 에 s3 주소를 붙여 넣는다

그리고 create deployment 해줌

 

deployment

그러면 바로 배포가 진행되고

 

events

배포가 완료되면 events 보기에서 각 단계별 로그들을 볼 수 있다

만들어준 인스턴스 ip 로 http 접속해보면

웹사이트가 하나 나옴

 

 

 

200. EC2 및 ASG 용 CodeDeploy

CodeDeploy - Deployment to EC2

- ec2 에 접근할때 appspec.yml 파일이 코드의 루트어야함

- 배포 전략 구성

- ec2 인스턴스 플릿을 인 플레이스 업데이트

- 후크를 사용할 수도 있다. 

 

CodeDeploy - Deploy to an ASG

  • In-place Deployment
    • ec2 in-place 배포 유형과 같음, 기존 ec2 인스턴스를 업데이트함
    • asg 에 새로운 ec2 인스턴스를 생성했을 경우에는 codedeploy 에서 자동으로 배포를 받아오기 때문에 편리함
  • blue/green Deployment
    • 새로운 Auto-Scaling Group 이 생성됨
    • 설정이 복사되고 해당하는 ec2 인스턴스를 얼마나 유지할지 결정해야함
    • 하나의 대상 그룹에서 다른 대상 그룹으로 리디렉팅하는 ELB 는 장애조치 됨

 

CodeDeploy - Redeploy and Rollback

Rollback - 이전에 배포된 애플리케이션의 revision 을 재배포하는 것

- automatically : 배포에 실패했을때 혹은 cloudwatch 알람이 트리거 되서 배포에 실패했다고 알려주는 경우

- Manually(수동)

Disalbe Rollbacks (롤백 비활성화) - 배포에 대해 롤백이 실행되지 않음

롤백을 하면 CodeDeploy는 마지막으로 감지한 성공한 리비전을 새로 배포함 - 이전으로 돌아가진 않음

 

 

 

201. CodeStar 개요

codestar는 이전에 살펴봤던 모든 서비스를 그룹화하는 통합 솔루션이다

- codecommit, github, codebuild, codedeploy, cloudformation, codepipeline, cloudwatch, ...

지원 언어

- C#, Go, HTML5, Java, Node.js, PHP, Python, Ruby

codestar 에는 문제 트래킹 도구가 있고 이 도구를 문제 추적에 사용하면 JIRA 또는 Github의 문제와 통합되어서 사용하기 편리하다고 함

cloud9 도구를 사용하면 코딩을 통합할 수 있음

모든 구성 요소를 볼 수 있는 대시보드도 있다고 함

codestar는 무료 서비스이고 codecommit, codebuild 등과 같은 다른 모든 서비스는 기본 사용량에 대한 비용만 지불하면 됨

codestar는 통합뷰가 아니여서 각 도구의 사용자 지정이 제한적임 - 각 도구는 codestar의 기본 도구이기 때문에 자체 콘솔에서 사용자 지정을 할 수 있음

 

 

 

202. CodeStar 실습

IAM Service Role

처음 codestar 프로젝트 생성을 들어가면

서비스 역할을 생성해야 한다고 경고문이 나온다

서비스 역할 생성 버튼을 눌러주면 수초 후 역할이 생성됨

 

템플릿은 여러가지 있는데 이번 실습에서 아무거나 상관없대서

파이썬+beanstalk 으로 선택해주고 다음

 

프로젝트 설정

이름 입력해주고 리포지토리는 codecommit 으로 해줬다

 

ec2 type

beanstalk 로 템플릿을 정해줬기때문에

생성될 ec2 의 구성을 정의해주고

다음

검토화면 확인하고 프로젝트 생성하면

 

provisioning

프로비저닝 되고 있다.

 

다음 단계 에서 보는 것처럼

cloud9 에서 프로젝트 코드를 수정하거나 프로젝트에 다른 사람을 추가할 수도 있다

다른사람 추가는 사용자를 선택하거나 새 IAM 사용자를 생성할 수도 있고

계정이름, 이메일주소나 프로젝트 역할을 소유자, 기여자, 뷰어로 설정도 가능하고

beanstalk 플랫폼 뒤에 있는 프로젝트 인스턴스에 관한 ssh 액세스 허용 여부도 설정할 수도 있다

 

프로비저닝 되는 작업은

cloudformation

cloudformation 에 만들어준 codestar 스택을 보면

여러 리소스들이 자동으로 생성된것을 확인할 수 있다

 

ide

ide 환경도 여러가지 있다

 

pipeline 탭에서는

codestar 콘솔을 벗어나지 않고 전체 pipeline 을 확인할 수 있다

 

모니터링 탭에서는 배포 이후의 모든 지표를 보여준다

 

delete

이후 삭제해줬다

 

 

 

203. CodeArtifact 개요

소프트웨어를 설계할 때 자체 소프트웨어가 의존하는 다른 소프트웨어를 사용하는 것으로 코드 종속성(code dependencies)이라고 함 

소프트웨어 설계 때마다 일반적으로 저장소에 소프트웨어를 푸시한 뒤 다른 소프트웨어를 그 위에 설계함 - 완전 종속성 - artifact management (Artifact 관리)

일반적으로 Articat 를 사용할 때는 자체 Artifact 관리 시스템을 설정함

CodeArtifact 를 사용하면 소프트웨어 개발을 위한 보안, 확장성, 비용의 효율적인 Artifact 관리 시스템을 설정할 수 있음

Maven, Gradle, npm, yarn, twine, pip, NuGet 과 같은 일반 종속성 관리 도구와 통합할 수 있음

개발자와 CodeBuild 모두 CodeArtifact 를 사용해 aws 클라우드의 Artifact 에서 직접 종속성을 검색할 수 있다

 

공용 Artifact 저장소를 프록시하고 자체 CodeArtifact 내에서 자체 패키지를 가지는 것

 

오 신기하군

 

 

 

204. CodeGuru 개요

머신러닝 기반의 서비스로 두가지 기능이 있다고 함

- 자동화된 코드 검토 기능

- 애플리케이션 성능 권장 사항 기능

 

개발자가 코드를 푸시하면 대부분 다른 개발자가 코드를 검토함, 코드가 프로덕션에 배포되면 코드의 성능을 모니터링해야 하고 성능을 확인해서 버그를 감지할 수도 있는데 codeguru 에서는 자동으로 할 수 있다고 함

 

codeguru reviewer - 정적 코드 분석으로 자동으로 코드를 분석

codeguru profiler - 런타임 또는 프로덕션 중에 애플리케이션에 관한 가시성 또는 권장 사항을 제공함

 

java와 python 지원

intergrates with github, bitbucket, codecommit