AWS 사용하기

SIHA·2025년 3월 19일

AWS를 사용하는 이유?

배포(deployment)

다른 사용자들이 인터넷을 통해서 사용할 수있게 만드는 것으로,
고유의 주소 부여, 다른 컴퓨터에서 그 주소로 접속을 가능하게 만든다.

EC2

AWS가 제공하는 가상의 컴퓨터

  • 개발한 서버 코드를 외부에 배포하려면 항상 켜져 있는 컴퓨터와 인터넷 연결이 필요하다.
  • AWS는 EC2 인스턴스라는 이름으로 리눅스/윈도우 서버 컴퓨터를 '대여'해준다.
  • 개발자는 이 컴퓨터에 원격 접속(SSH)해 직접 서버를 실행하고 운영할 수 있다.

Region

실제 AWS의 데이터센터가 존재하는 지리적 위치

  • 사용자가 많을 것으로 예상되는 지역과 최대한 가까운 리전을 선택해야 지연(latency)이 적다.
  • 예를 들어, 한국 사용자가 주 대상이면 ap-northeast-2 (Seoul),
    글로벌 사용자라면 ap-southeast-2 (Sydney) 같은 리전을 선택하는 것이 좋다.

Instance type

: EC2 인스턴스의 CPU, 메모리, 네트워크 속도 등 사양을 정하는 옵션

  • 개발/테스트 환경에서는 t3.micro 같이 저렴한 사양이 좋다
  • 운영/실서비스 환경에서는 트래픽에 맞게 더 높은 사양 선택하면 된다

keypair

: EC2 서버에 안전하게 접속할 수 있도록 만들어주는 비밀번호 같은 역할의 인증서 파일 (.pem)

EC2를 처음 만들 때 반드시 Key Pair를 생성하고 보관해야 한다.
이 파일이 없으면 해당 인스턴스에 SSH 접속 불가능!

Security Groups

: EC2(서버)의 방화벽 역할

  • Inbound traffic: 외부 → EC2 로 들어오는 트래픽

  • Outbound traffic: EC2 → 외부로 나가는 트래픽

배포하기

EC2 접속


Java 설치

sudo apt update
sudo apt install openjdk-17

설치 완료 후 확인

java -version

Elastic IP

Elastic IP (탄력적 IP) : 고정 퍼블릭 IP 주소

EC2 퍼블릭 IP는 재시작할 경우 변경되는데, 탄력적 IP를 할당해 고정시키고 포트로 접근할 수 있다.
대신, 탄력적 IP는 금액이 발생할 수 있으니 조심해야 한다.

  1. 탄력적 IP 할당
  2. EC2 인스턴스에 연결
  3. Public IPv4 가 그 IP로 바뀌는지 확인

이후 브라우저에서 아래 주소로 접속하면 된다

http:/[elastic IP]:8080/...

보안그룹에서 포트 인바운드 오픈

EC2 서버에서 외부요청을 받기 위해서는 포트를 열어야 한다.

AWS console > EC2 > instances > Security > Security groups > Edit Inbound rules


8080 포트, Spring Boot 실행 포트를 추가해준다.

Spring Boot 프로젝트 jar 파일 빌드 후 EC2 업로드

./gradlew build

EC2 업로드

CMD(명령 프롬프트)에서 해야한다. (윈도우)

scp -i [pem 파일 경로] [jar 파일 경로] ubuntu@[EC2 Elastic IP]:~/

  • scp 명령어는 EC2 인스턴스가 실행 중이어야 정상 작동한다.
    - scp : secure copy protocol, SSH(보안 연결)을 통해 파일을 복사하는 명령어
  • 업로드한 후 EC2에서 ls 명령어로 파일이 잘 업로드되었는지 확인할 수 있다.
~$ java -jar expert-0.0.1-SNAPSHOT.jar

profile
뭐라도 해보자

0개의 댓글