-
[AWS] 게시판 프로젝트 배포하기AWS 2024. 3. 10. 19:26
클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services
필요한 만큼 이용할 수 있는 것은 물론 필요에 따라 몇 분 만에 확장 또는 축소할 수 있습니다. 자세히 알아보세요.
aws.amazon.com
우선 AWS 콘솔에 로그인 해준다.
EC2 인스턴스를 생성해준다.
인스턴스를 만들면서 키페어를 만들어준다.
생성한 키페어를 프로젝트 안에 넣어주고 Git push를 해준다.
생성한 인스턴스의 보안그룹 port를 열기위해 인바운드 규칙을 추가해준다.
terminal을 열어서 우분투에 만든 인스턴스로 접속해준다.
자바설치 및 java home 설정
sudo apt-get update
sudo apt-get install openjdk-11-jdk
위 두 명령어로 java를 설치해준다.
echo $JAVA_HOME
위명령어를 치면 아직 아무것도 안나오는게 정상이다.
아직 환결설정을 해주지 않았으니.
which java
명령어를 치면 /usr/bin/java 라고 나오고
readlink -f /usr/bin/java
이 명령어로 본인의 경로를 확인하고 복사해놓는다.
sudo nano /etc/profile
위 명령어로 파일 편집기를 열어서
export JAVA_HOME=본인 확인한 경로 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
파일 맨 밑에 이것을 넣어주고 control+x로 저장과 함게 편집기에서 나간다.
echo $JAVA_HOME
위 명령어로 JAVA_HOME 환경변수 설정이 잘되어있는지 확인해본다.
편집기에 넣고 저장을 했어도 바로 나오지 않을 수 도 있다.
그렇다면 exit 명령어로 우분투 탈출을하고 우분투 재접속을 해서 확인해보면, 환경변수가 아래와 같이 잘 설정되어있는 것을 확인 할 수 있다.
MySQL 설치
sudo apt update
sudo apt install mysql-server
위 두 명령어로 우분투에 mysql을 설치해준다.
포트 열기
sudo ufw allow mysql
sudo ufw allow 8080
sudo ufw allow 80
sudo ufw allow 443
인스턴스에 보안그룹으로 인바인드그룹 설정해주었던 포트들을 열어준다.
MySQL 시작
sudo systemctl start mysql
위 명령어로 MySQL을 시작해서 데이터베이스와 테이블을 만들어준다.
sudo systemctl enable mysql
mysql을 접속할때마다 열리게 하는 명령어
sudo mysql -u root
root 계정으로 접속해준다.
MySQL 비밀번호 변경 설정
ALTER USER 'root'@'localhost' IDENTIFIED BY '비밀번호';
FLUSH PRIVILEGES;
위 명령어로 비밀번호를 설정해주고 적용을 해준다.
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '새로운_비밀번호' WITH GRANT OPTION;
FLUSH PRIVILEGES;
새로운_비밀번호에 위 명령어로 설정해주었던 비밀번호를 넣어준다.
root계정에 대한 권한을 부여하는 명령어이다.
* 사실 root 계정은 권한 설정을 할 필요 없다.
MySQL 데이터베이스 생성 및 테이블 생성
CREATE DATABASE social;
USE social;
데이터 베이스를 만들고 사용한다.
CREATE TABLE user ( username VARCHAR(10), useremail varchar(25), oauthtype varchar(20), oauthtoken varchar(100) ); CREATE TABLE Comments ( comment_id INT PRIMARY KEY AUTO_INCREMENT, board_id INT NOT NULL, useremail VARCHAR(25) NOT NULL, comment_root INT NOT NULL, comment_regdate VARCHAR(20) NOT NULL, comment_content VARCHAR(1000) NOT NULL, comment_deldate VARCHAR(20), comment_delyn CHAR(1) DEFAULT 'N' NOT NULL, comment_moddate VARCHAR(20), comment_steps INT NOT NULL, comment_indent INT NOT NULL ); create table board ( board_id int primary key auto_increment, useremail VARCHAR(25) not null, board_regdate VARCHAR(20) not null, board_title varchar(30) not null, board_content varchar(1000) not null, board_moddate VARCHAR(20), board_deldate VARCHAR(20), board_delyn char(1) default 'N' not null, board_likes int default 0 not null, board_views int default 0 not null ); create table likes( useremail varchar(25), board_id int, PRIMARY KEY (useremail, board_id) );
DB안에 프로젝트에 사용할 4개의 테이블을 생성해준다.
bind-address을 0.0.0.0으로 수정
exit 명령어로 MySQL에서 나와서 다시 우분투로 넘어온다.
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
위 명령어로 bind-address 를 0.0.0.0으로 수정해준다.
control+x 로 저장하고 파일편집기에서 나간다.
설정 변경 후 MySQL 재접속
sudo systemctl stop mysql
sudo systemctl start mysql
위에서 설정을 변경했기 때문에 MySQL을 재접속 해준다.
mysql -u root -p
CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'user_password';
새로운 계정과 함께 비밀번호를 설정해준다.
GRANT ALL PRIVILEGES ON *.* TO 'seongeun'@'localhost' WITH GRANT OPTION;
권한도 부여해준다.
workbench 연결
Workbench로 가서 + 버튼으로 Connection을 하나 추가한다.
AWS 생성한 인스턴스에 퍼블릭 IPv4주소를 복사해서 workbench 생성하는 connection hostname에 넣어준다.
username은 위에서 terminal에서 생성하고 권한까지 부여한 username을 넣어준다.
password도 terminal에서 만들어준 password로 넣어준다.
git 설치 및 git 설치 확인
다시 terminal 우분투로 넘어와서 git을 설치해준다.
sudo apt-get update
sudo apt-get install git
git --version
git config --global user.name [이름]
git config --global user.mail [메일 주소]
git clone [url 주소]
배포하려는 git의 프로젝트를 접속하기 위한 git 사용자명과 이메일을 명령어로 넣어준다음 git clolne을 한다.
만약 위 명령어들이 되지 않는다면 git init을 한 후에 시도한다.
ls로 git clone이 잘되어있는지 확인한다.
잘 되었다.
cd 로 프로젝트에 들어간다.
tomcat 설치
sudo apt update
sudo apt install tomcat9
sudo systemctl start tomcat9
tomcat 설치와 실행 시작을 한다.
Maven 설치를 위한 용량늘리기
프로젝트 안으로 이동해서 cd target으로 target 안으로 이동한다.
ls로 war파일명을 확인한다. (복사)
sudo chmod 777 war파일명.war
free
sudo dd if=/dev/zero of=/swapfile bs=128M count=16
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon -s
위 명령어들을 타이핑해준다.
sudo nano /etc/fstab
nano 편집기를 열어서
/swapfile swap swap defaults 0 0
위 내용을 넣어서 넣어준다. 그러면 용량 문제 해결완료.
Maven 설치
sudo apt install maven
mvn package -Dmaven.test.skip=true -X
sudo mvn clean package -DskipTests -X
sudo chmod 777 war파일명.war
sudo mv ./war파일명.war /var/lib/tomcat9/webapps/
war파일명.war뒤에 스페이스바 띄어쓰기 중요
cd /var/lib/tomcat9/webapps/
cd로 wepappa로 이동
sudo jar -xvf war파일명.war
압축풀기
sudo nano web.xml
web.xml파일을 찾아서 nano 편집기로 web.xml 파일 편집하기
<welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
위 코드를 넣어주고 저장하고 나간다.
sudo nano server.xml
nano 편집기로 server.xml 파일 편집하기
<Context docBase="war파일명" path="/" reloadable="false"/>
위 코드를 넣어주고 저장하고 나온다.
cd /usr/share/tomcat9/bin
sudo service tomcat9 restart
설정을 바꾸어 주었으니 tomcat 재실행
---정리 수정 추가중
'AWS' 카테고리의 다른 글
[AWS] Code Pipeline (0) 2024.02.15 [AWS] Code Deploy 실습 2 (0) 2024.02.15 [AWS] Code Deploy 실습 1 (0) 2024.02.15 [AWS] Code Deploy (0) 2024.02.15 [AWS] Code Commit 실습 (0) 2024.02.15