AWS cognito / DynamoDB / S3

공영재·2021년 9월 18일
0

AWS cognito와 DynamoDB를 이용한 계정 생성 및 데이터베이스 관리


  • OAuth 2.0
    로그인 및 개인정보 관리 책임을 Google/Facebook 등을 통해 개발할 수 있도록 해주는 프레임워크

Client : Oauth 2.0을 사용해 서드파티(Google/Facebook) 로그인 기능을 구현할 자사 어플리케이션 서버

Resource Owner : 서드파티 어플리케이션(Google/Facebook)에 이미 회원가입되어있으며 Client가 제공하는 서비스를 이용하려는 사용자

Resource Server : 서드파티 어플리케이션 서버

Authorization Server : 권한(인증에 사용할 아이템)을 부여해주는 서버. 사용자는 이 서버를 통해 ID, PW를 넘겨받아 Authorization Code를 발급받을 수 있다.
Client는 서버로 Authorization Code를 넘겨 Token을 발급받을 수 있다.

  • OIDC (OpenID Connect)
    OpenID Connect는 OAuth 2.0 프로토콜을 기반으로 상위계층에서 간편하게 인증을 처리하고, 신원확인 서비스(IDP)를 통해 보다 안전한 방식으로 사용자 정보를 제공한다.

Getting Started

  1. install docker

( Window )

https://velog.io/@kong7300/Docker

  1. Follow the set up #readme

git clone https://github.com/rcbj/oauth2-oidc-debugger.git
cd oauth2-oidc-debugger
docker-compose up

From a bash command prompt on Fedora or RHEL 7.x, run the following::

git clone https://github.com/rcbj/oauth2-oidc-debugger.git
yum install docker
system start docker
cd oauth2-oidc-debugger/client
docker build -t oauth2-oidc-debugger .
docker run -p 3000:3000 oauth2-oidc-debugger

-> docker에서 " Ports are not available " 에러 발생 시

https://saintdragon2.com/blog/2021/1/%EB%8F%84%EC%BB%A4%EC%97%90%EC%84%9C-ports-are-not-available-%EB%82%98%EC%98%AC-%EB%95%8C/

netsh interface ipv4 show excludedportrange protocol=tcp

위 명령어를 통해 프로토콜 tcp 포트 제외 범위를 확인 후
docker-compose.dev.yml 파일을 제한되지 않은 포트로 바꿔서 다시 실행


Cognito를 통한 소셜 로그인 UI 추가

https://docs.aws.amazon.com/ko_kr/cognito/latest/developerguide/cognito-user-pools-social-idp.html

-> 로그인 페이지 보는 과정에서 " This XML file does not appear to have any style information associated with it. The document tree is shown below. " 에러 발생 시

Amazon S3 확인 - https://zamezzz.tistory.com/299


Amazon S3

AWS S3는 내구성과 확장성이 뛰어난 스토리지 서비스이다. S3는 사용한 스토리지 만큼 요금이 청구되며 데이터 전송부분에서는 해당 리전 내에서는 데이터 송수신은 무료(다른 AWS 리전으로는 무료가 아니다.)이고 S3에서 인터넷으로 데이터를 송수신 시에도 가격이 매우 저렴하다. 요금에 대한 부분은 이곳에서 확인 가능하다.

S3는 단독 스토리지로도 사용할 수 있으며 EC2, EBS, Glacier와 같은 다른 AWS 서비스와도 함께 사용할 수 있어 클라우드 어플리케이션, 컨텐츠 배포, 백업 및 아카이빙, 재해 복구 및 빅데이터 분석을 포함한 다양한 사례에 알맞다.

S3에 데이터를 저장하기 위해서는 기본적으로 객체와 버킷이라는 단어에 대해서 알아야 한다.

  • 객체(Object) : S3에 데이터가 저장되는 기본 단위로써 파일과 메타데이터로 이루어져있다. 객체 하나의 크기는 1Byte부터 5TB 까지 허용되며 메타데이터는 MIME 형식으로 파일 확장자를 통해 자동으로 설정되며 사용자 임의로도 지정 가능하다.

  • 버킷(Bucket) : S3에서 생성할 수 있는 최상위 디렉토리의 개념으로 이름은 S3 리전 중에서 유일해야 한다. 계정별로 100개까지 생성 가능하며 버킷에 저장할 수 있는 객체수와 용량은 무제한이다.
    S3는 디렉토리별로 스토리지 옵션을 지정할 수 있으며 다음 두가지 옵션이 있다.

  • 표준스토리지 : S3 서비스 수준 계약으로 객체에 대해 99.999999999%의 내구성을 보장하며 99.99%의 가용성을 제공한다. 하지만 높은 내구성을 보장해야 하는 만큼 비용이 비교적 높으므로 유실되면 안되는 원본 데이터 등의 중요한 데이터를 저장하는 것이 알맞다.

  • RRS(Reduced Redundancy Storage) : 표준 스토리보다 저렴한 비용으로 데이터를 저장할 수 있다. RRS 옵션은 여러 시설 전반에 다양한 디바이스에 객체를 저장하며 일반 디스크 드라이브의 400배에 달하는 내구성을 제공하나 표준 스토리지 만큼 많이 객체를 복제하지는 않으므로 원본을 복제한 데이터나 가공한 데이터(예를 들어 썸네일 같은)의 저장에 알맞다.
    S3의 버킷은 무한대의 객체를 저장할 수 있으므로 스토리지의 요구를 미리 추정하여 관리할 필요가 없어 확장/축소에 신경쓰지 않아도 된다.

S3는 HTTPS 프로토콜을 사용하여 SSL로 암호화된 엔드포인트를 통해 데이터를 안전하게 업로드/다운로드 할 수 있으며 상주 데이터를 자동으로 암호화하고 AWS KMS를 통해 S3에서 사용자를 위해 키를 관리하게 하는 방법과 고유한 키를 제공하는 방법 중에서 키 관리 방법을 선택할 수 있는 기능을 제공한다.

profile
Web / Computer Vision

0개의 댓글