1. JAVA 설치
sudo apt install openjdk-11-jre-headless
2. AWS CLI 설치
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ sudo apt install unzip
$ unzip awscliv2.zip
$ sudo ./aws/install
3. CodeDeploy Agent 설치
$ sudo apt update
$ sudo apt install ruby-full # [Y / n] 선택시 Y 입력
$ sudo apt install wget
$ cd /home/ubuntu
$ sudo wget https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/install
$ sudo chmod +x ./install
$ sudo ./install auto > /tmp/logfile
sudo service codedeploy-agent status
로 서비스 실행 중인지 확인
- initialize.sh : 빌드 결과물을 실행할 수 있도록 실행 권한 추가
- server_clear.sh : 빌드 결과물이 저장된
build
디렉토리 제거
- server_start.sh :
DeployServer-0.0.1-SNAPSHOT.jar
라는 빌드 결과물 실행
- server_stop.sh : 실행중인 Spring Boot 프로젝트 종료
- CodeDeploy 대시보드 - 애플리케이션 생성 - 이름/플랫폼(EC2/온프레미스) - 생성
- 생성한 애플리케이션 배포 그룹 탭 - 배포 그룹 생성 - 이름입력 - 본인 소유 EC2 인스턴스 IAM 역할 선택 - 환경구성 Amazon EC2 인스턴스 선택 - 태그 그룹 Name 태그 키와 값 선택 - 로드 밸런싱 활성화 체크 해제 - 배포 그룹 생성
- CodePipeline 대시보드 - 파이프라인 생성 - 이름 입력 - 소스 스테이지 (GitHub버전2) - GitHUb에 연결 - 새 앱 설치 - 계정 선택 - Only select repositories - 연결 - 리포지토리 이름 지정, 브랜치 이름 main
- 빌드 스테이지 - AWS CodeBuild - 프로젝트 생성 - 이름 입력 - 운영체제(Amazon Linux2), 런타임 (Standard), 이미지 (aws/codebuild/amazonlinux2-x86_64-standart:3.0), 빌드스펙
DeployServer/buildspec.yml
- 배포 스테이지 - AWS CodeDeploy - 이름 그룹 선택 - 파이프라인 생성
클라이언트와 서버를 서로 연결하고 노출하면 안되는 값 보호
AWS Parameter Store 서비스를 이용하면 EC2 instance에 환경 변수 전달 가능
Parameter Store 대시보드로 이동 - 파라미터 생성
build.gradle 수정
bootstrap.yml 파일 생성 (파라미터 스토어에 저장된 변수 조회)
application.properties 확인 (파라미터 스토어에 저장된 값을 읽어옴)