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
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 조립--------
- 코드디플로이에서 넘어온 zipdl 안착될 ec2 내부 디렉토리 생성
- travis.yml과 마찬가지로 코드디플로이의 appsepc.yml 설정
- 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 |