한 걸음 두 걸음

AWS에 Spring프로젝트 빌드시키기 본문

BackEnd/AWS

AWS에 Spring프로젝트 빌드시키기

언제나 변함없이 2021. 1. 26. 20:08
반응형

나중에 내가 보려고 쓰는 포스팅

순서

1.  AWS EC2 인스턴스 만들기(ubuntu)

2. 탄력적 ip연결하기

3. putty로 접속하기(저는 Windows를 사용하기 때문에 putty를 사용하지만, 맥을 사용하시는 분은 putty를 사용하지 않으셔도 됩니다.)

4. AWS서버에 자바 설치

5. AWS서버에  톰캣 설치

6.  AWS서버에 MYSQL 설치

7. AWS서버에 Spring프로젝트 업로드

 

aws.zip
0.07MB


..

 

3. putty로 접속하기(putty 다운받아야 함)

puttygen을 켜서

AWS에서 받아온 pem을 찾아 Load해주고 save private key 클릭해서 저장시켜줌.

그리고 이제 putty 켜서

아까 만든 private key찾아서 넣고 open하면 접속 완료됨. HostName은 우분투라서 ubuntu@내IP로 해야함.

4. AWS 서버에 자바 설치

sudo apt-get install openjdk-8-jre
sudo apt-get install openjdk-8-jdk

 which javac
 readlink -f /usr/bin/javac

which javac하면 //usr/bin/javac에 있다고 하는데 readlink로 /usr/bin/javac를 찾아보면

실제 위치는 왼쪽처럼 나오니까 왼쪽 주소로 환경변수 설정하기(sudo nano /etc/profile)

 source /etc/profile  //재업로드
  sudo reboot now //재시작

 하면 putty연결 끊어지고 다시 연결해서 창 켜주어야함.

잘 설치됐는지 확인 

5. AWS에 톰캣 설치

sudo apt-get install tomcat8
sudo ufw allow 8080/tcp
 sudo service tomcat8 start

설치 후 설정하고 시작하기.

설치완료하여 서버 접속한 모습


6. AWS에 MySQL설치하기

sudo apt-get install mysql-server-5.7

하면 mysql설치가 잘 된다.

< 추가 > 만약 root 비밀번호 설정 과정이 안나왔다면 엔터로 접속가능하고 mysql -u root -p로 비번 설정도 가능하다는데 나는 ERROR 1698 (28000): Access denied for user 'root'@'localhost'로 접속이 차단되었다. 이유는 ssh로 원격접속했기 때문. unix_socket 을 사용하는지만 체크해서 접근이 가능하므로 비밀번호 설정을 꼭 하고싶다면 아래 참고 링크를 확인하면 된다. 

우분투 root 패스워드 설정 후

sudo passwd root
//설정하기,
su -
netstat -ntlp | grep mysqld

su - 로 root계정 접속하고 netstat -ntlp | grep mysql 명령어로 running중인 ip주소와 mysql의 포트번호를 확인할 수 있다.

한글설정

cd /etc/mysql/conf.d
sudo nano mysql.cnf

/////
///// 아래 코드 복사한 후 콘솔창에서 우클릭으로 붙여넣기하기
/////

[mysqld]
 datadir=/var/lib/mysql
 socket=/var/lib/mysql/mysql.sock
 user=mysql
 character-set-server=utf8
 collation-server=utf8_general_ci
 init_connect = set collation_connection = utf8_general_ci
 init_connect = set names utf8
 
 [mysql]
 default-character-set=utf8
 
 [mysqld_safe]
 log-error=/var/log/mysqld.log
 pid-file=/var/run/mysqld/mysqld.pid
 default-character-set=utf8
 
 [client]
 default-character-set=utf8
 
 [mysqldump]
 default-character-set=utf8

 sudo /etc/init.d/mysql restart 재시작하기

데이터베이스 생성

create database chicken;

데이터베이스 확인

show databases;

계정 생성

-- 모든 IP로 접속가능한 계정 생성
 create user '아이디'@'%' identified by '비밀번호';

--권한설정
-- 모든 데이터베이스, 모든 테이블, 모든 IP 접속 허용
 GRANT ALL PRIVILEGES ON *.* TO '아이디'@'%' IDENTIFIED BY '비밀번호';
flush privileges;


--확인하기
-- mysql 데이터베이스 선택
 use mysql;
 
 --  user 테이블 
 select host, user from user;

exit해서 나간 후 외부에서 접속이 가능하도록 우분투 방화벽에서 MySQL 포트를 허용

sudo ufw allow (MySQL 포트번호 3306)/tcp
 cd /etc/mysql/mysql.conf.d

# mysqld.cnf 파일편집
 sudo nano mysqld.cnf

bind-address 앞에 # 붙여주기

테스트 결과

SQLyog로 확인,

접속됨.

7. AWS서버에 Spring프로젝트 업로드

WAR 배포파일로 변환

로 목적지 지정해주면 war파일 만들어짐.

fileziller로 들어가서 /var/lib/tomcat8/webapps 위치에 넣어주면 배포 완료.


해서 아두이노-AWS서버-안드로이드 통신 & DB저장 테스트 완료.


참고

전체 가이드

https://windosakacastle.tistory.com/16?category=691705

https://all-record.tistory.com/181 ( JAVA, MySQL 설치)

https://stackoverflow.com/questions/39281594/error-1698-28000-access-denied-for-user-rootlocalhost 

https://brtech.tistory.com/121 ( ERROR 1698 (28000): Access denied for user 'root'@'localhost' 문제 해결)

https://inforyou.tistory.com/2 war파일 만들기

https://namubada.net/168 (no compiler is provided in this environment. perhaps you are running on a jre rather than a jdk) 에러해결.


기타

8080 port kill 하기 

1. cmd관리자모드로 켜고 netstat -a -o로 전체 프로세스 조회

2, taskkill /f /pid (번호) 로 8080포트에 해당하는 프로세스 삭제 

jar파일 만들기

maven install해주면 build success.

no compiler is provided in this environment. perhaps you are running on a jre rather than a jdk 가 뜨면 Window -Preference들어가서 Java-Installed JRE에서 JDK add해주면 됨.

이거 해주면 에러 해결

개발할 때 사용한 프로그램들

cmd관리자모드, postman, putty, sts, fileziller, mysql workbench, sqlyog, arduino sketches..

 

 

 

반응형

'BackEnd > AWS' 카테고리의 다른 글

클라우드 컴퓨팅 그리고 AWS란  (0) 2020.07.16