****AWS를 통한 배포 실습을 하기 위해
1. 팀프로젝트는 Linux
와 Oracle
을 활용하여 배포 및
2. 개인프로젝트는 Ubuntu
와 Docker 및 MySQL을 활용하여 배포
두가지 실습 모두 설명을 적어놨으나 개인프로젝트는 배포에 성공하지는 못했지만 이 글을 그대로 따라갔을때 원래는 성공했다고 합니다..ㅠㅠ추후 다시 재도전할 예정
서비스-RDS 검색
데이터베이스 생성
Oracle RDS로 선택
설정 그대로
Oracle은 프리티어가 없어서 요금이 결제될 수 있으니 연습목적이라면 사용해보고 꼭 종료시킬것
설정 정보 입력(마스터 사용자 이름, 마스터 암호) 기록해둘것
퍼블릭 액세스 (예)
데이터베이스 생성
인텔리제이에서 오라클로 접속해보기
Test Connection success
bookshop 테이블 5개, 시퀀스 4개 생성
Linux를 사용한 위주로 작성했으나 Ubuntu로 사용한 내용도 포함되있으니 이미지와 설명을 잘 참고해주세요
서비스로 들어가서 EC2 클릭
서울
인스턴스 시작
원하는 이름으로 설정
이미지에는 Ubuntu로 되어있지만 Linux로 생성했고 원하는 OS를 선택하면 됩니다
키페어 생성(.pem)
다운받은 경로 기억하기!
30GB까지 되는데 나중에 설정 가능
puttygen에서 .pem을 이용하여 ppk를 생성
puttygen 접속
file
.pem 다운받은 경로로 들어가서 열기
확인
Save private key
예(Y)
저장된 경로로 들어가면 ppk생성
puttygen에서 ppk생성
putty들어가서 IPv4입력
putty접속 후 ec2-user 입력해서 접속성공
인스턴스 시작
인스턴스 들어가서 인스턴스 ID 클릭
putty 접속
Host Name에 붙여넣기
SSH-Auth-Credentuals
열기
Session에서 이름 정해서
save
open
accept
추후에 Server refused our key라는 에러가 발생하는 것을 방지하기 위해 Connect Once로 다시 실습하기도 했습니다
ㅠㅠ
사이트 관리자 열어서 새사이트 - 호스트에 ipv4입력 포트 22번 입력
나머지 정보 입력 후 연결
sudo yum install java-11-amazon-corretto.x86_64
cd /
ls
cd var
ls
cd lib
ls -> tomcat9 있으면 설치된 것
sudo yum install tomcat9
현재는 war파일이 없는데 이 경로로 들어갔을때 war파일이 있어야함
다시 filezilla에 들어가서 tomcat9 경로들어가면 없는게 맞음
권한부여
sudo chmod -R 777 .
(-R은 하위에 모두 권한 부여 .는 현재 경로에 대한 의미)
filezilla에 war파일 전송 성공
새로운 putty열어서 똑같은 host로 접속 후
cd/
cd var
ls
cd lib
ls
cd tomcat9
ls
cd webapps
ls
하면 디렉터리와 파일이 보이면 war 압축 풀린 것
start하고 작은 putty창에서 디렉토리가 생기면서 압축이 풀림(파란색-디렉토리/빨간색-파일)
퍼블릭ip+포트번호+파일명으로 주소 요청
삭제 전에 톰캣 중지시켜야함
sudo systemctl stop tomcat9
sudo rm -rf war파일 이름
(rm: remove rf:강제로한다는뜻)
디렉토리와 war파일 삭제해줘야함
다시 인텔리제이로 돌아와서
utf-8 인코딩 문제가 떠서 일단 일일히 삭제해줌
jdbc프로퍼티 세팅(localhost 바꿔주고 username에 인스턴스 생성시 입력했던 마스터 이름과 암호를 적어주기)
체크해야할 사항!
BaseController,fileDownloadController 등
\(역슬래시 두개)->/ 로 바꿔주고 및 경로 수정
maven에서 clean- install
이게 무료임
http, https 허용
퍼블릭 액세스 (예)
포트번호확인
데이터베이스 이름 생성
데이터베이스 설정
0으로 설정
데이터베이스 생성
완료
서버 실행
클릭
엔드포인트 복사
MySQL
입력
테스트 실패했음
aws-EC2에서 보안 그룹 인바운드 규칙 설정
putty에서
sudo apt install mysql 설치
sudo apt-get update 버전맞춰주기
sudo apt-get install mysql-server하고 확인됨
접속 거부되있어서
인바운드 규칙 설정 추가
putty로 ubuntu 접속하는 모습
접속성공
인텔리제이 들어가서 test해보면 다시 성공
application properties에 설정하기
처음에 com.mysql.cj.jdbc.Driver에 빨간불 들어와있는데
build.gradle에서 아래와 같이 dependency 추가
데이터베이스 연결했고, docker로 jar파일 올려보기
인텔리제이에서 터미널 열어서 docker 로그인(docker 계정 아이디 비밀번호 입력)
bootjar파일 실행하면 왼쪽과 같이 libs에 jar파일 생성
Dockerfile 생성하기 (프로젝트 우클릭 file -> Dockerfile 입력)
돌고래나옴(위치확인)
Docker image build
docker build -t username/my-image:latest .
Docker hub에 이미지 올리기
docker push [ 생성했던 tag]
Docker Repositories에서 올라간게 보임
putty로 pull하기위한 작업
들어가서
복사
pull되면 docker ps했을때 testimage 나옴
sudo docker pull username/tag 이름 입력하면 아래와 같음
좋아요