[AWS] 1. AWS

문정준's avatar
Jun 11, 2025
[AWS] 1. AWS

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 접속
notion image
 
  • 인스턴스 시작 클릭
notion image
 
  • OS 선택 - Ubuntu 사용
notion image
 
  • 사양 선택 - 프리 티어용 선택
notion image
 
  • 키 페어 - 키는 공유하면 안됨 (개인 키)
notion image
  • 키 페어 유형 - RSA 설정
    • 파일 형식 .pem (SSH 사용)
    • .ppk는 PuTTY 사용 시 체크
notion image
 
  • 네트워크 설정 : 기본 값 사용
    • SSH 트래픽은 필수 허용 (포트 번호를 열어줌)
notion image
 
  • 스토리지 구성
    • 허용 범위 내에서 설정 : 30GiB
notion image
 
  • 인스턴스 생성
notion image
 
  • 인스턴스 확인
    • 실행 중이 아닐 경우 새로 고침
notion image
 
  • 퍼블릭 IPv4 주소 복사
    • 프라이빗 IPv4 : 사설 IP - 접속 불가
    • 인스턴스끼리는 통신 가능 (내부 망)
notion image
 
  • MobaXterm 실행 후 세션 생성
notion image
 
  • SSH 선택 후 정보 입력
    • Remote host : 호스트 서버 주소
    • username : 사용자 이름
    • Private Key : 비밀번호 (개인 키)
notion image
 
  • 정보 입력 후 OK → Accept 클릭
notion image
 
  • Terminal 화면
    • 시간대 - 미국 기준 : 배포 시 한국 기준으로 변경해야 함
notion image
 
  • 명령어 갱신 (최신화)
sudo apt update
 
  • jdk 찾기
sudo apt-cache search jdk
notion image
 
  • jdk 중 21이 포함된 명령어만 찾기 : Pipeline & grep 사용
sudo apt-cache search jdk | grep 21
notion image
 
  • openJDK 21 설치
    • 이름 정확하게 입력 : Tab 사용
sudo apt install openjdk-21-jdk
 
  • y 입력 후 Enter : 설치
notion image
 
  • git clone : 실행할 서버 git clone
git clone 'repository.git'
notion image
 
  • 폴더 진입 후 gradlew 확인
cd 'repository name' ls -l
notion image
 
  • 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
notion image
 
  • build/libs 폴더 이동 : jar 파일 실행
cd build/libs
 
  • jar 파일 실행
java -jar 'jar name'
 
  • Tomcat 포트 열기 : 보안 그룹 편집
    • 보안 그룹 클릭
notion image
 
  • 인바운드 규칙 편집
    • 규칙 추가 후 유형, 포트, 소스 지정
      • 유형 : TCP (신뢰성 있는 통신)
      • 포트 : 8080 (Tomcat 포트)
      • 소스 : Anywhere-IPv4 (0.0.0.0/0)
        • 보안이 중요한 경우는 IP 접근 제한 필요
 
notion image

Result

  • 접속 가능
    • 이때, IP는 원격 PC의 IP로 접속해야 함
notion image
 
Share article

sxias