AWS - Amazon Web Service
Amazon Web Services는 아마존(Amazon)에서 제공하는 클라우드 서비스로, 네트워킹을 기반으로 가상 컴퓨터와 스토리지, 네트워크 인프라 등 다양한 서비스를 제공하고 있다.
AWS의 계정 종류
1) 루트계정
- AWS 루트 사용자는 회원가입 시 만든 계정으로서 모든 AWS 권한을 갖고 있는 사용자
- 이 계정은 탈취당할 시 복구가 매우 어려울 뿐만 아니라, 최근에는 해커들이 비트코인 채굴에 AWS 계정을 착취하여 사용하기 때문에 상상을 초월하는 과금폭탄을 맞을 수 있음
- 따라서, 루트 사용자는 계정 설정을 변경하거나 과금 관리(i.e., Billing) 등 관리 목적으로만 사용하는 것이 바람직!
- 루트 사용자는 최대한 사용을 자제하고 로그인 시 Multi Factor Authentication(MFA)과 같은 OTP 사용을 권장하고 있습니다.
2) IAM사용자
- IAM : Identity and Access Management
- 루트 사용자는 탈취 당할 시 치명적인 문제를 야기할 수 있기 때문에 AWS 관리를 제외한 서비스 관리용 계정이 필요한데, 이러한 계정이 바로 IAM 사용자
- 특정 사용자나 그룹의 서비스 혹은 리소스에 대한 접근 권한을 관리하는 서비스인데 쉽게 말하자면, 누가, 언제, 어디에서, 어떤 서비스를, 어떻게 접근하고 사용할 수 있을지 관리해 주는 역할을 함.
- IAM은 지역별(region) 서비스가 아닌 글로벌 서비스라는 점이 특징!
IAM 사용자는 IAM을 통해 생성한 사용자로 루트 사용자로부터 권한을 부여받은 서비스만 관리가 가능해서 개발 도중 보안 문제가 생겼을 때 IAM 계정만 삭제하면 문제가 해결 됨.
-> 따라서 루트 사용자와 같은 수준의 모든 권한을 IAM 사용자에게 부여한 계정으로 개발을 진행하며 이러한 IAM 사용자를 흔히 admin 사용자라함!
AWS 기본 세팅
1) 서비스 가입
-> AWS 회원가입을 하자!
2) 서비스 지역 변경
-> 변경 완료!
생활코딩 : S3
수업소개
S3
-> Simple Storage Service의 줄임말
-> 우리가 가진 파일을 보관해주는 저장장치 서비스
-> S3는 트래픽이 급격하게 증가하더라도 장비를 추가 증설할 필요 없이도 파일 서버를 문제없이 동작시킴
-> S3는 저장할 수 있는 파일의 개수 제한이 없고, 최소 1바이트부터 최대 5 테라바이트의 데이터를 저장하고 서비스할 수 있음
AWS 홈페이지의 제품탭의 가장 마지막인 스토리지가 s3의 홈페이지
- S3의 이점
1) AWS 업로드하면 하나의 컴퓨터가 아닌 전 세계의 여러 컴퓨터에 복사가 되어서 그 파일을 여러곳에서 보관하기 때문에 내구성이 좋음. 즉, 파일 보존이 가능함!
2) 파일 서버로 활용할 수 있음. 즉, 여러 사용자가 파일을 다운받을 수 있는!
- CRUD를 이용해서 S3를 알아보자 !
수업 목적
S3를 이용해서 파일을 안전하게 보관하고 안전하게 사용하기 위함!
S3의 구성요소
1) Bucket : 하나의 프로젝트가 하나의 버킷이라 생각하면 됨
2) Folder : Bucket 안에 존재하는 애
3) Object : 폴더 안에 들어있는 파일
-> 파일, 폴더, 버킷을 읽고, 생성하고, 수정하고, 삭제하는 것을 배우자!
Bucket
-> 버킷 이름은 aws 전체에서 고유한 이름으로 생성해야함!
- 버전관리 : 수정된 과거 내용까지 보관하는 것
- 서버 엑세스 로깅 : s3를 웹서버로 이용할 때 접근내역 기록 일지 위함
- 암호화 : 파일을 업로드할 때 aws가 자동으로 객체 암호화 해주는 것
- Public Access : pulbic 상태면 내가 올린 것을 누구나 볼 수 있음
-> 개발할 땐 모든 pulbic access 허용해주는 것이 좋을듯?
Folder
- 버킷을 선택한 후 개요페이지에서 폴더만들기를 선택하면 됨
-> 폴더가 생성이 된 것이니깐 사용을 하면 돼
-> 폴더이름 바꾸기가 어려우니깐 유의해서 이름 만들기!
Object
-> File이랑 동일하다고 생각하면 됨!
-> 로컬에서 올리려면 드래그해서 그냥 놓으면 올려짐..!
-> 객체에 관한 권한을 조정을 해줘야 외부에서 볼 때 접근이 가능하므로 게시글 할 땐 유의하자!!
public access everyone에 객체읽기를 체크해주면 됨 !
스프링으로 S3 연동하기
스프링 연동 참고1
스프링 연동 참고 2