포트폴리오/AWS CICD

Travis CI + S3 + Codeplay

서버관리자 페페 2024. 5. 2. 16:12
1. Travic CI 가입(서드파티 활성화)  
2. travis.yml 추가 -> 깃헙과 트래비스 연동 깃헙 푸쉬시 travis 반응 확인
3. travis- AWS s3 연동 IAM 발급 (액세스 키 별도생성)
travis ci에 키 등록(.travis.yml에서 사용가능)
S3 버킷 생성
.travis.yml에 버킷 추가
(git push -> travis CI) -> "s3"에 zip 생성되는 흐름 확인
4. CODEDEPLOY  EC2가 받을 수 있게 IAM 역할 추가
ec2 터미널에서 codedeploy 에이전트 설치
codedeploy -> ec2 권한
codedeploy, 그룹 생성 + ec2태그 매치 
5. 조립 appspec.yml 에 ec2 경로 설정
.travis.yml에 codedeploy provider추가
(git push -> travis CI -> s3) -> "ec2"에 생성 확인
6. ec로 안착된 파일이 자동 배포되도록 로컬 리포지토리 내에 쉘스크립트 추가
두개 yml 같이 수정해주기
(git push -> travis CI -> s3 -> ec2) -> "자동 배포" 확인

 

 

travis.yml 앞에 .이 들어가야한다

.travis.yml

 

application.properties가 아닌 pom.xml위치에 생성해야 한다

-

 

IAM 발급

 

기존, 직접 연결 정책

 

액세스 키 / 비밀 액세스 키는 직접 생성해야함

https://velog.io/@99_insung/AWS-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%A4%80%EB%B9%84-IAM-S3

 

 

 

🌈Travis CI : 사전 준비 (IAM, S3)

부여한 권한IAM 사용자 생성 후 계정에 MFA설정 및 액세스 키를 할당 하였다.생성한 액세스 키를 Travis CI 레포지토리 프로젝트의 환경변수에 추가하였다.secret_access_key라는 옵션이 잘못되었다고 한

velog.io

 

travisCI -> setting 

 

-

 

버킷 생성

별 다른 설정없고, public 차단 유지한채 생성

 

-

 

.travis.yml에 버킷 접근 추가 + git push

 

s3에 도달 확인

 

-

ec2가 codedeploy에서 받아와야 하므로 IAM 권한 추가

 

 

 

*사용자 -> AWS서비스 외

*역할 :AWS서비스에만

 

-

 

작업 -> 보안 -> IAM 역할 바꾸기

인스턴스 재부팅

 

터미널 -> Ec2 code deploy 에이전트 설치

 

-

 

 

https://jojoldu.tistory.com/281

 

리전 직접 설정 후 설치

install 권한 부여

실행

status 확인

 

*루비 설치 필요

 

-

 

codeDeploy -> EC2 권한 생성(IAM)

-

 

배포 시작 -> 배포 그룹 : 서비스 역할에서

상기에 만든 IAM 사용된다.

 

*2 이상만 블루 / 그린 -> 현재는 일반

+ 로드밸런싱 안하므로 allatonce

 

-------TRAVIS CI + S3 + CODEDEPLOY 조립--------

 

  1. 코드디플로이에서 넘어온 zipdl 안착될 ec2 내부 디렉토리 생성
  2. travis.yml 마찬가지로 코드디플로이의 appsepc.yml 설정
  3. travis.yml 프로바이더 추가

 

https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/ruby-development-environment.html

 

루비 2버전 삭제 후 3 설치

key 별도 필요하다

동일 오류 발생

루비가 아니고 sdk루비 버전이라 업데이트 -> 동일 문제

로그를 구글링하니 이건 에러가 아니고 무시해도 되는 수준

missing s3키가 오류임

 

*참고 : https://yeonyeon.tistory.com/72

 

 

bucket과 번들타입 사이에 Key를 안넣어줌

 

key 삽입 후에도 missing key 안뜨지만 실패

 

혹시 들여쓰기 오타 찾아봤지만 없었고, 키 이후 별다른 누락이 없으면 배포는 진행된다

배포가 진행되었다면 에러는 aws에서 직접 확인 가능

ec2 연결문제

 

태그가 인스턴스 식별자 아니라 연결에도 쓰임.

 

ㅠㅠ

 

ec2 생성됨 확인

 

 

-------------------

파일 내부에 쉘 스크립트 작성

 

Packaging war 삭제

target은 메인폴더 바로 직후이므로 슬래쉬 없애야 함 ㅠㅠ

*

'포트폴리오 > AWS CICD' 카테고리의 다른 글

무중단 배포(nginx)  (1) 2024.05.02
EC2 배포  (0) 2024.05.01
터미널 명령어  (0) 2024.05.01
EC2 RDS 연결  (0) 2024.04.30
EC2 개설  (0) 2024.04.30