AWS (2) - EC2, 보안그룹

임재성·2026년 2월 17일

AWS 기초

목록 보기
2/8

EC2란?

  • AWS의 EC2(Elastic Compute Cloud)는 가상 서버를 제공하는 서비스.

제공 기능

  • 인스턴스
    가상 서버.

  • Amazon Machine Images (AMIs)
    서버에 필요한 구성 요소(운영 체제와 추가 소프트웨어 포함)를 패키징하는 인스턴스용 사전 구성 템플릿.

  • 인스턴스 타입
    인스턴스의 다양한 CPU, 메모리, 스토리지, 네트워킹 용량 및 그래픽 하드웨어 구성.

  • Amazon EBS 볼륨
    Amazon Elastic Block Store(Amazon EBS)를 사용하는 데이터에 대한 영구 스토리지 볼륨.

  • 인스턴스 스토어 볼륨
    인스턴스를 중단, 최대 절전 모드로 전환 또는 종료할 때 삭제되는 임시 데이터용 스토리지 볼륨.

  • 키 페어
    인스턴스에 대한 보안 로그인 정보. AWS는 퍼블릭 키를 저장하고 사용자는 프라이빗 키를 안전한 장소에 저장합니다.

  • 보안 그룹
    인스턴스에 도달할 수 있는 프로토콜, 포트 및 소스 IP 범위와 인스턴스가 연결할 수 있는 대상 IP 범위를 지정할 수 있는 가상 방화벽.

인스턴스 생성

  • 검색창에 ec2 검색 후 대시보드 접속
  • 우측상단의 리전 선택을 서울로 변경
  • 인스턴스 시작

  • OS 설정(필요에 따라 변경) [Ubuntu]
  • 인스턴스 유형(자동으로 선택되긴 합니다만 이것도 필요에 따라서 설정)
  • 키페어(현재 진행에서는 따로 사용안함, 필요에따라 진행)
  • 네트워크 설정(현재는 외부에서 80 포트로 진입할 수 있도록 해당ㄴ ㅐ용만 추가)
  • 스토리지 설정
  • 인스턴스 시작

인스턴스 확인

  • 좌측 메뉴의 인스턴스 클릭

  • 생성된 인스턴스 확인 (현재 사용중이 아니라 종료. - 바로 생성하고나면 실행중)

  • 항목에서 인스턴스 ID 클릭. (ip주소 및 현재 상태, 우측 상단의 인스턴스 상태를 통해 중지 및 시작 가능)

  • 밑에 보시면 인스턴스에 대한 상세 메뉴 들이 존재
    여기서 사용량 및 성능지표를 확인할 수 있음.

인스턴스 접속

  • 인스턴스가 실행중인 경우 우측 상단에서 연결 버튼을 통해서 인스턴에 연결이 가능함.

  • 그리고 우측 하단의 연결을 클릭

  • 접속이 정상적이면 아래와 같이 접속됨.

탄력적 IP

탄력적 IP란?

  • 탄력적 IP란 동적 클라우드 컴퓨팅을 위해 고안된 정적 IPv4주소를 말합니다.
  • 위에서 보신 퍼블릭 IP의 경우 인스턴스를 중지 후 다시 시작하게 되면 이전 IP와 달라지게 됩니다. 그렇다면 해당 인스턴스와 통신하던 다른 서비스나 인스턴의경우 매번 IP를 변경해줘야 하는데, 이러한 문제가 일어나지 않기 위해 정적 Ip가 필요합니다.

할당

  • 좌측 메뉴 탄력적 IP 선택 -> 우측 상단의 탄력적 IP 주소 할당 클릭

  • 할당 받기

  • 좌측의 체크박스 선택후 우측의 작업 클릭 -> 탄력적 IP 주소 연결 클릭

  • 인스턴스 선택후 우측 하단 연결 클릭

  • 아래와 같은 알람이 뜨면 정상 연결된 것.

  • 이후 다시 인스턴스 메뉴로 돌아가서 IP를 확인해보면 할당받은 IP로 연결된 것을 확인할 수 있음.

간단하게 스프링부트 서버 배포하기

JDK 설치

  • 스프링 부트 3.x.x 버전
  • JDK 17 버전
  • 설치
sudo apt update
sudo apt install openjdk-17-jdk -y
java -version
  • 결과

스프링 부트 프로젝트

  • 예제 파일 다운로드
    git clone https://github.com/JSCODE-BOOK/aws-ec2-springboot.git
    cd aws-ec2-springboot/src/main/resources
  • 서버 접속 환경 설정
    vi application.yml
server:
  port: 80
  • 빌드
cd ~/aws-ec2-springboot/ # build를 위한 이동
./gradlew clean build -x test # build 시작
cd build/libs # jar위치 이동
sudo nohup java -jar aws-ec2-springboot-0.0.1-SNAPSHOT.jar & # jar 실행 시작
sudo lsof -i:80 # 실제 실행중인지 확인
  • 확인

    혹시 연결할 수 없다고 나온다면 앞에 http 인지 확인 해보세요.

  • 종료
    sudo lsof -i:80 결과에서 PID 칼럼을 확인.
    sudo kill <PID> 종료
    sudo lsof -i:80 아무것도 나오지 않으면 성공.

보안그룹(Security Group)

보안그룹 이란?

  • 기본적으로 아무나 접근하지 못하도록 규칙을 정해놓을 수 있음.
  • EC2, RDS등 AWS의 다양한 자원이 수신/발신하는 트래픽을 제어하는 가상 방화벽 역할.
profile
조금씩 앞으로

0개의 댓글