송민준의 개발노트
[AWS] CodeDeploy + Github Action 구성 본문
개발 및 인프라 환경
1. AWS (EC2(ubuntu), RDS(Mysql), S3, CodeDeploy)
2. Github (Action)
3. Spring Boot(2.5)
1. IAM 생성
- 역할생성
1) EC2 역할( 이름은 적당하게 EC2-IAM... )
2) CODE_DEPLOY 역할
- 사용자 추가
- 생성 후 뜨는 Access key, Secret Key 백업!
2. EC2 생성
- 프리티어 사양으로 Ubuntu 22 LTS 기본옵션으로 생성
- 인스턴스 태그추가(Codedeploy에서 연결하기 위한 키)
- 보안그룹에서 인바운드규칙 추가 (사용할 포트, db 포트, 접근 IP 구성)
- Elastic IP 발행
- Elastic IP 인스턴스에 연결
- 키값으로 putty 연결 해서 설치
sudo apt update
sudo apt upgrade
sudo apt install openjdk-11-jdk (버전에 맞춰서)
sudo apt-get install ruby-full ruby-webrick wget -y
cd /tmp
wget https://aws-codedeploy-us-east-1.s3.us-east-1.amazonaws.com/releases/codedeploy-agent_1.3.2-1902_all.deb
mkdir codedeploy-agent_1.3.2-1902_ubuntu22
dpkg-deb -R codedeploy-agent_1.3.2-1902_all.deb codedeploy-agent_1.3.2-1902_ubuntu22
sed 's/Depends:.*/Depends:ruby3.0/' -i ./codedeploy-agent_1.3.2-1902_ubuntu22/DEBIAN/control
dpkg-deb -b codedeploy-agent_1.3.2-1902_ubuntu22/
sudo dpkg -i codedeploy-agent_1.3.2-1902_ubuntu22.deb
systemctl list-units --type=service | grep codedeploy
sudo service codedeploy-agent status
- 인스턴스 IAM 연결
3. CodeDeploy 생성
- 서비스 역할은 1번에서 생성한 CODE_DEPLOY 역할 선택
- 환경 구성은 Amazon EC2 인스턴스 선택( 키값 2번에서 만들었던 인스턴스 태그 키 추가)
- 로드밸런싱은 설정안했다면 체크 박스 해제
4. S3 기본 옵션으로 생성
- S3는 CodeDeploy에서 배포할 파일을 보관하는 임시 저장소로 쓴다.
5. RDS 생성 - Mysql 8.x (생략)
6. github 세팅
- Security-Secrets-Actions에 Repository secrets 등록
AWS_ACCESS_KEY_ID : AWS IAM 등록 때 생성된 access key
AWS_SECRET_ACCESS_KEY : AWS IAM 등록 때 생성된 secret key
AWS_REGION : ap-northeast-2
그 외 jwt key, db 정보와 같은 비공개해야 하는 정보들을 여기에 추가하면 된다.
참고 블로그
https://goodgid.github.io/Github-Action-CI-CD-AWS-EC2/
https://github.com/aws/aws-codedeploy-agent/issues/301
https://zzang9ha.tistory.com/339
https://sarc.io/index.php/aws/1327-tip-codedeploy-missing-credentials
'AWS' 카테고리의 다른 글
ec2 배포 (0) | 2020.04.06 |
---|---|
AWS RDS(MariaDB) 해보기 (0) | 2020.03.31 |
AWS Amazon Linux 1 써보기 (0) | 2020.03.29 |
AWS RDS Oracle 시간대 변경 (0) | 2020.02.05 |
ubuntu 파일 경로 설정 및 파일생성 권한 (0) | 2020.02.04 |