AWS EC2 생성 후 설정 가이드, SWAP메모리 할당하기

2025. 2. 22. 19:15·Infra

1️⃣ EC2 서버 접속하기

EC2 인스턴스에 접근하는 방법은 여러 가지가 있습니다. 로컬 터미널(PowerShell, CMD, iTerm) 또는 AWS 콘솔을 통해 접속할 수 있다.

$ ssh -i <pem키 경로> ubuntu@<도메인 혹은 공개ip>
$ ssh -i /path/to/your-key.pem ubuntu@example.com

 

2️⃣ 패키지 업데이트 및 업그레이드

서버를 최신 상태로 유지하려면 패키지를 업데이트하고 업그레이드해야 합니다.

$ sudo apt update
$ sudo apt upgrade

✅ sudo apt update

: 패키지 목록을 최신 상태로 가져온다. 실제 소프트웨어 업데이트는 아니며, 새로운 버전이 있는지 확인하는 과정이다.

✅ sudo apt upgrade

: 설치된 소프트웨어를 최신 버전으로 업그레이드한다.

 

3️⃣ EC2 서버 시간 변경 (한국 시간 설정)

EC2 인스턴스의 시간대를 한국 시간으로 변경하면, 로그 파일과 애플리케이션에서 사용되는 시간이 정확하게 기록된다

$ sudo timedatectl set-timezone Asia/Seoul
$ date # 설정된 시간 확인

EC2 인스턴스의 시간을 우리나라로 바꿔줘야 서버 관련 로그파일, 스케쥴링 작업, 애플리케이션에서 사용하는 시간 정보들이 모두 한국시간으로 기록되고 처리된다.

4️⃣ SWAP 메모리 설정

EC2 프리티어 인스턴스(1GB RAM)에서는 메모리 부족으로 서버가 느려지거나 먹통이 될 수 있다. SWAP 메모리를 추가하면 메모리 부족 문제를 완화할 수 있다.

 

SWAP 메모리는 리눅스에서 RAM이 부족할 경우, 디스크의 일정 공간을 마치 RAM 처럼 사용할 수 있도록 해준다.

AWS 에서 제공해준 매뉴얼대로 진행하면 된다.

 

https://repost.aws/knowledge-center/ec2-memory-swap-file

 

Use swap file to allocate memory as swap space in Amazon EC2 instance

I want to allocate memory to work as a swap file in an Amazon Elastic Compute Cloud (Amazon EC2) instance.

repost.aws

 

먼저 현재의 상황을 보겠다 

현재 나는 t2.micro 인스턴스를 사용하고 있어, 1기가의 RAM만이 사용 가능한 상황이다

 

AWS 지식센터에서는 권장 스왑 공간을 아래와 같이 권장하고 있다.

RAM 권장 스왑 공간
~ 2GB RAM의 2배 (32MB보다 작으면 안 됨)
2GB ~ 64GB RAM의 0.5배
64GB ~ 워크로드 또는 사용 사례에 따라 다름

✅  권장사항에 맞게 스왑 파일 생성하기

$ sudo dd if=/dev/zero of=/swapfile bs=128M count=16
  • dd: 파일을 복사하는 명령어
  • if=/dev/zero: 입력을 0으로 채운 데이터 스트림으로 설정
  • of=/swapfile: 생성할 스왑 파일 경로 지정
  • bs=128M count=16: 128MB 블록을 16번 쓰기 → 2GB 생성

이때, bs 블록 사이즈의 크기는 한 번에 읽고/쓰는 데이터의 양을 결정한다. 이 값이 크거나 작다고 무조건 좋은 것이 아니며, bs가 작을수록 작업당 오버헤드가 높아질 수 있고, bs가 클수록 시스템 자원 사용에 영향을 미치기 때문에, 실험을 통해 적절한 값을 선택하는 것이 좋다. 

✅ 스왑 활성화 및 자동 설정

$ sudo chmod 600 /swapfile  # 파일 권한 설정
$ sudo mkswap /swapfile  # 스왑 영역 설정
$ sudo swapon /swapfile  # 스왑 활성화
$ sudo swapon -s  # 적용 확인

 

✅ 부팅 시 스왑 자동 활성화

$ sudo vi /etc/fstab

아래의 한 줄을 맨 아랫칸에 추가한다.

/swapfile swap swap defaults 0 0

✅ 최종 확인

5️⃣ UFW (Uncomplicated Firewall) 설정

Uncomplicated Firewall은 Ubuntu 및 기타 Linux 배포판에서 사용하는 쉬운 방화벽 관리 도구이다. iptables의 복잡성을 추상화하여 사용자가 더 간단한 명령어를 통해 방화벽 규칙을 설정하고 관리할 수 있게 해 준다.

✅ UFW 상태 확인

$ sudo ufw status

현재 UFW가 활성화되어 있는지 확인하고, 허용된 포트를 확인할 수 있다.

✅ UFW 활성화

$ sudo ufw enable

✅ 특정 포트 허용 및 차단

$ sudo ufw allow 80  # HTTP 트래픽 허용
$ sudo ufw deny 80  # HTTP 트래픽 차단

🚨 주의: SSH(22번 포트)를 차단하면 원격 접속이 불가능해질 수 있다.


 

여기까지 마치게 되면, 기본적인 EC2 설정은 마쳤다.

 

 

'Infra' 카테고리의 다른 글

ECS - EC2 본격 배포하기 [4] - Github Actions로 CI/CD Workflow 구현  (5) 2025.04.06
ECS - EC2 간단 배포하기 [3] - ci/cd 설계  (0) 2025.03.15
ECS - EC2 간단 배포하기 [2] - 테스크 정의 및 배포  (1) 2025.03.15
ECS - EC2 간단 배포하기 [1] - EC2에 ECS 에이전트 설정  (1) 2025.03.10
당신의 EC2가 사망하는 이유 (feat. CpuCredit)  (1) 2025.02.26
'Infra' 카테고리의 다른 글
  • ECS - EC2 간단 배포하기 [3] - ci/cd 설계
  • ECS - EC2 간단 배포하기 [2] - 테스크 정의 및 배포
  • ECS - EC2 간단 배포하기 [1] - EC2에 ECS 에이전트 설정
  • 당신의 EC2가 사망하는 이유 (feat. CpuCredit)
SungHoJung
SungHoJung
  • SungHoJung
    HOLOUD
    SungHoJung
  • 전체
    오늘
    어제
    • 분류 전체보기 (43)
      • AlgoMate (13)
      • TroubleShooting (0)
      • 여러가지 모음집 (5)
      • Infra (18)
  • 링크

    • github
  • 인기 글

  • 태그

    AWS
    TossPayments
    host.docker.internal
    결제 다이어그램
    Celery
    IAM
    토스페이먼츠 연동
    redis
    docker-compose
    ci-cd
    ECS
    EC2
    로컬 서버와 통신
    스왑 메모리 설정
    celery+redis
    Kubernetes
    k8s
    컨테이너 간 통신
    크롤링
    bypass recaptcha
  • hELLO· Designed By정상우.v4.10.3
SungHoJung
AWS EC2 생성 후 설정 가이드, SWAP메모리 할당하기
상단으로

티스토리툴바