배포 실패
Error: Deployment failed: AWS Access Key not specified!
IAM 권한 시크릿키가 없다는 오류
Git Action에서 AWS의 S3에접근 권한이 없어 IAM을 생성하겠습니다
- IAM 생성
- 엑세스 키 만들기
- 보안자격증명 -> 엑세스 키 만들기 (서드파티)
직접 정책연결 -> AdministratorAccess-AWSElasticBeanstalk
선택
IAM을 만들고 나서 엑세스키를 만들어야 합니다.
deploy.yml 파일에 있는 환경변수들을 배포하는 프로젝트 레포지토리 설정으로 등록해야 합니다.
Github -> 배포할 레포지토리 -> Setting -> Secrets -> Actions
IAM을 만들고 git repository에 Key 설정을했으니
코드를 수정하고 다시 Push 해보겠습니다!
진짜 성공한줄 알았는데...
에러가 떴습니다.
No Application named 'aws-v5-beanstalk' found.
환경변수 aws-v5-beanstalk
를 찾을수 없다는거였습니다..
차근차근 확인해 보니...
???????
aws
가 아니라 asw
라고 만들었던 것이였습니다... 하하핳
환경변수만 후딱 바꾸고 잘 되나 재도전을 해보겠습니다!
application_name: asw-v5-beanstalk # 엘리스틱 빈스톡 애플리케이션 이름!
environment_name: Asw-v5-beanstalk-env # 엘리스틱 빈스톡 환경 이름!
드디어 성공을 했습니다!
엘라스틱빈스톡 -> 환경으로 이동
/api/book
주소로 이동하면 데이터가 없기에 아무것도 뜨지 않습니다.
PostMan
으로 데이터를 Insert
해보겠습니다.
정상작동 확인하였습니다!!
Ec2 -> 인스턴스(아무거나) -> IP복사
MobaXterm
인스턴스 접속 -> 엘라스틱빈스톡의 username은 ec2-user 입니다!
current 파일 내부에 우리가전송한파일들이 저장 되어있습니다.
cd /var
cd app
cd current
cat Procfile
cd /sbin
ls | grep appstart
cat appstart
전부 잘 등록되었습니다.
cd /var
cd log
ls -al
sudo vi springapp.stdout.log
로그가 잘 남은것을 확인하였습니다!!
ALB(Application Load Balancer)는 고정 IP를 지원하지 않기에 서비스를 하기에 적합하지 않습니다.
그래서 NLB(Network Load Balancer)를 ALB 앞단에 두어 탄력적IP를 할당 후 모든 클라이언트 요청을 NLB로 받겠습니다.