위의 글에서는 윈도우에서 putty를 이용해서 접속했는데, 지금은 맥북 유저라 그냥 터미널에서 바로 접속하고 있습니다.
꼭 ec2 만들면서 생성한 key pair는 잘 보관해야 합니다.
ssh -i 생성한keypair파일.pem ubuntu@탄력적ip주소
터미널에 이 명령어 입력해서 ssh 클라이언트에 접속하고 있습니다.
혹시나 파일 권한때문에 접속이 안된다고 에러가 발생하면
chmod 700 파일이름
요렇게 해주세용.
다른 프로젝트에서 생성한 RDB는 퍼블릭 엑세스를 허용해서 접근을 했습니다. 하지만 이렇게 하면 IPv4가 할당돼서 과금이 돼더라구요. 그래서 좀 다른 방식으로 생성해야 합니다.
ec2 인스턴스에 연결을 선택하고 EC2 인스턴스에서 생성한 인스턴스를 선택해주세용
이 방식을 사용하려면 생성한 ec2와 가용영역이 일치해야합니다. 안 그러면 Data transfer 요금이 발생합니다.
이 위의 사진 바로 밑에 가용영역 할당하는 부분이 있는데 자동으로 선택한 ec2랑 맞춰준건지 따로 선택을 못하게 비활성화 돼있네요.
위의 글에 이후 파라미터 그룹 생성 및 설정 방법이 있습니다. 참고해서 설정해주세요.
꼭 본인의 ip를 인바운드 규칙에 넣어주세요!
그 후 EC2에 접속해서 mysql을 설치합니다.
sudo apt-get update
sudo apt-get install mysql-server
mysql --version
mysql -u 사용자이름 -p -h RDS엔드포인트
이렇게 mysql 접속한 후 테이블 생성하면 됩니다.
이제 DataGrip에서 연결해볼까요?
위에서 ...를 클릭해주세요
Host : aws ec2 탄력적 ip
Username : ec2 ssh 접속시 사용자 이름 -> ubuntu
Authentication type : Key pair
Private Key Pair : ec2 키페어 파일을 선택해주세용
TestConnection으로 테스트해주세요.
Host : RDS 엔드 포인트
User : RDS 사용자 이름
Password : 비밀번호
RDS 퍼블릭 액세스를 허용하지 않았기 때문에 꼭 다음 글을 참고해서 yml을 설정해주세요!
[AWS RDS] 퍼블릭 액세스 허용안할 시 스프링부트 yml 설정 방법(SSH 터널링) , AWS 과금 문제
우선 깃허브에 중요한 application.yml 파일 내용이 모두 노출되면 안됩니다. aws 관련 정보가 모두 있기 때문에 잘못 올리면 어마어마한 과금 폭탄을 맞습니다. 따라서 env.properties 파일을 이용하여 따로 환경 변수를 관리해야합니당.
application.yml
# Spring DataSource (MySQL)
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: ${DB_URL}
username: ${DB_USERNAME}
password: ${DB_PASSWORD}
env.properties
DB_URL=데이터베이스 URL
DB_USERNAME=데이터베이스 사용자 이름
DB_PASSWORD=데이터베이스 비밀번호
.gitignore (중요!!!!!)
src/main/resources/env.properties
이거 꼭 추가해주세요!
깃허브 레포지토리 - Settings - 왼쪽 메뉴 - Secret and variables - Actions - New repository secret
환경 변수 설정하기 전에 도커 허브에 가입해서 도커 이미지를 저장할 레포지토리를 하나 생성해주세용.
# 도커
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt install -y docker-ce
# 도커 compose
sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d '"' -f 4)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
docker --version
docker-compose --version
sudo systemctl enable docker
# nginx
sudo apt update
sudo apt install nginx
sudo service nginx start // nginx 실행 시작
sudo service nginx status // nginx 상태 확인
자 어느정도 준비가 됐습니다. 다음편에는 본격적으로 무중단 배포 CICD를 구축해볼게용