배포 & CICD/AWS

2024 - AWS(EC2) 리눅스로 서버 만들기 (1)

인천쓰 2024. 1. 7. 17:20
반응형
  •  인스턴스 → 인스턴스 시작

  • 애플리케이션 및 OS 이미지 → Ubuntu → 20.04 LTS 선택(프리티어 사용 가능 선택)
  • 인스턴스 유형에서 무료인 t2.micro(프리 티어 사용 가능) 확인

  • 키페어(로그인) (일종의 공인인증서) → 키페어 이름은 영문으로 식별하기 좋은 이름 입력(ex - awstestjks2024) - RSA / pem 확장자

  • 스토리지 구성 (현재 상태 그대로 사용) (8 GiB / gp2) → 추가하면 비용 지불 됨
  • 인스턴스 시작 → 성공이라고 뜨는 지 확인
  • 1년 이후는 반드시 해지 해야 함 (과금 됨)
  • 탄력적 IP 선택(고정 IP 부여) - 꼭 부여 해야 함 (인스턴스의 퍼블릭 IPv4에 IP 기록) - 왼쪽 사이드 메뉴 중간에 있음

  • 인증서가 있는 폴더에서 Git Bash 열기 
  • bash > ssh -i awstestjks2024.pem ubuntu@퍼블릭IP

파일질라 설치 (FTP) 

(로컬 PC에서 생성한 jar 파일을 AWS 서버로 옮기기 위한 용)

 

AWS서버에 JAVA 및 MYSQL 실행 환경 구축  

JAVA

  • **sudo apt update**
  • **sudo apt-get install openjdk-11-jre**

MySQL

sudo apt-get update

sudo apt-get install mysql-server

sudo ufw allow mysql

sudo systemctl start mysql

sudo /usr/bin/mysql -u root -p

//패스워드 설정 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '비밀번호';

//database 리스트 확인 mysql> SHOW DATABASES;

//test라는 계정 생성 mysql> CREATE USER 'test'@'localhost' IDENTIFIED BY '비밀번호';

//해당 작업을 반영 mysql> FLUSH PRIVILEGES;

// 스키마 생성 mysql> create database 스키마이름;

// 권한 부여 mysql> grant all privileges on 스키마이름.* to '유저이름'@'localhost';

//적용 mysql> flush privileges;

실행후 Spring boot의 application.propertie의 계정정보및 스키마 변경

 

외부에서 접속을 위해 AWS의 인바운드 규칙을 추가해서 Spring boot의 port 번호를 등록 합니다. 해당 포트는 application.properties의 port와 동일해야 합니다.

AWS Port 허용 

외부에서 접속을 위해 AWS의 인바운드 규칙을 추가해서 Spring boot의 port 번호를 등록 합니다. 해당 포트는 application.properties의 port와 동일해야 합니다.

보안그룹 이름 클릭 → 인바운드 규칙 →인바운드 규칙 편집 → 해당 포트 추가

 

MySQL 윈도우 접속 

  • sudo -i 로 root 계정 전환
  • cd /etc/mysql/mysql.conf.d
  • vi mysqld.cnf 열어서 아래의 내용 주석 처리
#bind-address           = 127.0.0.1
#mysqlx-bind-address    = 127.0.0.1
  • sudo systemctl restart mysql 로 mysql 재시작

MySQL 원격 접속 허용

 (이것도 보안그룹에서 하나 더 열어줘야합니다)

 

AWS우분투 TimeZone 변경

  • tzselect →Asia →Korea(South)
  • sudo -i
  • vi /etc/profile에 아래의 내용 추가
TZ='Asia/Seoul'
export TZ
  • exit 입력으로 사용자 권한으로 복귀
  • source /etc/profile 실행

JAVA +REACT 통합본 실행

  • fllezila 실행후 연결 

  • 스프링 jar 파일 관리를 위한 폴더 생성 (ex : Spring_release)
  • cd Spring_release
  • FTP 프로그램인 FileZilla로 로컬에서 ./gradlew build로 생성한 jar 파일 복사(jar파일은 libs에 자동 빌드 됩니다)
  • java -jar SpringReact-0.0.1-SANPSHOT.jar 실행 (aws서버의 Spring_release 파일에서 진행)
  • nohup java -jar SpringReact-0.0.1-SANPSHOT.jar & (창이 닫혀도 백그라운드 실행 함을 의미)

이로서  AWS 환경에서 HTTP//: 퍼블릭IP:포트 로 정상 실행되게된다.

반응형