EC2에는 EBS도 있습니다.
EBS는 블록 스토리지입니다. EC2와 같은 컴퓨터에서만 사용할 수 있는 스토리지 서비스입니다. (하드드라이브처럼.. 폴더 안의 파일들)
S3 객체 스토리지는 그런 컴퓨터 없이도 사용할 수 있는 스토리지 서비스입니다.
오브젝트 스토리지는 파일 스토리지가 폴더-파일 구조가 아닌 수평적 구조를 가지고 있습니다.
파일 시스템이 다릅니다.
*파일 시스템: 파일은 어디에 어떻게 저장됩니까?
(면접에서 많이 물어보는 질문)
오브젝트 스토리지 vs. 파일 스토리지 vs. 파일 시스템
AWS S3에서 버킷을 생성하고 사용합니다.
버킷 이름(고유한 값이어야 하며 ID와 같은 개념) > 소유권, ACL 생성 후 변경 가능하므로 건너뛰기 >
연습) 버킷 생성 후 다음과 같이 모두 업로드(파일 추가 또는 폴더 추가)합니다.

업로드된 파일을 클릭하면 다음과 같이 나타납니다.
여기에서 개체 url을 클릭하면,,,

출력은 다음과 같습니다.
그 이유는? 권한이 없기 때문입니다.

따라서 권한을 설정하십시오.
버킷 > 권한 > 퍼블릭 액세스 차단 > 비활성화 > 저장
버킷 > 버킷 정책 편집 > 정책 빌더 > 유형: s3 버킷 정책 > 효과: 허용 > 보안 주체: * > 작업: 객체 가져오기 > ARN: 버킷 정책 편집 페이지의 ARN >
*버킷 정책 편집에서는 특정 파일 권한, 업로드 권한 등을 세부적으로 설정할 수 있습니다.
그러면 정책이 JSON 형식으로 생성됩니다. 버킷 정책 편집 페이지 > 변경 사항 저장에 복사하여 붙여넣습니다.
JSON 정책은 다음과 같이 생성됩니다.
{
"Version": "2012-10-17",
"Id": "PolicyID(숫자)",
"Statement": (
{
"Sid": "Stmt(숫자)",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::(버킷이름)"
}
)
}
에러가 나서 (버킷명) 뒤에 “/*”를 추가해서 저장했습니다.
웹을 검색하면 /*가 없으면 버킷 자체의 권한이고 그렇다면 버킷의 항목에 권한이 부여되기 때문입니다.
이후 다시 파일 URL에 접속하면 다음과 같은 출력을 볼 수 있다.
