EC2에 EBS도 있다.
EBS는 블록 스토리지이다. EC2와 같이 컴퓨터가 있어야 사용할 수 있는 스토리지 서비스이다. (하드디스크 같은.. 폴더 안의 파일)
S3은 객체 스토리지는 그러한 컴퓨터 없이도 사용할 수 있는 스토리지 서비스이다.
객체 스토리지는 파일 저장이 폴더-파일의 구조가 아니라 수평적인 구조를 가지고 있다.
파일 시스템이 다르다.
*파일시스템 : 파일을 어디에 어떻게 저장해 둘 것인가?
(면접에서 많이 물어보는 것)
객체 스토리지 vs 파일 스토리지 vs 파일 시스템
aws의 S3에서 버킷을 만들어서 사용한다.
버킷이름(은 유일한 값이어야 함, ID같은 개념) > 소유권, ACL 생성 후 변경 가능, 그래서 그냥 넘어감 > 생성
실습) 버킷 생성 후, 아무거나 업로드(파일추가 or 폴더 추가) 하면 다음과 같다.
업로드한 파일을 클릭하면 다음과 같이 나온다.
여기서 객체 URL을 클릭하면,,,
아래와 같이 출력된다.
이유는? 권한이 없기 때문이다.
따라서 권한 설정을 해준다.
버킷 > 권한 > 퍼블릭 액세스 차단 편집 > 해제 > 저장
버킷 > 버킷정책 편집 > 정책 생성기 > type : s3 bucket policy > effect : allow > principal : * > actions : get object > ARN : 버킷 정책 편집 페이지의 ARN복붙 >
*버킷 정책 편집에서 특정 파일만 권한 허용, 업로드 허용 등을 세세하게 설정할 수 있다.
그럼 JSON 형식의 정책이 만들어지는데 이를 복사해서 버킷 정책 편집 페이지에 붙여넣기 > 변경사항 저장한다.
JSON 정책이 아래와 같이 만들어졌는데
{
"Version": "2012-10-17",
"Id": "PolicyID[숫자]",
"Statement": [
{
"Sid": "Stmt[숫자]",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::[버킷이름]"
}
]
}
오류가 떠서, [버킷이름] 뒤에 '/*'을 추가해서 저장했다.
인터넷으로 찾아보니까 /*가 없으면 버킷 자체의 권한이고, 있으면 해당 버킷 내의 항목들에 권한을 줘서 그런 거라고 한다.
이 후, 다시 파일 url에 접속했을 때 다음과 같이 출력되는 것을 확인할 수 있다.
'클라우드 > AWS' 카테고리의 다른 글
AWS) S3를 통한 react build 배포 (0) | 2023.03.15 |
---|---|
AWS) 장고에서 S3에 이미지 업로드하고 읽기 (0) | 2023.03.15 |
3계층 아키텍처 실습(with. AWS) (0) | 2023.03.14 |
AWS를 이용한 여러가지 실습 (0) | 2023.03.13 |
AWS 네트워크, VPC 만들기 (0) | 2023.03.13 |