AWS EC2 구성하기 (2025 최신 정책)

김소희·2025년 11월 14일

AWS Free Tier 정책 변경

2025년 7월부터 AWS Free Tier 정책이 변경되었다.
기존처럼 가입 후 1년 동안 t2.micro나 S3 30GB를 무료로 제공하는 방식이 아니라,

→ 가입 후 6개월 동안 100달러 AWS 크레딧 지급 방식으로 전환되었다.

또한 지역(Region)을 아시아 태평양으로 설정하려 했더니
기본 잠금 처리된 리전이 많아졌고, 특히 서울(ap-northeast-2)은 비용이 높기 때문에
초보 사용자의 실수로 과금이 발생하지 않도록 Free Account는 사용 가능한 리전이 제한된다.


EC2 구성하기

  1. 인스턴스 시작
  2. 이름 설정
  3. Ubuntu 선택
  4. t2.micro
  5. 키페어 생성 → PEM 파일 다운로드
  6. 보안그룹 생성
  7. SSH(22) 허용
  8. 스토리지 30GB 설정
  9. 인스턴스 시작

→ 인바운드 규칙에 SSH (포트 22) 가 아래와 같이 허용되어 있어야 함

  • 유형: SSH
  • 프로토콜: TCP
  • 포트 범위: 22
  • 소스: 내 IP 또는 0.0.0.0/0 (테스트용, 보안 취약 주의)


키페어(Pem)는 언제 생성되는가?

pem 키는 인스턴스가 아니라 키페어를 생성할 때 생성된다.
인스턴스를 만들면서 키페어도 만들었다면, pem 파일은 자동으로 Windows 다운로드 폴더에 저장된다.

만약 pem을 잃어버렸다면, AWS는 보안상 재발급을 제공하지 않는다.

세션으로만 인스턴스에 접속할거라면 키는 필요없지만 SSH 접속을 하려면 Session Manager로 서버에 들어가서 새로운 SSH 키를 직접 만들어야 한다.

매번 aws로 접속하는 것은 사실 귀찮다.
회사에서는 퍼티와 같은 툴을 사용해서 윈도우에서 ec2 접속도 가능하다.


Session Manager로 SSH 키 새로 만들기

인스턴스를 생성할 때 키페어를 건너뛰었다면 SSH로 접속이 불가능하다.
Session Manager로 인스턴스 내부에 접속한 후 직접 SSH 키를 생성해 등록하면 된다.

아래 명령을 순서대로 실행한다:

ssh-keygen -t rsa -b 4096 -f mynewkey       # SSH 키 생성
cat mynewkey.pub >> ~/.ssh/authorized_keys  # 공개키 등록

chmod 600 ~/.ssh/authorized_keys            # 권한 설정
chmod 700 ~/.ssh                            # 권한 설정

base64 -w 0 mykey                        # private key 출력 → 복사하기

여기서 중요한 점은
반드시 base64 -w 0 옵션을 사용해야 한다는 것!
(줄바꿈 없이 한 줄로 출력되기 때문에 복사할때 key가 깨지지 않음)

이는 아래처럼 잘못된 방식으로 키를 출력했기 때문이다:

❌ base64 mynewkey  ->  76자마다 줄바꿈 → 키가 깨짐 → PuTTYgen 응답 없음

반드시 아래 명령을 사용해야 한다:

base64 -w 0 mykey   # 줄바꿈 없는 정상 출력

출력된 한 줄 전체를 복사해 메모장에 입력한 후
이름을 mykey.b64로 바꿔주면 된다.


로컬에서 private key 복원하기

PuTTY 설치
https://www.putty.org/
https://apps.microsoft.com/detail/xpfnzksklbp7rj?hl=ko-KR&gl=US

Session Manager에서 복사한 base64 문자열을
로컬 PC에서 mykey.b64 파일로 저장한 후, 아래 명령으로 복원한다:

base64 -d mykey.b64 > mynewkey
chmod 600 mykey

이제 mykey 파일이 SSH 접속에 사용할 정상적인 private key가 된다.


PuTTYgen에서 PPK 파일 만들기

PuTTYgen 실행 → 아래 순서대로 따라 하기:

  1. Generate 선택한 후 제너럴을 누른후에 마우스를 움직여서 로딩채우기
  2. Generate 아래 Load 클릭
  3. 파일이 보이지 않으면 파일 형식을 “All Files (.)” 로 변경

  1. mykey 파일 선택

  1. 정상적으로 키를 로드하면 아래처럼 성공 메시지가 뜬다

만약 키 파일 내부에 공백 / 줄바꿈 / 누락된 문자가 있어서
정상적으로 등록되지 않는다면,
PuTTYgen은 오류 메시지를 주지 않고 응답 없음으로 멈춰버린다.


PuTTY에서 EC2 접속하기

  1. 좌측 메뉴에서 Session 에서 Host Name을 EC2 퍼블릭 주소를 적어준다.
  • Host Name: ubuntu@3.234.236.93
  • Port: 22

  1. 좌측 메뉴에서 SSH → Auth → Credentials에서
    Private key file for authentication"에서 로드한 PPK 키페어 파일을 선택한다.
  • Private key file: mykey.ppk

open을 누르면 바로 퍼티가 실행된다. Accept를 누르면 인스턴스로 접속된다.


파일 전송 – FileZilla

FileZilla는 GUI 기반 FTP/SFTP 클라이언트로,
EC2 서버의 디렉토리를 시각적으로 탐색하고
업로드/다운로드를 마우스 드래그로 간단하게 수행할 수 있다.

Filezilla 설치
윈도우 : https://filezilla-project.org/download.php?platform=win64
Mac : https://filezilla-project.org/download.php?platform=macos-arm64

FileZilla는 SSH 기반 SFTP 접속을 사용하므로
PuTTYgen에서 만든 mynewkey.ppk 또는 원래 pem 키가 필요하다.
Windows에서는 .ppk를 쓰는 것이 가장 안정적이다.

설치 후 실행하면 아래처럼 좌측은 로컬 PC, 우측은 서버 파일구조가 나타난다.
왼쪽(Local site)에서 오른쪽(Remote site)으로 파일을 옮기면 자동으로 업로드된다.
jar 파일 등은 드래그 앤 드롭으로 손쉽게 업로드할 수 있다


EC2 내부에서 Docker + Java 설치

Java 17 설치

sudo apt update
sudo apt install openjdk-17-jdk
java -version

Java 제거

sudo apt remove openjdk-17-jdk

Docker 설치

sudo apt install docker.io
sudo docker version
sudo usermod -aG docker $USER
newgrp docker

백그라운드에서 jar 실행

nohup java -jar myapp.jar > app.log 2>&1 &

설명:
nohup: 사용자가 로그아웃해도 프로세스가 계속 실행되도록 함
java -jar myapp.jar: 실행할 Spring Boot 애플리케이션
> app.log: 표준 출력(stdout)을 app.log 파일에 저장
2>&1: 표준 에러(stderr)도 같은 로그 파일에 저장
&: 백그라운드 실행

이제 퍼블릭 DNS주소로 접속해도 스프링 프로젝트가 실행된 결과를 볼 수 있다.
ec2-3-234-236-93.compute-1.amazonaws.com (지금은 안됩니다. ^^)


참고자료

벨로그 - AWS EC2에 PuTTY로 접속하기
티스토리 - EC2 인스턴스 SSH 접속 putty 사용
노션 - 윈도우 SSH 접속방법
벨로그 - EC2 - FileZilla 연결

profile
개발자 소희의 노트

0개의 댓글