한 걸음 두 걸음
AWS에 Spring프로젝트 빌드시키기 본문
나중에 내가 보려고 쓰는 포스팅
순서
1. AWS EC2 인스턴스 만들기(ubuntu)
2. 탄력적 ip연결하기
3. putty로 접속하기(저는 Windows를 사용하기 때문에 putty를 사용하지만, 맥을 사용하시는 분은 putty를 사용하지 않으셔도 됩니다.)
4. AWS서버에 자바 설치
5. AWS서버에 톰캣 설치
6. AWS서버에 MYSQL 설치
7. AWS서버에 Spring프로젝트 업로드
..
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 |
---|