이번 포스팅에서는 AWS EC2를 사용해 간단한 스프링 부트 API를 배포하고, 브라우저에서 결과를 확인하는 과정을 단계별로 안내합니다.


1. EC2 인스턴스 생성

1. AWS 접속

2. EC2 검색

  • AWS 검색창에서 "EC2"를 입력하여 EC2 대시보드로 이동합니다.

 

3. 인스턴스 시작

  • 인스턴스 시작 버튼을 클릭하고 아래와 같이 설정합니다
    • 이름: 원하는 이름 설정 (예: my-ec2-instance).
    • OS 선택: Ubuntu (최신 LTS 버전 선택).
    • 인스턴스 유형: 프리티어를 위해 t2.micro 선택.
    • 키 페어: 이번 프로젝트는 바로 삭제할 예정이므로 키 페어 없이 계속 진행 선택.
    • 네트워크 설정: 보안 그룹 생성을 선택하고 HTTP(80), HTTPS(443), SSH(22) 포트를 열어줍니다.
  • 설정 완료 후 인스턴스 시작 버튼을 클릭합니다.

 


2. 간단한 스프링 부트 프로젝트 생성

1. 스프링 부트 프로젝트 생성

  • Spring Initializr에서 새로운 프로젝트를 생성합니다.
    • Dependencies: Spring Web.
    • Build Tool: Maven 또는 Gradle.
  • 생성된 프로젝트에서 간단한 API를 작성합니다
@RestController
public class MainController {
    @GetMapping("/test")
    public String test() {
        return "EC2 quick test";
    }
}

 

2. GitHub에 프로젝트 업로드

  • 생성된 프로젝트를 로컬에서 GitHub에 업로드합니다.

3. EC2 인스턴스 연결

1. EC2 인스턴스 연결

  • AWS 관리 콘솔에서 생성된 인스턴스를 선택하고, 연결 버튼을 클릭합니다.

2. 필수 소프트웨어 설치

sudo apt update
sudo apt install openjdk-17-jdk git -y
  • EC2 인스턴스에 접속한 뒤, Java와 Git을 설치합니다

3. GitHub에서 프로젝트 클론

  • HTTPS 방식을 사용하는 경우, Personal Access Token을 생성하여 클론합니다:
  • git clone <https://github.com/>/.git


4. 보안 그룹 설정: 포트 8080 열기

  1. 보안 그룹 설정 확인
    • AWS EC2 대시보드에서 인스턴스를 선택하고 보안 그룹으로 이동합니다.
    • 인바운드 규칙 편집을 클릭하고 아래와 같은 규칙을 추가합니다:
      • Custom TCP Rule: 포트 8080.
      • Source: 0.0.0.0/0 (모든 IP 허용).
       


5. 스프링 부트 애플리케이션 실행

  1. 프로젝트 빌드 및 실행
    • 클론한 프로젝트 디렉토리로 이동한 뒤, Gradle을 사용해 애플리케이션을 실행합니다:
    • cd <your-repository> ./gradlew bootRun
  2. 애플리케이션 테스트
    • 브라우저에서 아래 URL로 접속하여 API 응답을 확인합니다:
    • http://<EC2_PUBLIC_IP>:8080/test


6. 결과

이제 간단한 스프링 부트 API가 EC2에서 성공적으로 실행되었습니다.

여기까지 따라오셨다면 EC2 서버와 스프링 부트를 연동하는 기본적인 과정을 이해하셨을 겁니다.

🎉 완성된 URL

  • 테스트 URL: http://<EC2_PUBLIC_IP>:8080/test

7. 학습하면 좋을 내용

 

  • 탄력적 IP (Elastic IP)
    • EC2 인스턴스의 공인 IP 주소를 고정하여 인스턴스 재시작 후에도 동일한 IP를 유지하는 방법.
  • EC2 인스턴스 완전 삭제
    • 사용하지 않는 EC2 인스턴스를 안전하게 종료하고, 스토리지와 연결된 리소스를 삭제하는 방법.
  • GitHub SSH 연동 방법
    • SSH 키를 사용해 GitHub에 인증하고, 더 간단하고 안전하게 프로젝트를 관리하는 방법.
  • Docker를 사용한 배포
    • Docker를 활용해 애플리케이션을 컨테이너화하고, EC2에서 손쉽게 배포하는 방법.

 

 

추가 참고사항

  • HTTPS 설정: HTTPS를 적용하려면 Spring Boot에서 SSL 인증서를 설정해야 합니다.
  • 보안: 실제 서비스에서는 보안 그룹의 0.0.0.0/0 설정을 사용하지 말고, 허용할 IP를 제한하는 것을 권장합니다.

'AWS > 학습정리' 카테고리의 다른 글

gabia 도메인 구매방법  (0) 2024.12.04
Route53  (1) 2024.12.03
ACM  (0) 2024.12.02
ELB  (0) 2024.12.02

+ Recent posts