S3

WAS·2025년 5월 12일
0

AWS

목록 보기
4/4

S3

  • 파일을 업로드하고 저장하는 서비스 = 파일 저장 서비스

이미지파일을 EC2 내부에 저장할 수 있는데 왜 S3 를 사용할까?
-> 서비스를 운영하다보면 EC2 에 쌓이는 파일들이 많아지고 지저분해지기 때문에
EX) 휴대폰에 저장공간이 있는데도 찍은 사진을 구글 드라이브나, NBOX에 넣는 이유

S3 버킷 생성하기

💡 버킷 이란? : 깃허브에서 여러개의 Repository를 만들 수 있는 것처럼, S3 에서도 여러 개의 저장소를 만들 수 있는데, 여기서 하나의 저장소를 버킷 이라고 부른다

또한 S3 버킷 에 업로드 된 파일을 객체 라고 부른다

💡 정책 이란? : 권한을 정의하는 JSON 문서를 의미
AWS는 기본적으로 대부분의 권한이 주어져있지 않아서 AWS의 특정 소스에 접근하려면 권한을
허용해주어야 한다. 권한을 허용할 때 작성해야하는 것이 정책 이다

검색창에 S3 검색 -> 버킷 만들기 클릭 -> 버킷이름 적고 버킷의 퍼블릭 액세스 차단 설정 체크 해제해야함 : 다른 사용자들이 이미지들을 다운받고 조회하기 위해서 -> 버킷 만들기 클릭
-> 만든 버킷 상세클릭 -> 권한 속성 들어가기 -> 버킷 정책에서 편집 클릭 -> 새문 추가 클릭
-> 서비스 선택에서 S3검색 후 작업 필터링에서 GetObject (조회기능) 검색 후 체크 -> 리소스 추가 클릭
-> 서비스 : S3 , 리소스 유형 : object , 리소스 ARN : 버킷이름에 만든 버킷이름과 ObjectName에 * 넣기
ex) : arn:aws:s3:::instargram-static-files/* -> 리소스 추가 클릭
-> 정책안의 코드에서 Principal : {} 에서 {} -> * 로 바꿔주기 -> 변경사항 저장 클릭

S3 에 파일업로드 할 수 있도록 IAM 에서 액세스 키 발급
S3 버킷 을 생성하고 정책을 만든건 파일 다운로드만 가능하다 그래서 파일업로드 허용도 해줘야함
즉 백엔드 서버만 파일을 업로드 할 수 있도록 권한을 부여해야한다
밑에 작업은 파일업로드를 아무나 할 수 없기때문에 출입증을 만드는 과정이다

검색창에 IAM 검색 후 클릭 -> 왼쪽에 사용자 클릭 -> 사용자 생성 클릭 -> 사용자이름 입력
-> 직접 정책 연결 체크 -> 밑에 권한 정책에서 AmazonS3FullAccess 검색 후 체크 -> 다음 클릭
-> 사용자 생성 클릭 -> 만든 사용자 상세클릭 -> 밑에 보안 자격 증명 속성 클릭
-> 밑에 액세스 키에서 액세스 키 만들기 클릭 -> AWS 외부에서 실행되는 애플리케이션 체크
-> 다음 클릭 -> 액세스키 만들기 클릭 -> 만든 액세스 키를 복사해서 잘 저장해두기 -> 완료 클릭

💡 비용이 나가지 않게 하려면 만든 S3 버킷 안에 객체를 모두 삭제 후 S3 버킷 을 삭제하면 됨

✅ 웹 서비스를 배포할 때 사용하는 S3 CloudFront
S3 는 파일 저장서비스 기능도 있지만, 정적 웹 사이트 호스팅 기능으로 사용할 수 있다
즉 쉽게말해 웹서비스를 다른 사용자들도 쓸 수 있게 인터넷에 배포하는 것을 의미한다

💡 CloudFront 란? : 컨텐츠(파일, 동영상) 을 빠르게 전송하게 해주는 서비스 (임시저장소)
모든 컨텐츠는 S3 에 저장이되는데, 등록한 리전(지역)이랑 멀면 멀수록 다운 속도가 느려진다
이런 문제를 해결하기 위해서, 전세계 곳곳에 컨텐츠의 복사본을 저장해놓을 수 있는 임시 저장소를 구축해서 모든 사람들이 빠르게 다운받을 수 있게 된다

이런 형태의 서비스를 CDN (Content Delivery Network) 라고 부르며
CloudFrontCDN 서비스라고 표현한다
쉽게 말해 웹 콘텐츠를 사용자와 가까운 곳에 저장하고 전송하는 네트워크라고 생각하면 된다

CloudFront 를 왜사용할까? : 웹 페이지가 뜨는 시간을 줄여주기 위해서 사용하고
S3에서 HTTPS 를 적용시키는 기능이 없어서, CloudFront 를 통해 웹사이트에 HTTPS를 적용시킬 수 있다

이러한 장점들 때문에, S3CloudFront 를 같이 사용해서 웹 서비스를 배포한다

사용자들의 요청을 보내는 곳은 S3 가 아니라 CloudFront 로 보낸다

CloudFront 생성하기
CloudFront 검색 후 클릭 -> 배포 생성 클릭 -> 원본도메인선택 -> 기본 캐시 동작 부분의 (뷰어 프로토콜 정책) : Redirect Http to Https 체크 -> 웹 애플리케이션 방화벽 : 보안 보호 비활성화 체크
-> 설정의 가격 분류에서 (북미, 유럽, 아시아, 중동 및 아프리카에서 사용) 체크 -> 기본값 루트 객체에 index.html 입력 -> 배포 생성 클릭 -> 만든 CloutFront 상세 정보 클릭 -> 배포 도메인 이름 확인

✅ 도메인 연결하기, HTTPS 적용하기
💡 CloudFront 는 HTTPS 를 적용하려면 인증서를 미국 동부(버지니아 북부) 에서 발급 받아야함
Certificate Manager 검색 후 클릭 -> 리전을 미국 동부(버지니아 북부) 로 변경 -> 요청 클릭
-> 완전히 정규화된 도메인 이름 입력 -> 요청 클릭 -> 만든 인증서를 상세보기 클릭
-> Route 53에서 레코드 생성 클릭 -> 레코드 생성 클릭 -> 다시 CloudFront 검색 후 클릭

profile
우측 상단 햇님모양 클릭하셔서 무조건 야간모드로 봐주세요!!

0개의 댓글