241217 에이콘 아카데미 수업에 기반하여 작성되었음을 알립니다.
배포파일(jar)을 Ubuntu에 전송
윈도우, 스프링 부트로 만든 배포파일을 리눅스로 전송, FTP를 사용
우분투
$ ifconfig
우분투 ip : 192.168.159.128
스프링 부트
application.properties
spring.application.name=sprweb00sangdata
server.port=8080
spring.thymeleaf.cache=false
#mariadb server connect
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://192.168.159.128:3306/test #우분투 ip
spring.datasource.username=root
spring.datasource.password=1111
# jpa
spring.jpa.properties.hibernate.show_sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.use_sql_comments=true
logging.level.org.hibernate.type.descriptor.sql=trace
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MariaDBDialect
서비스 작동 확인
프로젝트 경로 확인 후 이클립스 꺼버리기!
프로젝트 경로 : C:\work\sprsou\sprweb00sangdata
💡 배포 순서
1. 콘솔로 이동 : 명령 프롬프트(cmd)로 이동 > cd C:\work\sprsou\sprweb00sangdata
2. 빌드하기 > gradlew build
3. 참고 : 빌드가 되지 않을 때 빌드 폴더를 삭제하고 다시 빌드하는 명령어 > gradlew clean > gradlew clean build 4. jar 파일 생성 확인 > cd build/libs > dir
5. 서버 배포 : 프로젝트명-0.0.1-SNAPSHOT.jar 파일만 복사해서 원하는 서버에 저장 후에 jar 파일을 실행시키면 실행 가능! > java -jar testproject-0.0.1-SNAPSHOT.jar
cmd
gradlew build
plain은 아님!
work 디렉토리
사용할 디렉토리에 jar 파일 복사 붙여넣기!
실행 : java -jar (jar 파일이름)
작동 확인! (리눅스 서버)
Ctrl + c : 다시 서버 닫기
원격으로 리눅스 통신
ping test
💡 SSH(Secure Shell)
SSH(Secure Shell)는 원격 시스템에 안전하게 접속하기 위한 네트워크 프로토콜이다. 단순히 원격 접속뿐만 아니라 다양한 보안 기능을 제공하며, 파일 전송을 포함한 여러 작업을 암호화된 방식으로 수행할 수 있다. 파일 전송보다는 주로 원격 접속 및 보안 터널링에 더 중점을 둔다.
putty나 윈도우의 경우 powershell로 원격으로 접속할 수 있다. 실습은 putty 사용!
💡 FTP(File Transfer Protocol)
FTP(File Transfer Protocol)는 컴퓨터 간에 파일을 전송하기 위한 표준 네트워크 프로토콜이다. 주로 클라이언트와 서버 간의 파일 업로드 및 다운로드에 사용된다.
putty
putty 다운로드 https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
운영체제에 맞는 파일 (64-bit x86: 다운로드)
실행
그냥 될리 만무하다 설정이 필요!
Ubuntu Linux 실습 설정
--- SSH, FTP 서비스 진행할 때 Ubuntu에 설정해야 작업 ------------------------------------
원격 접속 툴 :
1) Putty(SSH) ...
2) 파일질라(FTP) ...
3) Windows PowerShell( > ftp ip주소, > ssh user@ ip주소 ) ...
* vsftpd는 Linux 서버에서 널리 사용되는 FTP 서버 패키지로 FTP 프로토콜을 통해 파일 전송 서비스를 제공할 수 있다.
1. vsftpd 패키지 설치
$ sudo apt update
$ sudo apt install vsftpd
vsftpd 서비스 시작 : 설치가 완료된 후, 서비스를 시작하고 활성화한다.
$ sudo systemctl start vsftpd
$ sudo systemctl status vsftpd
q를 눌러 나가기
$ sudo systemctl enable vsftpd : 비활성 상태인 경우 활성화
방화벽 해제
💡 방화벽(Firewall)
방화벽(Firewall)은 미리 정의된 보안 규칙에 기반한, 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템이다. 일반적으로 신뢰할 수 있는 내부 네트워크, 신뢰할 수 없는 외부 네트워크(예: 인터넷) 간의 장벽을 구성한다. 외부로 부터 내부망을 보호하기 위한 네트워크 구성요소의 하나로 서로 다른 네트워크를 지나는 데이터를 허용하거나 거부하거나 검열, 수정하는 하드웨어나 소프트웨어 장치이다. 참고로 UFW(Uncomplicated Firewall)은 데비안 계열 및 다양한 리눅스 환경에서 작동되어 사용하기 쉽게 설계된 넷필터 방화벽을 관리하는 프로그램이다
서비스 포트 리스닝(대기) 상태 확인
$ sudo lsof -i -P -n | grep LISTEN 또는 $ netstat -tulpn | grep :21
현재 21번만 뚫려있음, 22번을 뚫어줘야 함!
$ sudo nano /etc/vsftpd.conf 해서 파일을 수정한다.
listen=YES : YES로 설정하면 vsftpd는 독립형 데몬으로 동작하여 IPv4 소켓을 통해 21번 포트를 열고 접속 대기
listen_ipv6=NO : NO로 설정하면 vsftpd가 IPv6 소켓을 사용하지 않고 IPv4 전용으로 동작
혹시 Putty 툴을 위한 접속이 안되는 경우 아래 작업을 수행시킨다.
SSH 서버 구동 여부 확인: 리눅스 서버에서 SSH 데몬(보통 openssh-server)이 설치되고 실행 중인지 확인해야 한다.
$ sudo systemctl status ssh
만약 inactive 또는 not found라면
$ sudo apt install openssh-server 설치
$ sudo systemctl start ssh
$ sudo systemctl enable ssh
$ sudo systemctl status ssh
Windows PowerShell로 원격 접속 시도
원격접속성공
exit 빠져나오기
ftp 접속 확인
다시 putty로 원격 접속 시도
접속 성공 변경 사항이 우분투와 똑같음!
파일 생성도 같다! ssh 마무리
Filezilla
(FTP 소프트웨어)를 설치해 배포파일(jar)을 Ubuntu에 전송. https://cafe.daum.net/flowlife/9A8Q/205
설치
설치 완료
내 컴퓨터 리눅스
드래그 앤 드롭으로 전송
전 후
$ sudo java -jar 배포파일명.jar
우분투에서 배포 파일을 실행할 때는 관리자 권한으로 하자.
실행
윈도우에서는 안됨! 우분투에서 8080포트 열어줘야함! 방화벽 문제를 해결해보자!
$ sudo nfw status
Windows의 방화벽에서 포트 80(HTTP) , 8080 또는 443(HTTPS)을 허용하도록 설정. 또한 서버(Ubuntu)의 UFW에서 해당 포트가 열려 있는지 확인.
$ sudo ufw allow 80/tcp
$ sudo ufw allow 8080/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw status
윈도우에서도 접근 가능한 모습
짜란~
AWS 실습
위 방법은 프로젝트 규모가 커지거나 많아진다면 한계가 있다. 그렇기에 AWS 사용 방법을 알아보자!
EC2
리전 선택
리전 전세계의 데이터센터, 자신과 가까운 리전을 선택하는 것이 좋음. 리전마다 가격의 차이가 있다!
인스턴스 시작(생성)
애플리케이션 및 OS 이미지(Amazon Machine Image)
여러개의 소프트웨어를 묶어 압축한 것을 Image 라고 한다. 도커에서 나오는 개념
# 온디맨드 : 사용한만큼 사용료 지불
파일질라와 연결할 때 필요! 키페어를 꼭 가지고 있어야한다.
대기 중 상태
기다리면 실행 중으로 바뀜
체크해보면 인스턴스 정보 확인 가능, 퍼블릭 IPv4 주소를 확인할 수 있다. 서비스를 중지했다가 다시 실행하면 주소가 바뀜 결제하면 유지되는데 우리는 현재 단계에서 굳이 과금할 필요 없다~!
보안
포트 허용해주기
방화벽으로 막아놔서 ping 안됨!
보안그룹 클릭
인바운드 규칙 편집
인바운드 규칙 생성
ping test 가능
보안 그룹
현재 보안그룹 default, launch-wizard-1 사용
인스턴스 연결
우분투 화면, 우분투 버전 확인
아파치 서버 설치
$ sudo apt update
$ sudo apt install apache2
$ systemctl status apache2
설치 후 active 상태 확인
접속
AWS : 43.202.60.193
apache 방화벽 풀기
$ sudo ufw allow 'Apache Full'
$ sudo status ufw
$ sudo nano /var/www/html/index.html
$ sudo nano /var/www/html/nice.html
생성 확인
접속
인스턴스 중지
로그아웃하고 재로그인
다시 시작할때 인스턴스 시작을 눌러준다.
아까 생성한 키페어도 삭제해줘도 괜찮음
종료됨으로 바뀌었는지 꼭 확인하기!
보안 그룹 삭제
'Study > Acorn' 카테고리의 다른 글
241219 AWS RDS (0) | 2024.12.19 |
---|---|
241218 AWS EC2 (0) | 2024.12.18 |
241216 리눅스 (기본 명령어, Java, MariaDB 설치) (0) | 2024.12.16 |
241213 데이터 분석 (다중 선형 회기, 분류 - 아이리스, 가상화) (1) | 2024.12.13 |
241212 데이터 분석 (단순 선형 회기분석) (0) | 2024.12.12 |