AWS 배포 실습

강상은·2023년 12월 19일
1

개요

****AWS를 통한 배포 실습을 하기 위해
1. 팀프로젝트는 LinuxOracle을 활용하여 배포 및
2. 개인프로젝트는 Ubuntu와 Docker 및 MySQL을 활용하여 배포

두가지 실습 모두 설명을 적어놨으나 개인프로젝트는 배포에 성공하지는 못했지만 이 글을 그대로 따라갔을때 원래는 성공했다고 합니다..ㅠㅠ추후 다시 재도전할 예정

1. RDS 생성(Oracle)하기-인텔리제이에서 데이터베이스 불러오기

서비스-RDS 검색

데이터베이스 생성

Oracle RDS로 선택

설정 그대로

Oracle은 프리티어가 없어서 요금이 결제될 수 있으니 연습목적이라면 사용해보고 꼭 종료시킬것

설정 정보 입력(마스터 사용자 이름, 마스터 암호) 기록해둘것

퍼블릭 액세스 (예)

데이터베이스 생성

RDS(Oracle) 인바운드 규칙 생성

RDS(Oracle) 아웃바운드 규칙 생성

인텔리제이에서 오라클로 접속해보기

Test Connection success

bookshop 테이블 5개, 시퀀스 4개 생성

EC-2 인스턴스 생성하기(OS Linux버전)

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로 다시 실습하기도 했습니다
ㅠㅠ

EC-2 인바운드 규칙 설정

아웃바운드 규칙 똑같이 설정

FTP 연결 (filezilla)

사이트 관리자 열어서 새사이트 - 호스트에 ipv4입력 포트 22번 입력
나머지 정보 입력 후 연결

puTTY에서 JDK 설치

sudo yum install java-11-amazon-corretto.x86_64

puTTY에서 Tomcat 설치

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+포트번호+파일명으로 주소 요청

*webserver에서 war파일 삭제하는 법

삭제 전에 톰캣 중지시켜야함
sudo systemctl stop tomcat9

sudo rm -rf war파일 이름
(rm: remove rf:강제로한다는뜻)

디렉토리와 war파일 삭제해줘야함

다시 인텔리제이로 돌아와서
utf-8 인코딩 문제가 떠서 일단 일일히 삭제해줌

jdbc프로퍼티 세팅(localhost 바꿔주고 username에 인스턴스 생성시 입력했던 마스터 이름과 암호를 적어주기)

체크해야할 사항!

  • pom.xml artifactID확인(프로젝트명)
  • properties java-version 1.11(6은안됨 7이상 현재 11버전으로 맞출것)
  • configuration source,target 1.7로 변경

BaseController,fileDownloadController 등
\(역슬래시 두개)->/ 로 바꿔주고 및 경로 수정

maven에서 clean- install

2. RDS 생성 (MySQL 버전)

이게 무료임

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 이름 입력하면 아래와 같음

1개의 댓글

comment-user-thumbnail
2023년 12월 20일

좋아요

답글 달기