1. Linux
- Linux : 서버 운영 시 사용하는 GPL OS
- GPL : 공개 오픈 소프트웨어 - 상업적 이용 불가 (Open Source)
- Linux는 여러 kernel이 존재
- RedHat 계열 : Amazon Linux, CentOS
- Debian 계열 : Ubuntu, Rasbian, Kali Linux
2. kernel
- 운영체제 (OS, Operation System)는 실제로 컴퓨터에게 명령을 내릴 수 있는 프로그램인 커널(kernel)과 kernel을 동작시키는 명령어들로 구분됨
- kernel의 종류가 다르면 kernel이 컴퓨터에게 명령을 내리는 행위가 같더라도 명령어가 다름
- kernel의 종류 (계열)를 잘 파악해야 함
3. Network
- 클라우드 시스템 (Cloud) 은 외부 가상 PC(서버)를 빌려 내 컴퓨터와 가상 컴퓨터를 통신시켜 원격으로 컴퓨터를 동작하는 시스템
- 보편적으로 Linux를 주로 사용하며, Linux를 사용할 경우 Terminal을 이용하여 조작
- Terminal을 원격으로 조작하기 위해서는 터미널의 포트 번호가 열려있어야 함
- 22 : Terminal Port Number
- 외부에서 자신 쪽으로 들어오는 통신을 Inbound, 바깥쪽으로 나가는 통신을 Outbound라고 함
- Outbound의 경우 보통 요청에 대한 응답이므로 대부분 Open 상태
- 보안성이 높아야 하는 서버의 경우는 Outbound도 제한 필요 (Sniffing, Snoofing 위험)
- Inbound는 접근 포트, IP 등에 대한 제한이 필요 (보안의 위험)
4. Settings
- Amazon EC2 (AWS) 로그인
- EC2 접속

- 인스턴스 시작 클릭

- OS 선택 - Ubuntu 사용

- 사양 선택 - 프리 티어용 선택

- 키 페어 - 키는 공유하면 안됨 (개인 키)

- 키 페어 유형 - RSA 설정
- 파일 형식 .pem (SSH 사용)
- .ppk는 PuTTY 사용 시 체크

- 네트워크 설정 : 기본 값 사용
- SSH 트래픽은 필수 허용 (포트 번호를 열어줌)

- 스토리지 구성
- 허용 범위 내에서 설정 : 30GiB

- 인스턴스 생성

- 인스턴스 확인
- 실행 중이 아닐 경우 새로 고침

- 퍼블릭 IPv4 주소 복사
- 프라이빗 IPv4 : 사설 IP - 접속 불가
- 인스턴스끼리는 통신 가능 (내부 망)

- MobaXterm 실행 후 세션 생성

- SSH 선택 후 정보 입력
- Remote host : 호스트 서버 주소
- username : 사용자 이름
- Private Key : 비밀번호 (개인 키)

- 정보 입력 후 OK → Accept 클릭

- Terminal 화면
- 시간대 - 미국 기준 : 배포 시 한국 기준으로 변경해야 함

- 명령어 갱신 (최신화)
sudo apt update
- jdk 찾기
sudo apt-cache search jdk

- jdk 중 21이 포함된 명령어만 찾기 : Pipeline & grep 사용
sudo apt-cache search jdk | grep 21

- openJDK 21 설치
- 이름 정확하게 입력 : Tab 사용
sudo apt install openjdk-21-jdk
- y 입력 후 Enter : 설치

- git clone : 실행할 서버 git clone
git clone 'repository.git'

- 폴더 진입 후 gradlew 확인
cd 'repository name'
ls -l

- build → jar 파일 생성
- 미리 구워둔 jar 파일을 바로 실행시키면 안 됨 : 배포 환경의 차이 때문에 정상 작동 확신 불가
./gradlew clean build
- gradlew이 읽기 전용 (readonly, 실행 권한 없음) 일 경우
- 실행 권한 추가 (user)
- 실행 권한 ( 3비트, 0 ~ 7 )
- r (read) : 4
- w (write) : 2
- x (execute) : 1
- 4 (100) : read-only (읽기만 가능)
- 5 (101) : non-writable (쓰기 불가)
- 6 (110) : non-executable (실행 불가)
- 7 (111) : super (모든 기능 사용 가능)
chmod +x (1 / 3 / 5 / 7) gradlew

- build/libs 폴더 이동 : jar 파일 실행
cd build/libs
- jar 파일 실행
java -jar 'jar name'
- Tomcat 포트 열기 : 보안 그룹 편집
- 보안 그룹 클릭

- 인바운드 규칙 편집
- 규칙 추가 후 유형, 포트, 소스 지정
- 유형 : TCP (신뢰성 있는 통신)
- 포트 : 8080 (Tomcat 포트)
- 소스 : Anywhere-IPv4 (0.0.0.0/0)
- 보안이 중요한 경우는 IP 접근 제한 필요

Result
- 접속 가능
- 이때, IP는 원격 PC의 IP로 접속해야 함

Share article