[AWS/EC2] AWS EC2 초기 설정

SihoonCho·2024년 3월 1일
0

[AWS/EC2] AWS EC2

목록 보기
2/6
post-thumbnail
post-custom-banner

※ 읽기에 앞서


본 시리즈는 작성자의 이해와 경험을 바탕으로 실습 위주의 설명을 기반으로 작성되었습니다.
실습 위주의 이해를 목표로 하기 때문에 다소 과장이 많고 생략된 부분이 많을 수 있습니다.
따라서, 이론적으로 미흡한 부분이 있을 수 있는 점에 대해 유의하시기 바랍니다.

또한, 본 시리즈는 ChatGPT의 도움을 받아 작성되었습니다.
수 차례의 질문을 통해 도출된 여러가지 다양한 방식의 코드를 종합하여
작성자의 이해와 경험을 바탕으로 가장 정석으로 생각되는 코드를 재정립하였습니다.

📌 서버 시간 변경

$ sudo timedatectl set-timezone Asia/Seoul
$ timedatectl
$ date

📌 미러 서버 변경

미러 서버는 데비안 계열 리눅스(Debian, Ubuntu)에서
시스템에 설치할 수 있는 deb 패키지들을 가지고 있는 서버이며,
이 서버에 빠르게 접근할 수 있도록 서버를 통째로 복제해둔 로컬 서버입니다.

  • 초기 기본 설정된 우분투 패키지 미러서버는 상당히 느림
    • $ sudo apt update 등 패키지 다운로드시 불편
    • 패키지 다운로드 속도를 향상시키기 위해 미러서버 변경
  • 초기 기본 설정된 우분투 패키지 미러서버(EC2 인스턴스에 따라 다를 수 있음):
    • http://kr.archive.ubuntu.com/ubuntu/
    • http://ap-southeast-2.ec2.archive.ubuntu.com/ubuntu/
    • http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu/
  • 변경 가능한 우분투의 미러서버를 검색할 수 있는 사이트
  • 국내 변경 가능한 우분투 미러서버:
    • http://ftp.kaist.ac.kr/ubuntu/
    • http://mirror.kakao.com/ubuntu/
# 문자열 변경 명령어
:%s/원본 문장/변경 문장
# 카이스트 미러서버 변경
$ sudo vi /etc/apt/sources.list
:%s/kr.archive.ubuntu.com/ftp.kaist.ac.kr/
:%s/ap-southeast-2.ec2.archive.ubuntu.com/ftp.kaist.ac.kr/
:%s/ap-northeast-2.ec2.archive.ubuntu.com/ftp.kaist.ac.kr/
# 카카오 미러서버 변경
$ sudo vi /etc/apt/sources.list
$ :%s/kr.archive.ubuntu.com/mirror.kakao.com/
$ :%s/ap-southeast-2.ec2.archive.ubuntu.com/mirror.kakao.com/
$ :%s/ap-northeast-2.ec2.archive.ubuntu.com/mirror.kakao.com/

📌 패키지 업데이트

  • PPA(Personal Package Archive): 개인 패키지 저장소 = 비공식 패키지 저장소
    • Launchpad에서 제공하는 우분투 공식 패키지 저장소에는 없는
      서드 파티 소프트웨어를 위한 개인용 소프트웨어 패키지 저장소
$ sudo apt update
$ sudo apt upgrade
$ sudo add-apt-repository --remove ppa:certbot/certbot

📌 가상 메모리 할당

  • Swap 메모리는 하드디스크의 일부를 RAM처럼 사용하도록 만들어진 메모리
  • HDD 장치를 사용하는 것이기 때문에 읽고 쓰는 속도가 급격히 느려짐
  • 일반적으로 RAM 용량의 1배 ~ 2배를 Swap 메모리로 권장

[AWS EC2 Swap 메모리 할당방법]
https://repost.aws/knowledge-center/ec2-memory-swap-file
[AWS EC2 Swap 메모리 권장크기]
https://help.ubuntu.com/community/SwapFaq#How_much_swap_do_I_need.3F

📖 메모리 확인

# 메모리 사용량, 여유량, 캐시 크기
$ free
$ free -b # 메모리 크기를 바이트 단위로 출력
$ free -k # 메모리 크기를 키비바이트 단위로 출력 
$ free -m # 메모리 크기를 메비바이트 단위로 출력
$ free -g # 메모리 크기를 기비바이트 단위로 출력
$ free -h # 메모리 크기를 사람이 읽기 쉬운 단위로 출력

📖 Swap 메모리 비활성화

# 활성화 중인 Swap 메모리가 있다면 비활성화
$ sudo free -m
$ sudo swapon -s
$ sudo swapoff -a
$ sudo swapoff -v /swapfile

📖 Swap 메모리 할당 방법 1

# In this example dd command, the swapfile is 2 GB (64 MB x 32):
$ sudo dd if=/dev/zero of=/swapfile bs=64M count=32
$ sudo chmod 600 /swapfile        # 권한 수정
$ sudo mkswap /swapfile           # swapfile 생성
$ sudo swapon /swapfile           # swapfile 활성화
$ sudo nano /etc/fstab            # 파일 편집
/swapfile swap swap defaults 0 0  # 내용 추가 (권장)
/swapfile none swap sw 0 0        # 내용 추가 (옵션)

# [파일시스템장치] [마운트포인트] [파일시스템 종류] [옵션] [dump설정] [파일점검옵션]
    /swapfile        swap          swap     defaults    0          0
    /swapfile        none          swap        sw       0          0
# linux/ubuntu dd command

# In this example dd command, the swapfile is 1 GB (64 MB x 16):
# In this example dd command, the swapfile is 2 GB (64 MB x 32):
# In this example dd command, the swapfile is 4 GB (128 MB x 32):
# In this example dd command, the swapfile is 8 GB (128 MB x 64):
$ sudo dd if=/dev/zero of=/swapfile bs=64M count=16
$ sudo dd if=/dev/zero of=/swapfile bs=64M count=32
$ sudo dd if=/dev/zero of=/swapfile bs=128M count=32
$ sudo dd if=/dev/zero of=/swapfile bs=128M count=64

# if [File] = 지정한 파일을 입력대상으로 설정
# of [File] = 지정한 파일을 출력대상으로 설정
# bs [Bytes] = 한 번에 읽고 쓸 최대 바이트 크기 지정
# count [Number Blocks] = 지정한 블록 수 만큼 복사
# /dev/zero 내용을 읽고, /swapfile 파일에 쓰기, 64M 크기로 16번 

📖 Swap 메모리 할당 방법 2

  • fallocate를 사용하여 빈 파일을 생성하는 것은, dd를 사용하는 것보다 더 간단하고 빠름
  • 큰 파일을 생성할 때 성능 상 이점이 있으나, 파일 시스템이 fallocate를 지원해야 하며,
    지원하지 않는 파일 시스템에서는 사용할 수 없음
$ sudo fallocate -l 8G /swapfile  # Swap 메모리 할당 8GB
$ sudo chmod 600 /swapfile        # 권한 수정
$ sudo mkswap /swapfile           # swapfile 생성
$ sudo swapon /swapfile           # swapfile 활성화
$ sudo nano /etc/fstab            # 파일 편집
/swapfile swap swap defaults 0 0  # 내용 추가 (옵션)
/swapfile none swap sw 0 0        # 내용 추가 (권장)

# [파일시스템장치] [마운트포인트] [파일시스템 종류] [옵션] [dump설정] [파일점검옵션]
    /swapfile        swap          swap     defaults    0          0
    /swapfile        none          swap        sw       0          0
  • 마운트 포인트 필드: 일반적으로 swap 파일의 경우 마운트 포인트로 none을 사용합니다.
    swap 파일 또는 파티션은 실제 파일 시스템 마운트 포인트에 위치하지 않습니다.
  • 옵션 필드: defaults 또는 sw와 같은 옵션들이 있으며, swap에 관련된 옵션을 지정합니다.
    • defaults: 파일 시스템에 대한 기본 마운트 옵션을 의미합니다. swap의 경우, 특별한 마운트 옵션이 필요 없기 때문에 이 옵션은 실질적으로 무시될 수 있습니다.
    • sw: swap 파일이나 파티션을 활성화하기 위해 사용되는 옵션이며, swapon 명령어에 해당하는 옵션입니다. 일반적으로 swap 항목에서는 sw 옵션이 더 명확한 의미를 가집니다.

결론 - 일반적으로 사용되는 방법
/swapfile none swap sw 0 0/swapfile swap swap defaults 0 0보다 더 명확하고 표준적인 표현으로, swapfile 이나 파티션을 /etc/fstab에 추가할 때 일반적으로 사용됩니다.
none을 사용하는 것이 마운트 포인트가 필요 없는 swap에 더 적합하며,
sw 옵션은 swap 활성화를 명시적으로 나타냅니다.

📖 Swap 메모리 삭제

# swapfile 삭제
$ sudo free -m
$ sudo swapon -s
$ sudo swapoff -a                 # 모두 비활성화
$ sudo swapoff -v /swapfile       # swapfile 비활성화
$ sudo nano /etc/fstab
/swapfile swap swap defaults 0 0  # 내용 삭제
$ sudo rm /swapfile               # swapfile 삭제

📌 킬로바이트(KB)와 키비바이트(KiB)

SI 접두어: 국제단위계(International System of Units; 약칭 SI)에서
각 단위의 양의 크기를 쉽게 나타내기 위해 각 단위의 앞에 붙여 쓰는 접두어

profile
개발을 즐길 줄 아는 백엔드 개발자
post-custom-banner

0개의 댓글