-
사이드프로젝트 서버 배포 - Github Action + CodeDeploy + EC2 + RDSAWS 2024. 8. 4. 01:53
사이드프로젝트 배포할때 쓰려고 기록
코드 예제 : https://github.com/sendkite/githubAction
1. EC2 설정하기
- 2024.7 우분투 LTS 기준
1. EC2 생성 2. tag 입력 - CodeDeploy-Element 3. Inbound rule 설정 > 80, 8080, 443 4. 정적인 IP 설정 1. Elastic IP 생성 (Allocate) 2. Elastic IP - EC2 매핑 (Associate) 5. ssh로 EC2 접속 6. apt 업데이트 sudo apt update && sudo apt upgrade) 7. 자바 설치 (참고 : <https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/generic-linux-install.html>) - wget -O - <https://apt.corretto.aws/corretto.key> | sudo gpg --dearmor -o /usr/share/keyrings/corretto-keyring.gpg && echo "deb [signed-by=/usr/share/keyrings/corretto-keyring.gpg] <https://apt.corretto.aws> stable main" | sudo tee /etc/apt/sources.list.d/corretto.list - sudo apt-get update; - sudo apt-get install -y java-17-amazon-corretto-jdk - java --version - cd /home/ubuntu 8. Codedeploy agent 설치 (참고 - <https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/codedeploy-agent-operations-install-ubuntu.html>) - sudo apt install ruby-full - sudo apt install wget - wget <https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/install> - chmod +x ./install - sudo ./install auto - systemctl status codedeploy-agent 9. EC2 권한 설정 1. IAM 2. Create Role (AWS Service, EC2) 3. CodeDeployFullAccess 4. S3FullAccess 10. EC2에 IAM롤 적용
2. RDS 생성
1. Create RDS 2. Easy create > mysql > free tier
3. S3 버킷 생성
- S3 bucket 생성
- IAM 생성(S3FullAccess, CodeDeployFullAccess)
- accessKey 생성
4. Code Deploy 설정
- IAM Role 생성
- Code Deploy > Application > 생성 (EC2/On-premisses)
- Deployment groups 생성
- Role 매핑
- tag로 EC2 매핑
5. Github Action 설정
- github secret에 s3 접근 key 설정 (Github repo > setting > secret > actions 변수 생성)
- .github/workflows/deploy.yaml 파일에 배포 스크립트 작성
- build script
- aws cli러 s3 업로드
- code deploy 실행 script
- EC2 접속
- code deploy agent 재시작
- sudo service codedeploy-agent restart
- log 보면서 git action TEST
- tail -F /var/log/aws/codedeploy-agent/codedeploy-agent.log
- code deploy agent 재시작
6. appsepc.yml 작성
- 권한 설정
- hook 작성
- shell script
- JAR 복사 및 실행
- shell script
반응형'AWS' 카테고리의 다른 글
[도구] CloudWatch를 쉽게 볼 수 있게 해주는 cli 툴 awslogs (0) 2023.07.02 2023 AWS 웹 호스팅하기 (Route53, S3, ACM, CloudFront) (0) 2023.05.31 EC2에 JAVA 17, Jenkins 설치하기 (0) 2023.05.01 [DynamoDB (2)] DynamoDB 사용하기전 핵심 개념 (2) 2023.02.16 [DynamoDB (1)] DynamoDB란? DynamoDB 사용 조건, DynamoDB 핵심 개념 설명 (0) 2023.02.16