(17)AWS(아마존 웹서비스) 홈페이지 만들기 – t2.micro환경 swap메모리 할당으로 Linux 가상 메모리 늘려주기

웹서비스구축

“내 소유의 홈페이지 사이트 만들기” 전체 설치 과정에서 이 글의 위치는 다음과 같습니다.

  • AWS 유저등록 -> EC2 인스턴스 등록 -> EC2 인스턴스 확인 ->PHP7설치 -> Apache HTTP Server설치 -> firewalld,SELinux정지 -> PHP.ini수정 -> Apache HTTP + PHP 연결 -> MySQL설치 -> WordPress용 DB작성 -> WordPress설치 -> 도메인 구입 -> Public IP구입 -> Public 도메인,IP의 DNS등록 -> 홈페이지 URL 변경 -> ssl증명서 작성(https용) -> ssl증명서 갱신 스케줄 등록 -> ssh접속 타임아웃 변경 -> 가장메모리 증설 -> 타임존 변경

이 글은 AWS 웹 서비스 환경 작성을 위한 글 목록의 일부이지만 제공 업체(Azuru, GCP 등)가 다르더라도 Linux 7 운영 체제라면 이 글의 내용을 적용할 수 있습니다.

스폰서 링크

가상 메모리란?

가상 메모리는 컴퓨터에 RAM(Random Access Memory)를 재정적 또는 물리적 이유로 늘려주기 힘들 경우 HDD(Hard Disk Drive) 또는 SSD (Solid State Drive)메모리를 RAM처럼 사용하는 기술입니다. Unix계열 OS에서는 swap 메모리라고 합니다.

저렴한 Cloud 컴퓨터의 메모리 부족 문제

AWS에서 제공하는 Amazon EC2(Elastic Compute Cloud) 초기 1년 무료 t2.micro의 Linux 환경을 구축해서 워드프레스를 설치하여 무난히 이용하기에는 RAM 1G의 작은 메모리 용량이 걸림돌이 되어 홀로 블로그에 액세스해 편집만 하는데도 워드프레스의 데이터베이스에 접근하는 프로세서가 곧잘 멈추곤 합니다.

Cloud컴퓨팅 서비스 t2.micro의 컴퓨터 사양은 사용할 수 있는 RAM의 전체 메인 메모리가 1기가 정도로 매우 작습니다. 만약 swap 메모리를 이용한다면 메인 메모리(RAM)에서 자주, 혹은 급하게 사용하지 않는 페이지를 일시적으로 swap 파일에 대피(페이징) 시켜 프로세서가 이용할 수 있는 메인 메모리(RAM)를 늘려주면 프로세서가 메모리가 부족하여 멈추는 것을 막을 수 있습니다.

또한, t2.micro Cloud 컴퓨터는 SSD를 채용하기 때문에 swap 파일에 대한 페이징 속도가 꽤 빠른 편이며 개인 블로그 정도의 액세스에는 충분하다고 보여 가상 메모리를 늘려주는 것으로 RAM 부족 문제를 해결하려고 합니다.

가상 메모리 증설 절차

다음은 가상 메모리 증설 절차를 실행하는 방법을 소개합니다.

기존 RAM 1G에 가상 메모리를 2G 늘림으로서 총 3G의 RAM을 가지고 있는 컴퓨터처럼 소프트웨어를 동작 시킬 수 있습니다. 이로서 동시에 대량의 웹 액세스가 발생하지 않는 한 데이터베이스에 접근하는 프로세서가 멈추는 일은 좀처럼 발생하지 않을 거라고 여겨집니다.

이 글에서 소개하는 가상 메모리 증설 절차는 CentOS 7에서 확인했습니다.

현재 메모리 확인

다음의 free 명령과 df 명령을 실행하여 swap 메모리와 디스크 여유 공간, 사용량을 확인합니다.

AWS에서 제공하는 Amazon EC2(Elastic Compute Cloud) 초기 1년 무료 t2.micro의 Linux환경을 구축해서 워드프레스를 설치, 블로그를 개시했을 때의 초기 상태는 swap 메모리가 Swap: 0 0 0로 할당되어 있지 않습니다.

$ free
     total   used   free  shared buff/cache available
Mem: 1013196 564876 78036 57616  370284     230192
Swap:0      0      0

디스크 용량도 39% 사용 중이므로 여유 공간도 충분합니다.

$ df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 483740 0 483740 0% /dev
tmpfs 506596 0 506596 0% /dev/shm
tmpfs 506596 57484 449112 12% /run
tmpfs 506596 0 506596 0% /sys/fs/cgroup
/dev/xvda1 8377344 3196072 5181272 39% /
tmpfs 101320 0 101320 0% /run/user/1000

가상 메모리 증설

다음과 같이 2G SSD 메모리를 RAM처럼 쓸 수 있도록 swap 메모리를 할당합니다.

$ sudo dd if=/dev/zero of=/swapfile bs=64M count=32
32+0 records in
32+0 records out
2147483648 bytes (2.1 GB) copied, 31.9864 s, 67.1 MB/s
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=403c1311-d74e-4093-80da-49bf378653dd
$ sudo swapon /swapfile
$ sudo swapon -s
Filename Type Size Used Priority
/swapfile file 2097148 0 -2

“리눅스 컴퓨터 부팅시 mount 정보“를 저장하고 있는 /etc/fstab에 /swapfile 정보를 추가해야 합니다. 추가하지 않는다면 재부팅시 위에서 설정한 /swapfile를 인식하지 못합니다.

$ sudo vi /etc/fstab
...중간생략...
UUID=f41e390f-835b-4223-a9bb-9b45984ddf8d / xfs defaults 0 0
#마지막 라인에 추가
/swapfile swap swap defaults 0 0

증설 결과 확인

다음의 free 명령과 df 명령을 실행하여 swap 메모리 할당 결과와 디스크 여유 공간, 사용량을 확인합니다.

swap메모리가 Swap: 2097148 0 2097148로 할당되었음을 확인할 수 있습니다.

$ free
     total    used   free    shared buff/cache available
Mem: 1013196  551684 128428  57592  333084     257248
Swap:2097148 0      2097148

swap 메모리로 SSD 메모리를 2기가 사용했기 때문에 디스크 사용량도 39%에서 68% 사용 중으로 증가되어 있습니다.

$ df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 482588 0 482588 0% /dev
tmpfs 506516 0 506516 0% /dev/shm
tmpfs 506516 19468 487048 4% /run
tmpfs 506516 0 506516 0% /sys/fs/cgroup
/dev/xvda1 8377344 5669712 2707632 68% /
tmpfs 101304 0 101304 0% /run/user/1000

AWS 웹 서비스 환경 구축 전체 목록

이 글은 AWS 웹 서비스 환경 작성을 위한 전체 절차의 한 부분입니다. 전체 목록은 다음을 참조하십시오.

AWS EC2 웹 서비스(Wordpress) 구축 전체 글 목록
EC2(Elastic Compute Cloud) 웹 서비스 구축 전체 글 워드프레스 설치 , 환경 설정 전체 글

다음 글

(18)AWS(아마존 웹서비스) 홈페이지 만들기 - CentOS7(Linux7) 타임 존 KST(Korea Standard Time) 변경하기
사전에 기본 설정이 완료된 템플릿을 이용해 AWS EC2 인스턴스를 작성 하거나 Linux OS를 배포 사이트에서 다운로드해서 설치를 하여 우여곡절 끝에 어렵게 어찌저찌 끝냈는데 자신도 모르는 사이에 TimeZone...
제목과 URL을 복사했습니다