스프링 mvc 프로젝트 aws 배포.2 인프라 설치

자이로 체펠리·2021년 5월 31일
0

aws ec2 배포

목록 보기
2/3

서문

이전 포스트에선 ec2 인스턴스를 생성하고 접속하는 것 까지 알아보았다. 하지만 이렇게 생성한 인스턴스는 빈 깡통과도 같아 우리의 목적인 웹 애플리케이션 배포를 하기 위해선 개발 pc에서 개발하는데 사용했던 인프라들을 인스턴스에 설치해 줘야 합니다.

개발시 사용했던 인프라 list

  • mysql
  • tomcat
  • jdk
  • jre
    버전은 다 개각각이라 자신이 사용한 개발 인프라를 사용해서 설치하길 바랍니다..
    => 개발시 사용하지 않았지만 ec2에선 nginx를 추가로 연동시켜 3tier로 구조를 구성하겠습니다..

0. apt 업데이트

시작전에 모든 패키지를 업데이트 시켜 줍니다.

$ sudo apt update

1. 인프라 설치

버전은 개발 환경마다 다릅니다. 유의해 주세요.

$ sudo apt install nginx  // 엔진엑스 설치
$ sudo apt install tomcat9  //톰캣 9 설치
$ sudo apt openjdk-8-jre  // jre 설치
$ sudo apt openjdk-8-jdk // jdk 설치
$ sudo apt mysql-server //mysql 서버

2. tomcat 및 nginx 설정 및 연동

2-1 nginx 연동

파일시스템에
/etc/nginx/sites-available/default 를 수정해 줍니다.

sudo vim /etc/nginx/sites-available/default 

명령어를 입력하시면 문서를 수정할 수 있습니다.

붉은 박스를 친곳 을 수정하면 됩니다.

server{
....생략
//수정하면 된다.
location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                #try_files $uri $uri/ =404;
        proxy_pass http://localhost:8080;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        }
..생략
}

2-2 톰캣 / nginx 실행 명령어

sudo service nginx start 
sudo service tomcat9 start
// 이외에도 stop, restart와 같은 명령어가 있습니다.

확인하기 연동이 잘 되었다면

고정주소를 입력했을 때 8080 포트 번호(tomcat 디폴트 포트번호) 입력 없이도 톰캣 석세스 화면을 확인 할 수 있습니다.

3. mysql 설정 및 워크벤치 연결

3-1 워크벤치 외부접속 하기

ㄱ)설정 변경
/etc/mysql/mysql.conf.d/mysqld.cnf 파일을 수정해 줍니다.

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf


bind-address 를 찾아 0.0.0.0으로 수정해 줍니다.

ㄴ)유저 설정
mysql접속

sudo mysql

유저설정 => 워크벤치로 원격접속할 유저를 생성해 줍니다.

create user '유저명'@'%' identified by '비밀번호'; //유저 생성하기

grant all privileges on *.* to '유저명'@'%' with grant option; // 유저에게 외부접속 권한 주기

\q 명령어로 mysql에서 나간다음

ㄷ)mysql 구동

sudo mysql start

ㄹ)워크벤치 실행

1. 새로운 커넥션을 열어줍니다.
2. ec2의 고정 ip를 입력
3. 아까 설정한 user id
4. 비밀번호 입력 -> 미입력시 커넥션 마다 비밀번호 입력해야함
5. 연결

3-1 db 만들기

기존에 사용한 db를 복사하여 사용하겠습니다.
ㄱ)ec2환경에서 개발환경에서 사용한 db이름과 똑같은 db를 생성해 줍니다.

$ sudo mysql 
CREATE database db이름 DEFAULT CHARACTER SET utf8 //db 생성

ㄴ) 워크벤치로 기존에 사용하던 커넥션으로 접속

서버탭 -> data export 선택

ㄷ) export
추출할 db를 선택하시고 우측하단에 start export 버튼을 클릭

ㄹ) import
ec2 mysql의 커넥션에 접속하셔서 server탭 -> import 선택

ㄷ)에서 추출한 sql을 선택하고 target schema로 ㄱ)에서 생성한 db를 선택후 우측하단에 start import를 클릭해준다.

ㅁ) mysql 실행

sudo service mysql start

결론

이제 모든 준비는 끝났다. 중요한 알맹이인 app의 코드를 ftp를 통해 ec2 인스턴스로 보내고 몇가지 설정을 통해 배포를 마무리 해보겠습니다.

profile
"경의를 표해라. 경의를 갖고 회전의 다음 단계로 나아가는 거다…… [LESSON 4] 다."

0개의 댓글