
S3
- Amazon Simple Storage Service(Amazon S3, 저장소)는 업계 최고 수준의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스입니다.
- 99.999999999%(9가 11개)의 데이터 내구성으로 스토리지 리소스 크기를 조정하여 변화가 잦은 요구 사항을 충족합니다.
- 이 서비스를 사용하면 데이터를 안전하게 저장하고 검색할 수 있으며, 웹 사이트, 모바일 애플리케이션, 백업 및 아카이브 등 다양한 용도로 활용할 수 있습니다.
- S3는 데이터의 내구성과 가용성을 보장하며, 필요한 만큼의 스토리지를 유연하게 이용할 수 있습니다.
- 또한 데이터를 보안적으로 관리하고 접근 권한을 제어할 수 있는 기능도 제공합니다.
- S3는 클라우드 기반의 스토리지 서비스로, 기업이나 개발자들이 안정적이고 확장 가능한 저장 공간을 활용할 수 있도록 지원합니다.
용어 정리
- 객체 : 파일 하나(문서, 동영상 기타 등등 )
- 버킷 : 객체를 보관하는 하나의 디렉토리 (최상위 디렉토리)
- 버전관리 : 저장을 하면 첫번째가 버전1, 내용 수정된것 업로드 하면 버전2…
- Reduced Redundancy Storage(RRS): Amazon S3에서 제공되는 데이터 저장 옵션 중 하나입니다.
- 이 옵션을 통해 데이터를 더 낮은 비용으로 저장할 수 있지만, 데이터의 내구성이 표준 S3 스토리지 옵션보다 상대적으로 낮을 수 있습니다.
*장점
- 어디서나 접속 가능 ( url을 통해서 접속 가능 )
- 용량의 무제한 (1바이트 부터 5T까지 무제한으로 사용가능 )
- 뛰어난 내구성 ( 99.999999999%)
- 스토리지 비용을 자동으로 최적화( 자주 사용하는 것과, 가끔 사용하는 것 구분)
*저장소 종류
- S3-standard : 가장 기본적인 저장소
- S3-IA(infrequent Access ) - 가끔 접속이 필요한 파일
- S3-One Zone IA - 단일 저장이 필요할때 사용하는 저장소(매우 가끔)
- S3-Glacier 저장소 : 장기 저장소(안정적)
*버킷에 대한 정책 설정 가능 ( 접근 제어 리스트, ACL )
*암호화를 통한 안전한 저장 가능
업로드(put), 다운로드(get)
*S3 생성
*버킷 생성
- *S3 검색 / 버킷 만들기 / 이름( 고유 이름 ) , ACL 비활성화됨 선택 / 버킷 키[비활성화] , 고급설정[비활성화] / 버킷 만들기
- 버킷은 고유 이름

- ACL 비활성화를 통해 정책 지정

- 퍼블릭 엑세스 차단 : 외부로부터 접근 금지

- 버킷키와 객체 잠금 설정

*폴더생성 / image 이름 입력 만들기 / 파일 업로드 클릭해서 준비된 이미지 업로드 /
- 업로드된 이미지 클릭 객체 URL 클릭 하면 열리지 않음 ⇒ 이전에 모든 퍼블릭 차단 체크 해서
- 버킷 안에 이미지 폴더 만들기

- 이미지 업로드 설정(미리 준비한 이미지와 텍스트 파일 업로드)

- 스토리지를 기본 스토리지인 standard로 설정

- 업로드 된 것 확인

- 업로드된 이미지의 속성의 url 클릭해서 이미지 확인

- 이미지 확인이 안된다

*허용하도록 설정 변경
- 버킷에서 / 권한 부분에 엑세스 차단 ⇒ 편집 클릭 / 모든 퍼블릭 엑세스 차단 부분 체크 해제
- 아래쪽에 객체 소유권 - 생성자 이외 다른 사용자도 사용 가능하도록 설정 .
- 활성화로 변경 하면 다른 사용자도 사용 가능 ACL이 복원된다는 것을 확인합니다. 체크
- 이전 권한에서 퍼블릭 엑세스 차단을 체크한 것을 해제(허용)


- ACL 설정 (ACL 활성화: 다른 사람도 확인 가능)

–다시 이미지의 URL을 클릭 해보면 아직도 열리지 않음 .
- 이미지 속성 / 편집에서 모든 사람(퍼블릭 엑세스 ) 객체 체크 / 저장
- 다시 이미지 URL클릭 하면 이미지가 열림.
- ACL 편집에서 모든 사람 읽기 체크

- url을 다시 클릭해서 이미지 확인

- 다른 사람의 url도 접속해서 확인 가능

*버킷에 정책 설정하기
- 생성된 버킷 속성창 / 권한 탭 / 버킷 정책 [편집] / 우측에 정책 생성기 클릭 3단계로 진행.

- 중간 Action 부분은 Get Bucket Policy 선택 , 맨 아래 ARN 값에는 비킷의 ARN입력,
- Add Statement 클릭 / Generate Policy 클릭 하면 생성됨.
- 버킷 정책 편집 정책 생성기를 통해 생성

- iam 대시보드에서 사용자 생성 후 principal(로그인 URL) 복사

- 버킷에서 arn 복사

- 스테이트에서 action(get bucket poilcy) 추가해주고 복사한 principal과 arn 입력

- 상태 추가후 정책 복사해서 붙여넣기


- 생성된 정책 확인

-버킷 클릭 / 폴더 선택 / 작업 / ACL을 사용하여 퍼블릭으로 설정 선택 / 저장
- 폴더 자체를 퍼블릭으로 설정

- 이미지 폴더 자체를 퍼블릭 설정(이전에 설정한 것은 객체)

- 텍스트 파일 확인

root 권한을 이용해서 이미지 폴더의 정책을 통해 파일 열리는 것 확인
- Step 2 Principal 부분에 IAM사용자 입력할 내용 ⇒ arn:aws:iam::767397800821:root
- 버킷 정책의 권한을 root로 바꾼 후

- 파일의 엑세스 권한을 편집

- 파일 열리는 것 확인

*암호화 해보기
- 버킷 새로 생성 / 이름 입력 / 퍼블릭 차단 해제 / 기본 암호화 부분에서

- 버킷 만들기 / 파일 하나 업로드 해보기
- 암호화 설정 확인은 파일 클릭 /속성탭 / 아래 쪽 서버측 암호화 설정
- 암호화 test용 버킷 만들기

- 퍼블릭 엑세스 차단 x (접근 허용)

- 암호화 활성

- 파일 하나 업로드

- 이미지 파일 속성에서 암호화된 것 확인

*업로드 금지 시키기
-
생성된 버킷 속성 / 권한탭 /
-

-
이후 파일 업로드 해보면 업로드 실패…
- 암호화 테스트 버킷의 파일 업로드 금지 정책 설정
- 코드 내용 중 버킷 이름 바꿔주기 (업로드 금지 내용 코드)

- 정책 변경 후 파일 업로드

- 업로드 금지된 것 확인


*실시간 모니터링 (cloud watch)
- 이벤트 발생(업로드, 다운로드, 삭제 , 생성 ) 시 모니터링을 통한 경보 발생
- 모니터링 종류
- 기본 모니터링: 5분 간격으로 알림 . ( CPU, RAM, HDD, 네트워크I/O )
- RDS,ELB 두 가지는 알림에서 제외.(너무 많아서)
- 상세 모니터링 : 1분간격으로 알림, 유료, RDS,ELB 두가는 알림에 포함
- 경보 종류 : 설정값을 정하고 이상 없으면 OK, 벗어나면 ALARM,
*EC2 생성
- amazon linux 2, t2.micro , 키페어 기존것 사용 또는 새로 생성,
- 네트워크 설정은 디폴트(SSH) , 스토리지 추가 8G
- 인스턴스 생성후 ssh 접속
- httpd 파일 다운로드 후 모니터링 확인

- xftp를 통해 용량이 100Mbyte 정도의 파일 업로드

- 실시간 모니터링을 통해 확인

*CloudWatch를 통한 모니터링
- CloudWatch 서비스 검색 / 대시보드 생성 / 자동 대시보드에서 EC2 선택 추가
- cloud watch 설정
- 자동 대시보드에서 사용자 지정 대시보드로 추가해서 설정 (RDS는 유료)

- cloud watch 모니터링 확인

- 사용자 지정 대시보드 생성

- ec2 모니터링을 test에 추가

- ebs 모니터링을 test에 추가

- test 모니터링에 추가된 것을 확인

*경보 설정
- CloudWatch 서비스 / 왼쪽 경보 상태 / 지표 선택 / EBS 선택 / 볼륨별지표 /


- 다음 / 경보이름 / 경보 생성 클릭 왼쪽 경보[모든경보] /
- 처음에는 데이터 부족 ⇒ 정상으로 변경됨.

- 정상으로 변경되면 SSH에서 이전에 업로드 했던 파일 삭제 하고 메일 확인
다시 업로드 하고 메일확인 해서 경보 알람이 메일로 오는지 확인
- 경보 설정
- 경보 생성 클릭

- volume write bytes 체크 (볼륨을 얼마나 썻는지)

- 경보를 알릴 데이터 포인트: 1/1 (5/2 -> 5개중에 2개 이상이 생겼을 때 경보)

- 새 주제 생성 설정 후 주제 생성 클릭

- 이름 입력

- 생성된 경보 확인
