2024/10 40

[AWS] Amazon S3 - Requester Pays

Requester Pays(요청자 지불)일반적으로는 버킷 소유자가 버킷과 관련된 모든 Amazon S3 스토리지 및 데이터 전송 비용을 지불한다.요청자가 익명이어서는 안된다.요청자가 AWS에서 인증을 받아야한다. - AWS에서 인증을 받아야 AWS가 객체에 대한 특정 다운로드를 요청한 요청자에게 청구할 수 있기 때문이다.  예를 들어, 버킷 셋이 있고, 그 안에 객체를 보관하고 있다.그리고 요청자, 즉 사용자가 버킷으로부터 파일을 다운로드 한다.그러면 네트워킹 비용 역시 버킷 및 객체 소유자에게 청구된다.그러나 수많은 대형 파일이 있고 일부 고객이 이를 다운로드하려고 하면 요청자 지불 버킷을 활성화 해야 할 것이다.이 경우 버킷 소유자가 아니라 요청자가 객체 데이터 다운로드 비용을 지불한다.소유자가 여전..

[AWS] Amazon S3 - Lifecycle Rules

Moving between Storage Classes클래스 간에 객체를 이전할수 있는데, 그게 가능한지 보여주는 다이어그램이다.위의 이미지처럼 예를 들어 Standard에서 Standard IA로 이전할 수 있고, 다시 Intelligent Tiering, 그리고 One-Zone IA로, 그리고 다음으로 보이는 것처럼 Flexible Retrieval 또는 Deep Archive로 갈 수 있다.실제로 객체에 자주 액세스하지 않을 걸 알고 있다면 'Standard IA'로 옮길 수 있고,객체를 아카이브화 하려는 걸 알고 있다면 Glacler 티어나 Deep Archive 티어로 이전할 수 있다.이런 객체들을 수작업으로 옮길 수도 있지만 '라이프사이클 규칙'을 이용해서 자동으로 옮길 수도 있다. Amazo..

[AWS] Amazon S3 Storage Classes

S3 Stroage Classes(스토리지 클래스)Amazon S3에서 객체를 생성할 때 클래스를 선택할 수 있다.스토리지 클래스를 수동으로 수정할 수도 있다.S3 수명 주기 구성을 사용해 모든 스토리지 클래스 간에 객체를 자동으로 이동시킬 수도 있다.  - Durability(내구성)Amazon S3로 인해 객체가 손실될 수 있는 확률이다.(= 객체가 손실되는 횟수)Amazon S3의 내구성은 아주 높다.(= 1만 년에 한 번 객체가 손실될 확률일 만큼)모든 스토리지 클래스의 내구성은 동일하다.  - Availability(가용성)얼마나 쉽게 서비스를 이용할 수 있는지이다.(= 서비스가 얼마나 용이하게 제공되는지)  - 예를 들어, S3 Standard의 가용성은 99.99%인데 즉, 1년에 약 53분..

[Spring] 프로젝트에서 OAuth 소셜 로그인 적용하기: 카카오, 네이버, 구글, 깃허브 사례

OAuth2.0사용자 인증 및 권한 부여를 위한 표준 프로토콜이다.주로 사용자 정보에 접근할 때 사용자 비밀번호를 직접적으로 요구하지 않고, 제3자 서비스(클라이언트)가 특정 사용자 데이터를 일정 기간 동안만 접근할 수 있게 권한을 부여하는 방식으로 작동한다.이를 통해 보안성을 높이고 사용자 경험을 개선할 수 있다. OAuth 2.0의 주요 개념Resource Owner(자원 소유자) - 보통 서비스의 사용자로, 자신의 데이터에 접근할 수 있는 권한을 가진 사람이다.Client(클라이언트) - 사용자가 접근을 허용해주는 애플리케이션 또는 서비스를 말한다.Authorization Server(인증 서버) - 자원 소유자의 신원을 확인하고, 권한을 부여하는 서버이다. - 이 서버는 자원 소유자가 허가한 범위..

[AWS] Amazon S3 - Replication (CRR & SRR)

Amazon S3 - Replication(복제) (CRR & SRR)CRR == '교차 리전 복제'SRR == '같은 리전으로 복제' - 어떤 특정한 리전에 S3 버킷이 있고, 이를 다른 리전의 S3 버킷에 복제해야 할 때 사용한다.버킷간에는 비동기 복제가 필요하다고 해보자. - 가장 먼저, 소스 버킷과 복제 대상 버킷 둘 모두 버전 관리 기능이 활성화되어야 한다. - CRR은 이름 그대로 두 리전이 달라야하고, 반대로 SRR은 같은 리전이어야 한다.버킷은 서로 다른 AWS 계정간에도 사용할 수 있다. 복제는 비동기 식으로 이루어진다.복제 과정은 백그라운드에서 이루어지게 된다.복제 기능이 정상적으로 실행되려면, S3에 올바른 IAM 권한, 즉 읽기, 쓰기 권한을 S3에 부여해야 한다.사용 사례  - C..

[AWS] Amazon S3 - Versioning

Amazon S3 - Versioning(버전 관리)Amazon S3에서는 파일을 버전 관리할 수 있다.버킷 수준에서 활성화해야하는 설정이다.버킷을 버전관리하면, 의도하지 않게 삭제하지 않도록 보호해주기 때문에 좋다. - 가령, 한 파일 버전을 삭제하는 경우 사실상 삭제 마커를 추가한 것이다.    따라서 이전 버전을 복구 할 수 있다. 또 이전 버전으로 롤백할 수도 있다.버전 관리를 활성화하기 전에 버전 관리가 적용되지 않은 모든 파일은 널(null) 버전을 갖게 된다.  - 버전 관리를 중단해도 이전 버전을 삭제하지는 않는다.  - 버전 관리는 안전한 작업이다. 위의 이미지처럼 버킷이 주어졌고, 버전 관리로 활성화된 상태이다.사용자가 파일을 업로드할 때마다 선택키에서 해당 파일의 버전이 생성될텐데, ..

[AWS] Amazon S3 - Static Website Hosting

Amazon S3 - Static Website HostingS3는 웹사이트를 호스팅하고 인터넷에서 액세스 할 수 있게 만들 수 있다.웹사이트 URL은 이것을 생성하는 AWS 리전에 따라 달라진다. - 예를 들어, 밑의 둘 중 하나가 될 것 이다.    http://bucket-name.s3-website-aws-region.amazonaws.com    http://bucket-name.s3-website-aws.region.amazonaws.com   유일한 차이점으로는 빨간색으로 표시한 대시 기호와 점이다. S3 버킷에는 HTML 파일이나 이미지 파일 등이 있다고 하고, 위의 웹 사이트 호스팅과 호환할 수 있게 만들어보자.해당 URL과 함께 나타날텐데, 그럼 사용자는 S3 버킷에 액세스 할 수 있게..

[Spring] 스프링에서 알아두면 좋은 어노테이션(Annotation) 모음

1. Validation 기능개념 - 사용자 입력값의 유효성을 검증하여 잘못된 데이터 입력을 방지하는 기능이다. 적용 사례 - 프론트엔드와 백엔드 모두에서 검증을 수행하여 안전한 데이터 처리가 가능하며, 유효성 검증 실패 시 예외 처리를 통해 사용자에게 명확한 오류 메시지를 제공할 수 있다.주요 어노테이션 - 밑 다양한 어노테이션을 사용해 필드의 유효성을 정의할 수 있다.@NotNull, @Size, @Valid, @Validated, @ControllerAdvice ... DTO 클래스에서 사용하는 Validation 어노테이션 - @NotNull: 필수 입력 필드로, 값이 null이 아니어야 함을 보장한다. - @Size: 문자열이나 컬렉션의 길이를 제한한다. - @Email: 유효한 이메일 형식인지..

[AWS] Amazon S3

Amazon S3의 사용 사례백업과 스토리지파일용 또는 디스크용, 재해 복구의 용도로 사용아카이브용 - S3 파일을 아카이브 해두면 추후 매우 손쉽게 검색할 수 있다.하이브리드 클라우드 스토리지애플리케이션 호스팅미디어 호스팅데이터 레이크 & 빅 데이터 분석정적 웹사이트 호스 Amazon S3 - BucketsS3는 파일을 '버킷'에 저장하는데, 버킷은 상위 레벨 디렉토리로 표시된다.S3 버킷의 파일은 '객체'라고 한다.버킷은 계정 안에 생성되고, 버킷에는 전역적으로 고유한 이름이 있어야 한다.  - 이름은 계정에 있는 모든 리전과 AWS에 존재하는 모든 계정에서 고유해야 한다.     (= AWS에서 전역적으로 고유한 단 하나의 이름)버킷은 리전 수준에서 정의된다.  - 버킷 이름이 모든 리전과 모든 계..

[Spring Boot] 포스트맨으로 테스트하기 쉽게 환경변수 설정과 'Barere 접두사'를 제거한 순수한 토큰 헤더로 받기

포스트맨의 환경변수 설정오른쪽 위의 빨간색 네모 - 지금 현재 설정되있는 '환경변수'를 나타낸다왼쪽 옆에 있는 빨간색 네모 - 환경변수 설정할 수있는 메뉴로 들어갈 수 있다.왼쪽 환경변수 메뉴로 들어가서 "+" 버튼을 눌러준다.위의 빨간색 네모박스에 들어가있는 내용처럼 모두 입력해준다.화살표로 가르키고 있는 "login-token"은 빈 곳으로 입력한다.(추후에 로그인하고 생성된 토큰이 자동으로 저곳에 입력되어 편하게 테스트할 수 있는 것이다.) 포스트맨의 환경변수 사용방법1. 환경변수에 설정한 url 값을 "{{base_url}}"로 변경해준다.  2. Scripts 탭에서 포스트맨을 설정 또 해줘야한다.(밑의 명령어 2줄로 입력하여 설정해주면 된다.)  - var token = pm.response...