스토리지
데이터를 저장하는 저장소의 역할을 수행하는 요소
스토리지 유형
- DAS(Direct attached Storage)
직접 서버에 연결하는 저장소
- NAS(Network Attached Storage)
스토리지를 네트워크로 연결, 파일 기반 스토리지
- SAN(Storage Area Network)
별도의 스토리지용 네트워크를 구성(Fibre Channel)
블록 기반 스토리지
스토리지 종류
파일, 블록, 오브젝트 스토리지 by RedHat
Amazon S3
Amazon Simple Storage Service
- 확장성이 뛰어나고, 무한대로 저장 가능
- 99.999999999(9가 11개)% 내구성 보장
- 사용한 만큼 비용 지불
- 리전 내에서 유일한 Bucket을 생성하여 데이터를 저장 -> 웹 url로 접근하기 때문에 리전 내에 버킷 이름은 유일해야 함
- 저장 기능을 활용한 간단한 정적 웹 서비스 구현 가능
- EBS와 서비스 유형이 다르게 파일 단위 접근만을 지원
- 데이터 크기, 다운로드 용량에 따라 요금을 책정
주의점
- S3를 사용해야 하는 경우 : 한 번 쓰고, 여러번 읽어야하는 데이터
컨텐츠가 다양하고 데이터 양이 지속적으로 증가하는 경우
사용자가 많고, 데이터 접근이 일시적으로 급증하는 경우
- S3를 사용하면 안되는 경우 : 여러 번 쓰기 작업을 하는 데이터, 블록 스토리지가 필요한 경우
리전 선택
- 데이터 주권 문제 고려
- 사용자와 가까운 리전
- 서비스 제공 여부
- 리전별 서비스 비용
활용분야
- Backup & Restore : 뛰어난 내구성 확장성, 버전관리 기능을 통헌 데이터 보호
- Data Archiving : 요구사항에 맞는 아카이빙 방식 제공
- Data Lake : 빅데이터 분석용 저장소로 활용
- Hybrid Cloud Storage : AWS Storage Gateway를 통해 온프레미스 환경에서 클라우드 스토리지 활용. 데이터 백업 및 재해복구
- Disaster Recovery : 글로벌 인프라를 활용한 데이터 보호 및 ㅌ타 리전으로 교라 리전 복제 서비스
Amazon S3 스토리지 클래스
- Amazon S3 Standard
짧은 시간과 많은 처리량을 제공 -> 자주 액세스하는 데이터용
데이터 저장 암호화 및 SSL 전송 지원
- Amazon S3 Standard-Infrequent Access(S3 Standard-IA)
빈번하지 않은 액세스용 -> 자주 접근하지는 않지만, 빠르게 접근해야 하는 데이터에 적합 기존 S3 대비저렴
- Amazon S3 One Zone-Infrequent Access(S3 One Zone-IA)
단일 AZ에 데이터를 저장 -> S3 Standard-IA보다 20% 비용이 저렴
- Amazon S3 Glacier
데이터 보관을 위한 안전하고 안정적이며 저렴한 스토리지
S3 Standard 대비 최고 77%저렴
amazon S3 Glacier
데이터 아카이빙 및 장기 백업을 위한 안전하고 안정적이며 비용이 매우 저렴한 클라우드 스토리지 서비스
Bucket과 유사한 Vault라는 개별 스토리지 영역 생성하여 데이터 보관
데이터 접근 방법
- API/SDK를 이용한 Direct 연결
- S3 라이프 사이클과의 통합. 오래된 데이터에 대해 Glacier로 자동 이관
- Third Party Tool과 AWS Storage Gateway 연동
S3의 저장 위치
버킷 : https://[버킷이름].s3.amazon.com
---
버킷-fille https://[버킷이름].s3.amazon.com/파일명
test버킷 내에 test.jpg 있다면 https://test.s3.amazon.com/test.jpg
인터넷을 통해 사용자가 접근
접근 권한
| | | |
---|
소유자 | 버킷(비공개) | user, 인터넷 사용자 | 금지 |
소유자 | 버킷(공개) | user,인터넷 사용자 | 접근가능 |
소유자 | 버킷(접근정책) | 허가된 A user | 접근가능 |
| | 허가되지 않은 B user | 금지 |
Amazon S3로 파일 업로드 및 삭제
- 콘솔에서 S3 선택
- 버킷 만들기
- 버킷 이름 지정
버킷 이름은 리전 내에서 유일해야 함
- 퍼블릭 액세스 차단 설정 : 공개적인 접근 못 하도록 막아놨음 -> 전체적으로 공개하려면 해제해야함
- 버킷 생성 확인
- 버킷 선택 후, 업로드
- 업로드 할 파일 추가
- 업로드 확인
- 파일에 접근하는 URL 확인
- 퍼블릭 차단때문에 현재 접근 불가
- 외부접근을 위한 퍼블릭 차단 해제
- 버킷 정책 편집
버킷 정책 추가 링크에서 복사
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::Bucket-Name/*"
]
}
]
}
Bucket-Name 항목을 자신의 버킷 이름으로 수정
버킷을 삭제하려면 먼저 오브젝트를 삭제해야 함
사용자 생성하여 윈도우 시스템 파일 동기화
- 동기화할 버킷 생성
- IAM 서비스 사용
- 사용자 추가
- 그룹 생성후 권한 정책 부여 및 그룹에 사용자 추가
- 사용자 만들기
- 사용자 정보가 담긴 csv파일 다운로드
csv 파일 필드
User name | Password | Access key ID | Secret access key Console login link |
---|
PS --- > aws --version
aws-cli/2.0.30 Python/3.7.7 Windows/10 botocore/2.0.0dev34
PS --- > ls .\test.txt
디렉터리: ---
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2022-03-29 오후 3:31 0 test.txt
PS ---\Desktop\s3test > aws configure
AWS Access Key ID [None]: csv파일에 있는 값
AWS Secret Access Key [None]: csv파일에 있는 값
Default region name [None]: 버킷이 있는 리전
Default output format [None]: json
PS ---\Desktop\s3test > aws s3 sync .\ s3://ken-desktop-backup
upload: .\test.txt to s3://ken-desktop-backup/test.txt
인스턴스 이미지화, 백업
- 이미지화 할 인스턴스 선택 후 이미지 생성
- 생성된 이미지 확인
- 선택 후 실행