AWS 스토리지 서비스
- 데이터 스토리지를 서비스로서 관리하고 운영하는 클라우드 컴퓨팅 공급자를 통해 데이터를 인터넷에 저장하는 클라우드 컴퓨팅 모델
- JIT(Just-In-Time) 용량 및 비용이 온디맨드로 제공되며 자체 데이터 스토리지 인프라를 구매하거나 관리할 필요 ❌
- '언제 어디서든' 데이터에 액세스할 수 있는 민첩성, 세계적 규모 및 안정성을 제공
- 스토리지 3가지 유형
- 객체 스토리지; Link
- 파일 스토리지; Mount, 공유폴더
- 블록 스토리지; OS
EBS
- Elastic Block Store
- 블록 스토리지
- 영구 볼륨; Persistent Volumes
- 용량이 부족하거나 별도의 디스크(저장공간)가 필요한 경우
- EC2 서비스 - Elastic Block Store 탭 - 볼륨 클릭
- 이름 변경
- 이름 우측 버튼 클릭
- 어떤 인스턴스에 붙어 있는지 싶게 알기 위해 이름 설정
볼륨 생성
- 볼륨 생성 클릭
- 프리티어 범용 SSD 선택
- AZ a 영역에 있는 EC2에 붙이기 위해 EBS의 AZ 도 a 영역으로 선택, 테스트용 1GB
- 태그
- 결과
볼륨 연결
EC2에 볼륨 연결
- 사용가능 상태의 EBS를 우클릭 - 볼륨 연결
가용 영역 설정
- AZ를 a로 설정했기 때문에 AZ a 영역에 있는 EC2만 지정가능
디바이스 이름 설정
- 디바이스 이름을 /dev/sd[f~p] - f~p 까지 변경할 수 있다.
Attach 결과
- 대시 보드 결과 확인
- mobaXterm 에서 EC2 확인
볼륨 mount 하기
- xfs는 호환이 좋지 않다.
- ext4 형식으로 포멧
sudo mkfs -t ext4
- 포멧한 디스크 mount
- mount 한 디스크에 파일이동 후 확인
$ lsblk
$ sudo mkfs -t ext4
$ sudo mount /dev/xvdv /mnt
$ df -h
$ ls /mnt
볼륨 스냅샷
- 과금 요소
- 기능이 추가된 EBS를 다른 AZ 영역에서도 사용하고 싶을때
- EC2 서비스 - Elastic Block Store 탭 - 스냅샷 클릭
- 스냅샷의 3가지 기능
- 볼륨 만들기
- 이미지 만들기
- 복사 기능 (다른 Region으로)
스냅샷 생성
- 스냅샷 생성 버튼 클릭
- 스냅샷할 볼륨 선택
- 태그 생성
볼륨 생성
- 스냅샷을 이용하여 볼륨 생성시 가용영역을 설정 가능
- 복사할(스냅샷) 을 선택 - 작업 - 스냅샷에서 볼륨 생성 클릭
- 가용영역을 설정
- 태그 설정
- 볼륨 탭에서 결과 확인
복제한 볼륨 연결
- 볼륨 우클릭 - 볼륨 연결 클릭
- AZ c 영역에 있는 EC2에 연결
- Attach 결과
연결한 볼륨 Mount
$ lsblk
$ sudo mount /dev/xvdv /mnt
$ df -h
$ ls /mnt
- 기존의 데이터를 사용할 것이기 때문에 데이터를 초기화하는 포멧은 사용 ❌
스냅샷 복사
- 다른 Region 등에 전송; 백업
- Data Transfer 작업 (서울 -> 도쿄 전송, 아웃바운드 비용 발생)
- 스냅샷 선택 - 작업 - 스냅샷 복사 클릭
스냅샷 복사 클릭
새 스냅샷 설정
- 설명 작성; 기본값
- 대상 리전 설정; ap-north-east-1 (Tokyo Region)
결과 확인
- 도쿄 리전 이동 - 스냅샷
스냅샷 삭제
- 스냅샷 선택 우클릭 - 스냅샷 삭제 클릭
EFS
- Elstic File System; NFS
- 공유 폴더 마운트
- EFS 검색
- 실시간 파일 공유
- EFS 홈
EFS 유형 과 요금
- EFS 스토리지 유형
- Standard 스토리지; 자주 접근하는 경우
- Infrequent Access (Standard-IA); 자주 접근하지는 않으나 접근해야 되는경우
- One Zone 스토리지; AZ 하나에 저장, 가용성 ⬇
EFS 생성
EFS 세부 정보
- EFS 이름 클릭 또는 EFS 체크 - '세부 정보 보기 클릭'
네트워크 탭 확인
- 각각의 AZ 에 생성되며 동기를 이루며 복사본 들이 저장된다.
보안 그룹 설정
EFS 보안 그룹 생성
- EC2 - 네트워크 및 보안 탭 - 보안 그룹 - 보안 그룹 생성 클릭
- 이름 지정, 설명
- 인바운드 규칙 설정
- 유형; NFS
- 소스; Anywhere
EFS 보안 그룹 적용
- 네트워크 - 관리 클릭
- default 보안 그룹 제거
- EFS 보안 그룹 선택
EFS 연결
- 연결 클릭
연결 방법 확인
- EFS 탑재 헬퍼 사용
- NFS 클라이언트 사용 ✅
EC2에 연결
$ mkdir efs
$ sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-09925d3e1621bd591.efs.ap-northeast-2.amazonaws.com:/ efs
$ df -h
- EFS mount
- 파일 업로드후 확인
cf. IP 를 통해 탑재
/*
❗ amazon linux 가 아니라면 수행
*/
$ sudo apt update
$ sudo apt install -y nfs-common
/*
IP 를 통해 탑재
*/
$ sudo mkdir efs
$ sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 172.31.12.146:/ efs
EFS 과 보안 그룹 간의 관계
S3
- Simple Storage Service
- Object Storage
- 속성과 메타데이터를 기반으로 플랫 주소 공간에 파일을 저장하는 방법
- 클라우드의 확장 가능한 객체 스토리지
- Link
- 한 리전에 생성되나 글로벌에서 쓰임.
S3 대시보드
- S3 검색 또는 서비스 탭 - 스토리지 - S3 선택
S3 Bucket 생성
새로 만들기 클릭
일반 구성
객체 소유권
- 보안 관련 부분
- ACL; Access Control List
- 접근 제어 조건을 운영할지 말지
- ❗ ACL 비활성화됨; Private 하게 이용시 ✅(대부분의 경우 보안때문에 하지 않을까 싶음)
- 비활성화
Default
- 버킷을 생성한 사용자가 모두 권한을 관리하는 옵션, 활성화 하면 외부 사용자가 오브젝트 접근 권한을 가질 수 있디 때문에 신중해야 한다.
퍼블릭 액세스 차단 설정
모든 퍼블릭 액세스 차단
이 체크되어 있다면 외부로부터 버킷 접근을 차단 한다는 의미
- 다른 사용자가 버킷의 콘텐츠에 접근/업로드 불가
- 버킷 레벨의 설정, ACL 보다 더 광범위하게 적용
ACL 비활성이면 적용 ❌ 잘못된 표현 ➡️ 객체 소유자가 권한 (ACL을 통해)을 부여하여 객체를 공개하더라도 해당 객체가 있는 버킷에 공개 액세스 차단 설정이 활성화된 경우 객체는 공개적으로 액세스할 수 없습니다.
- ❗ 가급적이면 퍼블릭하게 사용 ❌
버전 관리
- 복구 / 복원 / 롤백
기본 암호화 설정, 버킷 만들기
- 데이터를 보호 하기 위한 것
- 지금은 암호화가 Default
- KMS; 개인적으로 키를 만들어 셋팅
버킷 생성 결과
S3 버킷 정보
- 버킷 이름 클릭
폴더 만들기
images 폴더
images
폴더 클릭
파일 업로드
업로드 클릭
파일 / 폴더 추가
권한 설정
- 미리 정의된 ACL
- 퍼블릭 읽기 액세스 권한 부여 클릭
업로드 결과
cf. 버킷 루트에 정적 콘텐츠 추가
정적 웹 서버 설정
- 버킷 정보 - 속성 탭 - 정적 웹 사이트 호스팅
- 속성 탭에서 맨아래
정적 웹 사이트 호스팅 활성화 클릭
인덱스 / 오류 페이지 설정 후 저장
정적 웹 사이트 접속
- index.html
- error.html
리소스 삭제
스냅샷 삭제
- 스냅샷 대시보드 - 스냅샷 선택 후 작업 - 스냅샷 삭제 클릭
- 삭제 클릭
볼륨 삭제
- 볼륨 선택 후 작업 - 볼륨 삭제 클릭
삭제
입력 후 삭제 버튼 클릭
EFS 삭제
- EFS 정보에서 삭제 버튼 클릭
- EFS ID 입력 후 확인 클릭
S3 복원
- 삭제할 객체 선택 후 삭제 버튼 클릭
영구 삭제
입력 후 객체 삭제 클릭
- 닫기 클릭
- 버전 관리를 설정 했다면
버전 표시
를 활성화 하고 복구 가능
S3 삭제
- 버킷 안에 있는 객체들을 삭제해야 버킷 삭제가 가능
- 비어 있음 버튼
- 버킷 선택 후 비어 있음 클릭
영구 삭제
입력, 비어 있음 클릭
- 종료 클릭
- 버킷 선택 후 삭제 버튼 클릭
- 버킷 이름 입력, 버킷 삭제 클릭