본문 바로가기

메가존 클라우드 2기 교육/실무 심화

AWS - 스토리지(EBS, EFS, S3)

AWS 스토리지 서비스란?

AWS 클라우드 스토리지는 데이터 스토리지를 서비스를 서비스로서 관리하고 운영하는 클라우드 컴퓨팅 공급자를 통해 데이터를 인터넷에 저장하는 클라우드 컴퓨팅 모델이다.

JIT(Just-In-Time) 용량 및 비용이 온디맨드로 제공되며 자체 데이터 스토리지 인프라를 구매하거나 관리할 필요가 없다. 따라서 '언제 어디서든' 데이터에 액세스할 수 있는 민첩성, 세계적 규모 및 안정성을 제공한다.

AWS 클라우드 데이터 스토리지에는 객체 스토리지(링크, http, Restful API) 파일 스토리지(공유폴더, 네트워크, 마운트), 블록 스토리지(OS, root)라는 3가지 유형이 있다.


EBS(Elastic Block Storage)

EBS - 불륨 생성

Persistent(영구적인) Volume이라고도 불린다

현재 web01의 블록 상태이다.
MobaXterm에 EC2에 aws.tar 업로드
aws.tar
1.52MB
# tar 풀기
sudo tar xvf aws.tar -C /var/www/html

# index.html 편집
sudo vi /var/www/html/index.html
//
It's Nice To Meet You -> web01
//

AWS에서 EBS - 불륨
인스턴스가 web01인 불륨의 이름을 'web01-root'로 변경, web02는 'web02-root'로 변경
불륨 생성 클릭
가용 영역은 Attached 하려는 불륨의 가용 영역과 같아야한다.
위와 같이 태그를 추가해준 뒤, 불륨 생성하자.
스냅샷은 아직 없으며, 새로 고침을 하여 불륨 상태가 '사용 가능'임을 확인한다.

EBS - 불륨 연결

확인이 됐으면 '불륨 연결' 클릭
같은 가용 영역(2a)에 있는 web01만 뜬다.
web01에 연결 성공

xvdf가 추가됐다.
# xvdf를 mkfs를 이용하요 ext4로 포멧
sudo mkfs -t ext4 /dev/xvdf

# 마운트
sudo mount /dev/xvdf /mnt
xvdf가 /mnt에 마운트 됐다.

 


# 업로드한 aws.tar를 /mnt로 이동
sudo mv aws.tar /mnt
xvda에 있던 aws.tar를 xvdf로 이동시켰다. 이로 인해 xvda의 공간을 아낄 수 있다.

EBS - 스냅샷으로 불륨을 만들어 다른 가용 영역에 파일 옮기기

그렇다면 web01에 있는 파일을 다른 가용 영역에 있는 web02로 옮길 수 없는 것일까?

위에 있는 방법대로 마운트하는 형식은 불가능하다. 하지만 '스냅샷'을 이용한다면 가능하다.

이 '스냅샷'은 복사본이라 생각하면 된다.

스냅샷 클릭
스냅샷 생성 클릭
설정을 해주고 '스냅샷 생성' 클릭
스내샵 상태가 '완료됨'을 확인

'작업 - 스냅샷에서 불륨 생성' 클릭. (aws.tar를 다른 가용 영역으로 옮기기 위해 스냅샷을 가용 영역을 바꾼 불륨으로 생성)
이 처럼 가용 영역을 바꿀 수 있으므로, web02의 가용 영역으로 변경하여 web02로 파일을 옮길 수 있게된다.

불륨에 들어가면 만든 불륨이 있다.
스냅샷으로 만든 것이므로 스냅샷 정보가 있으며, 연결 가능한 상태이다.
같은 가용 영역(2c)인 web02에만 연결이 가능하다.

참고로 위에서와 달리 xvdf에는 우리가 사용할 파일이 있으므로 절대 포멧하면 안된다.

# 마운트
sudo mount /dev/xvdf /mnt
마운트 성공
이제 우분투에서도 aws.tar 파일이 존재한다.

# tar파일 풀기
sudo tar xvf /mnt/aws.tar -C /var/www/html/

# index.html 수정
sudo vi /var/www/html/index.html
//
It's Nice To Meet You -> web02
//

EBS - 스냅샷 복사

스냅샷을 복사하여 불륨을 백업할수 있다.

또한, 이 복사한 스냅샷을 다른 리전으로 전송할 수도 있다.

스냅샷 복사 클릭
도쿄 리전으로 고르고 '복사'
'도쿄' 리전으로 바꾸면 스냅샷이 생성되어있다.

 이 스냅샷은 가지고 있으면 과금이 발생하므로 삭제해주자.

 


EFS (EC2용 파일 관리형 스토리지)

EFS 생성

EFS에 접속
  • Standard 스토리지 - 가장 기본적인 스토리지이다.
  • Standard - Infrequent Access 스토리지: 자주 접근하지 않는 경우에 쓰이는 스토리지. 가격이 저렴하다는 장점이 있으나, 퍼포먼스가 떨어진다는 단점이 있다.
  • One Zone 스토리지 - 스토리지는 보통 4개의 가용 영역이 있다. 그렇기 때문에 가용성(데이터 손실이 적고 안정성이 높음)을 보장하는데, One Zone 스토리지는 가용 영역을 1개만 쓴다. 가격은 저렴하다는 장점은 있으나, 가용성이 떨어진다는 단점이 있다.
파일 시스템 생성을 눌러 EFS를 생성해보자.
생성 성공. 'new-efs' 이름을 눌러보자.
하단의 네트워크 메뉴를 클릭.
총 4개의 가용 영역에 저장된다.

EFS 연결

연결을 하기 전에 EFS를 위한 보안 그룹을 생성하자.

EC2에 접속한 뒤, 보안 그룹 메뉴를 선택한다.

보안 그룹 생성 클릭
인바운드 규칙에 NFS 유형을 추가하고 생성

다시 EFS로 돌아와서 네트워크 메뉴를 본다.

관리 클릭
디폴트 값을 다 제거하고 새로 만든 efs 보안 그룹을 선택하고 저장

우측 상단의 연결버튼을 클릭
DNS를 통한 탑재
IP를 통해 탑재
# efs 폴더 생성
mkdir efs

# DNS를 통한 탑재 - NFS 클라이언트 사용
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-04f3e8c30b9756133.efs.ap-northeast-2.amazonaws.com:/ efs
탑재 성공

확인용 파일을 MobaXterm에 업로드 한다. (필자는 사진 파일을 업로드함)

사진을 efs 폴더로 이동

이제 이 사진 파일을 우분투로 efs를 이용하여 옮길 것이다.

# 우분투(web02)에서 efs 폴더 생성
mkdir efs

# 우분투의 경우에는 efs를 사용하려면 nfs 설치를 해야한다.
sudo apt update
sudo apt install -y nfs-common

# 이번에는 IP를 통해 탑재
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 172.31.5.207:/ efs
마운트 성공
web01에서 올린 파일이 있다.
반대로 web02에서 efs에 파일을 생성
마찬가지로 web01에서도 확인 가능

S3 (Simple Storage Service)

버킷 생성

버킷 만들기 클릭
실습용이므로 퍼블릭 권한 부여. 실무에선 안하는 것이 좋다.
복구를 위해버킷 버전 관리 활성화
생성 성공

버킷명을 눌러 접속하고 폴더 만들기 클릭
images 폴더 생성
images 폴더에 들어가서 업로드 클릭
다음 두 사진 파일을 업로드
Downloads.zip
0.58MB
기본적으로 프라이빗이므로 접근이 불가능하다. 그러므로 실습에서 만큼은 퍼블릭을 하여 접근할 수 있도록 하자.
업로드 성공
해당 url을 통해 사진 확인도 가능
실제로도 wget으로 다운 가능
버킷에서 다시 업로드 클릭
다음 두 html 파일 업로드
똑같이 퍼블릭

만일, 파일을 실수로 지웠다면, 다음과 같이 복구할 수 있다.

버전 관리를 통해 '버전 표시'를 활성화하면 사본을 다운로드 할 수 있다.

속성 클릭
맨 아래에 정적 웹 사이트 호스팅 편집 클릭
위 처럼 설정하고 저장
이제 밑의 링크로 페이지에 접속하면 일반 웹사이트와 같이 접속 가능.

 

실제 접속 화면