안녕하세요!
두루뭉실 블로그의 주인장 두루뭉실 엔지니어입니다!
오늘은 EC2 인스턴스에 EBS로 볼륨을 확장해보겠습니다!
선행되어야 할 것 두 가지 아래 링크 참조 부탁드리겠습니다!
1) EC2 인스턴스 생성
[AWS] EC2 - 인스턴스 생성
안녕하세요! 두루뭉실 블로그의 주인장 두루뭉실 엔지니어입니다! 오늘은 AWS의 EC2를 활용하여 실습을 해보겠습니다! AWS EC2가 무엇인지 궁금하신 분은 아래 링크로 들어와 주세요~!! [AWS] EC2에
www.cloud-jjunni.com
2) 쉘(SSH)을 통해 인스턴스에 접속
[AWS] 쉘(SSH)를 통해 EC2에 접속해보자!
안녕하세요! 두루뭉실 블로그의 주인장 두루뭉실 엔지니어입니다! 오늘은 쉘(SSH)을 이용하여 EC2에 접속해보겠습니다! 그전에, EC2에 인스턴스가 생성되지 않으신 분은! 아래 링크를 참조해주셔
www.cloud-jjunni.com
추가적으로, AWS Documentation에서 제공하는
EC2의 Storage에 관한 게시글입니다!
Storage - Amazon Elastic Compute Cloud
Storage Amazon EC2 provides you with flexible, cost effective, and easy-to-use data storage options for your instances. Each option has a unique combination of performance and durability. These storage options can be used independently or in combination to
docs.aws.amazon.com
1. AWS EC2에서 제공하는 Storage
AWS EC2에서 제공하는 Storage는 총 4가지입니다.
1) Amazon EBS(Elastic Block Storage)
2) Amazon EC2 Instance Store
3) Amazon EFS(Elastic File System)
4) Amazon S3(Simple Storage Service)
다음 사진은
각 스토리지 옵션과 인스턴스 간의 관계입니다!

우선, AWS EBS부터 보겠습니다!
1) Amazon EBS(Elastic Block Storage)
이름에서도 알 수 있다 싶이 EBS는 블록 스토리지입니다.
Amazon EBS는 EC2 인스턴스의 영구 스토리지로써 인스턴스의 종료나 중지와 상관없이 데이터가 유지됩니다.
세분화된 업데이트를 자주 수행하는 데이터의 경우 적당한 내구성을 갖춘 EBS 사용을 권장합니다.
특히, EBS는 EC2인스턴스에서 DB를 실행해야 할 경우 권장되는 스토리지 옵션입니다.
처음 EC2를 생성할 시, root디바이스 유형이 EBS로 설정되어있습니다.
앞선 그림에서 참조할 수 있듯이, EBS는 인스턴스에 단일로 구성될 수 있으며 여러 EBS로 구성될 수 있습니다.
또한, 인스턴스에서 EBS를 분리하여 다른 인스턴스에 연결하여 사용할 수 있습니다.
단, 인스턴스 생성시에 구성된 root 디바이스의 경우는 분리하지 못합니다.
추가적으로, EBS 볼륨의 스냅샷을 생성하여 S3에 저장하면 데이터의 백업 사본을 유지할 수 있습니다.
2) Amazon EC2 Instance Store
Instance Store는 인스턴스를 종료, 중단 및 최대 절전모드시 Instance Store Volume의 모든 데이터가 손실되는 휘발성 스토리지입니다.
다음 사진과 같이, EC2 생성 혹은 AMI 생성 시에 선택해야 합니다.
1) EC2 인스턴스 생성 시, 인스턴스 스토리지 선택

또한, 다음 사진을 보면 루트 스토리지는 EBS로 구성되어 있습니다.
그리고, 인스턴스 스토어 옵션이 들어간 인스턴스 유형을 선택하면 아래 사진과 같이 인스턴스 스토리지가 추가된 모습을 볼 수 있습니다!

반면, EBS전용은 인스턴스 생성 단계에서 인스턴스 스토리지를 추가할 수 없음을 확인할 수 있습니다!


2) AMI(이미지) 생성 시, 인스턴스 스토어 추가 가능

즉, Instance Store는 EBS처럼 생성 후 별도로 추가하여 Attach 할 수 없고
EC2 인스턴스 생성 또는 AMI 생성 시 볼륨을 추가해야 합니다.
3) Amazon EFS(Elastic File System)
이름에서 알 수 있듯이 EFS는 파일 시스템입니다.
EFS는 Amazon EC2에서 사용할 수 있는 확장 가능한 파일 스토리지를 제공합니다.
EFS 파일 시스템을 만든 후, 파일 시스템을 마운트 하도록 인스턴스를 구성할 수 있습니다.
EFS는 맨 처음 스토리지 옵션의 사진에서 알 수 있듯이, 하나의 파일 시스템으로 여러 인스턴스와 연결 가능합니다.
즉, 하나의 EFS 파일 시스템을 여러 인스턴스에서 실행하는 워크로드 및 애플리케이션에 대한 공통 데이터 소스로 사용할 수 있습니다.
4) Amazon S3(Simple Storage Service)
S3 서비스는 오브젝트(객체) 스토리지입니다.
저렴하고 신뢰성 있는 데이터 스토리지 인프라에 액세스 할 수 있습니다.
또한, EC2 내 혹은 웹의 어디서나 원하는 데이터 양을 저장하고 가져올 수 있어서, 웹 규모의 컴퓨팅 작업을 쉽게 수행할 수 있습니다!
S3를 사용하면, 데이터 및 애플리케이션의 백업 복사본을 저장할 수 있습니다.
앞선, 스토리지와 인스턴스 간의 관계 사진에서 볼 수 있듯이, S3를 사용하면 EBS 스냅샷과 인스턴스 스토어를 AMI 형태로 백업할 수 있습니다!
더 깊게 S3에 대해 알고 싶다면, 아래 링크로 들어와 주세요!
[AWS]S3서비스에 대하여...
안녕하세요! 두루뭉실 블로그의 주인장 두루뭉실 엔지니어입니다! 오늘은 본격적으로 AWS의 S3 서비스에 대해 알아보겠습니다! 우선, 오늘도 시작하기 전에 S3 서비스에 대한 공식 문서 링크로 남
www.cloud-jjunni.com
2. EC2 인스턴스에 EBS 볼륨을 추가
이제 본격적으로,
EC2 인스턴스에 EBS 볼륨을 추가해보겠습니다!
순서는 아래와 같습니다~!
1) EBS 볼륨을 생성하고 EC2 인스턴스에 연결합니다.
2) File System을 생성하여 EBS 볼륨을 Mount 합니다.
CF) Linux 디스크 관리 - Mount가 무엇인가?
1. 운영체제가 물리적인 장치를 이용할 수 있도록 연결하는 것이 Mount다.
2. Linux OS는 모든 장치를 파일 단위로 관리하기 때문에
새로 추가된 장치는 임의의 디렉토리인 [Mount Point]에 연결시켜서 사용해야 한다.

EBS는 EC2 인스턴스에 용량을 추가하기 위한 목적입니다.
또한, Availability Zone(이하 AZ) 수준의 서비스입니다.
그러므로, EBS를 추가할 때
반! 드! 시! 해당 인스턴스와 같은 AZ에 추가해야 합니다!
1. EBS 볼륨 생성 및 EC2 인스턴스에 연결
1) [Elastic Block Store - 볼륨]에 접근

2) 볼륨 생성 선택
단, EC2 인스턴스의 리전과 EBS 생성 시 AZ가 같아야 합니다!
저의 경우, 가용 영역이 ap-northeast-2a이기 때문에
AZ가 같은 EBS를 생성하도록 하겠습니다!

3) EBS 볼륨 설정
인스턴스에 볼륨을 Attach 하기 위한 목적이니
용량은 1Gb로 하겠습니다.
또한, EC2 인스턴스의 AZ(가용 영역)와 같아야 하기 때문에
AZ를 [ap-northeast-2a]로 설정하겠습니다!

나머지 설정을 default값으로 하여 볼륨 생성해주세요!
4) [생성된 볼륨 확인 - 볼륨 연결 - 인스턴스 선택]


2. File System 생성 및 EBS 볼륨 Attach
1) EC2 인스턴스 내 디바이스 정보 출력
lsblk 명령어를 통해
EC2 리눅스 인스턴스에 있는 디바이스 정보를 출력해봅시다!
$ lsblk
저희가 아까 연결한 1GB 볼륨이
[xvdf]라는 이름으로 추가된 것을 확인할 수 있었습니다!

2) EBS 볼륨을 ext4 파일 시스템으로 포맷
우선, root계정으로 변경해줍니다!
$ sudo -i
리눅스는 파일 시스템에서 ext 포맷을 사용합니다.
ext포맷은 ext(ext1)부터 ext4까지 있는데
ext2와 ext3의 전통적인 블록 매핑 방식을 대체하기 위해 나온
ext4의 포맷을 사용하겠습니다.
리눅스 파일 포맷 명령어는 mkfs명령어를 사용합니다!
# mkfs [option : -t] [file_system] [device_name]
CF) 옵션 -t는 무엇인가?
-t 옵션과 [file system]을 같이 지정해주어
디바이스의 포맷 형식을 지정해줍니다!
-t 옵션을 주지 않으면,
명령어 형태는 "mkfs [device_name]" 형태가 되며
자동적으로 ext2 파일 시스템으로 포맷이 됩니다!
그래서 저흰 /dev/xvdf라는 디바이스를
ext4형태로 포맷하겠습니다!
# mkfs -t ext4 /dev/xvdf

3) 디렉터리 생성 후, EBS 볼륨을 마운트
아까 말씀드렸다시피,
디바이스를 마운트 포인트(디렉터리)에 마운트 하면
마운트의 과정은 끝나게 됩니다!
그럼 생성한 EBS 볼륨을
EC2 리눅스 인스턴스에 연결하고 Attach까지 완료하게 됩니다.
임의의 디렉터리를 만들어줍니다.
저는, /app이라는 디렉터리를 만들겠습니다.
# mkdir /app
이제 마운트 포인트에 디바이스를 마운트 하겠습니다!
마운트 명령어는 다음과 같습니다!
# mount [device_name] [mount_point]
/app 디렉터리(마운트 포인트)에
EBS 볼륨인 /dev/xvdf 디바이스를 Mount 하겠습니다!
# mount /dev/xvdf /app
lsblk 명령어를 통해 MountPoint인 /app에
/dev/xvdf 디바이스가 마운트 되었는지 확인해줍니다!

정상적으로 마운트 포인트에 마운트 되었습니다!
3. Mount 한 EBS 볼륨을 해제하기
이제 MountPoint에서 Volume을 해제하겠습니다.
해제 방법은 마운트 포인트 디렉터리를 Umount 하면 됩니다!
umount 명령어는 다음과 같습니다!
# umount [mount_point]
저의 마운트 포인트는 /app이었기 때문에
다음 명령어를 통해 볼륨을 해제해보겠습니다!
# umount /app
이번에는 [df -h] 명령어와
[lsblk] 명령어를 통해 확인해보겠습니다!
# df -h
# lsblk
CF) df 명령어가 무엇인가요?
df 명령어는 리눅스 시스템의
마운트 된 디스크의 여유공간을 확인하고
파일 시스템, 디스크 크기, 사용량, 남아있는 용량, 사용률, 마운트 포인트 순으로
정보를 출력합니다!
아래의 사진에서 확인할 수 있습니다.
1) df -h의 명령어
마운트 된 디스크에 xvdf 디스크가 없습니다!
2) lsblk 명령어
xvdf 볼륨에 마운트 포인트가 사라졌습니다.

이렇게, umount를 통해
마운트 된 볼륨을 해제했습니다!
이번 시간에는
AWS의 EC2 리눅스 인스턴스에서
EBS 볼륨을 연결하여 마운트하고, 볼륨을 해제해보았습니다!

요약하자면,
1. AWS EC2에는 4가지의 스토리지 옵션이 있다.
2. EBS를 EC2 인스턴스에 연결하기 위해 콘솔에서 같은 AZ를 선택한다.
3. EC2 인스턴스에 접속하여 디렉터리를 만들고 EBS 볼륨을 마운트 해준다.
4. umount를 통해 EBS볼륨을 마운트 포인트로부터 해제해준다.
이상 두루뭉실 블로그의 주인장 두루뭉실 엔지니어였습니다!
감사합니다!
'Cloud > AWS' 카테고리의 다른 글
[AWS] CloudWatch에 대하여,,, (1) | 2022.04.06 |
---|---|
[AWS] EC2에 Apache를 설치해보고 웹 페이지를 실행시켜보자! (1) | 2022.03.26 |
[AWS] 쉘(SSH)를 통해 EC2에 접속해보자! (0) | 2022.03.24 |
[AWS] EC2 - 인스턴스 생성 (1) | 2022.03.24 |
[AWS] EC2에 대하여... (0) | 2022.03.22 |