09. AWS의 스토리지
1) 스토리지 관련 클라우드 서비스
- Glacier
저비용 데이터 보관 및 백업 서비스. 자주 사용되지 않는 데이터를 보관 및 백업하는데 유용한 서비스
저장만 제공 입출력을 제공하지않음 > 입출력 유료
- S3 (Simple Storage Service)
객체 스토리지 서비스. 웹에서 바로 접근 할 수도 있고, EC2에서 mount해서 사용할 수도 있다.
스토리지 혼자 존재 가능
ex) 구글드라이브,아이클라우드,등등
- EBS (Elastic Block Storage)
EC2 인스턴스에서 사용할 수 있는 블록 스토리지. 용량, IOPS 설정등이 가능하다.
스토리지 혼자 존재 불가능
* S3는 네트워크 스토리지, EBS는 서버에 추가할 수 있는 하드웨어 스토리지(SATA 하드 같은)와 같은 개념.
- CloudFront
콘텐츠 전송용 웹서비스. CDN과 비슷한 서비스로,
EC2나 S3같은 서비스에서 사용시 가장 가까운 엣지로 자동 라우팅되서 콘텐츠 전송 속도를 향상할 수 있다.
- Storage Gateway
aws의 스토리지와 로컬 스토리지를 연동해주는 서비스. 로컬에 있는 DAS, NAS, SAN 과 같은 장비와
S3를 연동해서 메인 데이터는 S3에 두고 접근빈도가 높은 데이터는 로컬 스토리지에 케싱하거나,
모든 데이터는 로컬 스토리지에 두고 일정 시간에 따라 주시적으로 데이터의 스냅샷을 S3에 저장하는 등의 서비스를 구축할 수 있다.
- Import / Export
대용량 데이터를 이동식 디바이스에 직접 import / export 해 주는 서비스.
외장 하드같은 디바이스를 Amazon에 우편으로 보낸 다음, 데이터를 Import 또는 Export 후 다시 돌려받는 방식.
실습 EC2 인스턴스 생성
하드를 추가할경우 > 가용영역을 같은곳으로 해야함!!! 나는 ap-northeast-2a 이곳에 ec2가있다.
볼륨연결
echo로 인식
파티션 생성
lvm타입 변경
lv생성(pv vg lv)
파일시스템
마운트
2) EBS 활용하기
(1) 볼륨 용량 조절
lsblk 확인 xvda 8G
xvda1 8G
EBS 용량을 15G로 늘린후
파티션 및 파일시스템은 안늘어나므로 늘려주는 명령어를 해야한다.
lsblk 확인 xvda 15G
xvda1 8G
growpart /dev/xvda 1 파티션 늘리는 명령어
lsblk 확인 xvda 15G
xvda1 15G
df -h /dev/xvda1 7.7G 1.2G 6.5G 8% /
resize2fs /dev/xvda1
df -h /dev/xvda1 15G 1.2G 14G 8% /
S3 > 버킷으로 나누어진다.
버킷이름은 아이디와 같아서 중복확인이된다.
업로드된 파일들을 객체라고 부른다.
xml > 구시대
json > 서버와 통신할떄 양식
yaml > 설정파일 양식?
버킷을 퍼블릭으로 외부액서스 되게 만들어보기
https://aws.amazon.com/ko/premiumsupport/knowledge-center/read-access-objects-s3-bucket/
S3 > 버킷 > 권한 > 소유권편집
S3 > 버킷 > 권한 > 퍼블릭엑서스 차단 편집
S3 > 버킷 > 권한 > 버킷정책
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*",
"Condition": {
"StringEquals": {
"s3:ExistingObjectTag/public": "yes"
}
}
}
]
}
"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", << 이부분에 내 버킷이름을 적용한다.
객체별로 권한지정 변경
s3 실제 사용용도 Resources-and Static Content (리소스 및 정적 콘텐츠)
틀 > 웹서버(ec2)
내용채우는거> 어플리케이션 서버(ec2)
ec2 는 시간당 요금책정
CDN 서버로 사용한다 왜나면 캐쉬서버처럼 리전이 따로없어서 ...
3) S3를 굳이 EC2에 마운트해서 사용하기
apt-get update
apt install s3fs awscli -y
IAM 키 파일 다운 >>>>>> IAM 키파일은 유출되면 대형사고임!!!
vi ~/.s3fs-creds
ACCESS_KEY_ID:SECRET_ACCESS_KEY
chmod 600 ~/.s3fs-creds
mkdir [특정 디렉토리]
s3fs [버킷 이름] [특정 디렉토리] -o passwd_file=~/.s3fs-creds
umount [특정 디렉토리]
* 특정 디렉토리를 마운트 포인트라고 한다.
CloudFront
CloudFront에서 사용자에게 콘텐츠를 제공하는 방법
콘텐츠를 제공하도록 CloudFront를 구성한 후에 사용자가 객체를 요청하면 다음과 같은 결과를 얻습니다.
- 사용자가 웹 사이트 또는 애플리케이션에 액세스하고 이미지 파일 및 HTML 파일 같은 하나 이상의 객체에 대한 요청을 보냅니다.
- DNS가 요청을 최적으로 서비스할 수 있는 CloudFront POP(엣지 로케이션)로 요청을 라우팅합니다. 이 위치는 일반적으로 지연 시간과 관련해 가장 가까운 CloudFront POP이며, 요청을 엣지 로케이션으로 라우팅합니다.
- CloudFront는 해당 캐시에 요청된 객체가 있는지 확인합니다. 객체가 캐시에 있으면 CloudFront는 객체를 사용자에게 반환합니다. 객체가 캐시에 없으면 CloudFront가 다음을 수행합니다.
-
- CloudFront는 배포의 사양과 요청을 비교하고 요청을 해당하는 객체로 사용자의 원본 서버(예: Amazon S3 버킷 또는 HTTP 서버)에 전달합니다.
- 원본 서버는 객체를 다시 엣지 로케이션으로 보냅니다.
- 오리진에서 첫 번째 바이트가 도착하면 CloudFront가 객체를 사용자에게 전달하기 시작합니다. CloudFront는 다음에 다른 사용자가 객체를 요청할 때 캐시에 해당 객체를 추가합니다.