AWS 12

AWS Cloudformation을 활용한 인프라 구성

IaC IaC란 Infrastructure as a Code의 약자로 IT 서비스를 위한 시스템을 구성할 때 수동으로 구성하는 대신 shell 기반 스크립트를 사용하여 컴퓨팅 인프라를 구성하는 기술이다. Ansible, Puppet, Chef, Cloudformation, Terraform, SALTSTACK 등이 이에 해당된다. CloudFormation Amazon Web Service 리소스를 모델링하고 설정하여 관리 시간을 줄이고, AWS에서 실행되는 애플리케이션에 더 많은 시간을 사용하도록 해주는 IaC 기반의 구성 조정 도구이다. 템플릿을 작성하면 CloudFormation이 리소스를 프로비저닝 및 구성한다. JSON, YAML을 사용하여 템플릿 작성 추가 요금 없이 리소스에 대한 사용 비용만..

AWS 2021.07.06

AWS Cognito로 사용자 인증이 가능한 서버리스 웹 어플리케이션 구축 (4) API Gateway로 RESTful API 배포

1편: AWS Amplify를 활용한 정적 웹 사이트 호스팅 https://cumulus.tistory.com/16 2편: AWS Cognito 구축 https://cumulus.tistory.com/19 3편 AWS Lambda 와 DynamoDB로 서버리스 백엔드 구축 https://cumulus.tistory.com/20 API Gateway - Amazon API Gateway를 생성하여 Lambda 함수를 RESTful API로 공개한다. - 퍼블릭에서 엑세스 가능한 API이다. - API는 Amazon Cognito userPool을 사용하여 보호된다. 즉 로그인한 사용자만 특정 API를 호출하여 기능을 사용할 수 있다는 뜻이다. 구축 방법 4.API Gateway로 RESTful API 배포..

AWS 2021.07.06

사용자 인증이 가능한 서버리스 웹 어플리케이션 구축 (3) AWS Lambda 와 DynamoDB로 서버리스 백엔드 구축

1편: AWS Amplify를 활용한 정적 웹 사이트 호스팅 https://cumulus.tistory.com/16 2편: AWS Cognito 구축 https://cumulus.tistory.com/19 구성도에서 AWS Lambda 및 DynamoDB의 역할 1. 사용자가 웹 서버의 기능(unicorn)을 요청하면 API Gateway에 의해 Lambda 함수가 트리거 된다. 2. 함수는 unicorn을 선택하고, DynamoDB 테이블에 요청을 기록한 후 디스패치된 unicorn에 대한 세부 정보를 프론트 엔드 어플리케이션에 반환한다. 구축 과정 3. AWS Lambda 와 DynamoDB로 서버리스 백엔드 구축 3.1 DynamoDB 테이블 생성 3.2 Lambda 함수를 위한 IAM 역할 생성 ..

AWS 2021.07.06

사용자 인증이 가능한 서버리스 웹 어플리케이션 구축 (2) AWS Cognito 구축

1편: AWS Amplify를 활용한 정적 웹 사이트 호스팅 https://cumulus.tistory.com/16 구성도에서 AWS Cognito의 역할 - 이 프로젝트에서는 회원 가입 및 로그인 페이지의 백엔드로써 AWS Cognito의 User Pool을 사용한다. 1. 사용자가 회원 가입 신청을 하면 AWS Cognito에서 확인 코드가 담긴 이메일을 해당 주소로 보내준다. 2. 사용자가 확인 코드를 확인하여 인증을 완료하면 로그인이 가능해진다. 3. 사용자가 로그인할 때 사용자 이름(또는 이메일)과 비밀번호를 입력한다. 4. 사용자가 로그인하면 JavaScript 함수가 AWS Cognito와 통신하여 SRP(Secure Remote Password) 프로토콜로 인증하고, 다시 JWT(JSON ..

AWS 2021.07.06

사용자 인증이 가능한 서버리스 웹 어플리케이션 구축 (1) AWS Amplify를 활용한 정적 웹 사이트 호스팅

AWS Cognito란? 유저 계정 관리 및 토큰 관리를 통한 자격 증명을 제공해주는 AWS 서비스이다. 사용자는 직접 ID와 비밀번호를 통해 로그인하거나 Facebook, Google 또는 Apple과 같은 타사를 통해 로그인할 수 있다. AWS Cognito 구성 요소 User Pool(사용자 풀): 앱 사용자의 가입 및 로그인 옵션을 제공하는 사용자 디렉터리 Identity Pool(자격 증명 풀): 사용자에게 기타 AWS 서비스에 엑세스할 수 있는 권한을 부여한다. 즉, AWS 내의 서비스에 접근하기 위한 토큰 생성 기능을 담당하며 토큰은 JWT 기반이다. 프로젝트 구성도 1. Client는 Web Browser를 사용하여 AWS Amplify의 정적 페이지를 요청한다. 2. Client가 회원가..

AWS 2021.07.05

AWS SES 사용 방법 및 구성

SES란? Smple Email Service의 약자로 Outbound만 가능한 AWS의 이메일 전송서비스이다. SES를 사용하는 목적은 회원들에게 프로모션 전송, 회원가입 시 이메일 확인 인증, 비밀번호 전송 등을 수행하기 위해서이며, 프리티어 기준 매일 2,000통을 보낼 수 있다. 이처럼 SES는 대량의 이메일을 발송하기에 적절한 서비스이며 발송한 이메일의 수와 데이터 전송에 대해 요금이 부과되기 때문에 저렴한 비용으로 이용이 가능하다. SES 사용 방법 1. 이메일 인증 Amazon SES를 사용하려면 보내는 이메일과 도메인을 등록하고 인증해야한다. SES는 등록된 이메일 주소에서만 메일을 보낼 수 있다. 2. Sandbox 나가기 SES를 사용하여 인증받지 않은 메일 주소로 이메일을 보내기 위해..

AWS 2021.07.05

SNS와 Lambda를 이용한 AutoScaling Group 인스턴스 EBS 스냅샷 생성

SNS란? 클라우드에서 손쉽게 알림 기능을 설정하고 작동 및 전송할 수 있는 AWS 서비스이다. 게시 - 구독 메시징 방식이며 Push 메커니즘을 사용하여 클라이언트에게 알림을 전달한다. 각 주제는 SNS 앤드포인트를 식별하는 고유한 이름을 가지기 때문에 게시자는 메시지를 게시하고 구독자는 알림을 받도록 등록이 가능하다. 구독자는 구독하는 주제에 게시된 모든 메시지를 수신하며, 특정 주제에 대한 알림은 모든 구독자가 동일하게 수신한다. 사용 사례 AutoScaling Group에 Scale in, Scale out과 같은 특정 변경 사항이 발생했을 때, 사용자가 알림을 받을 수 있다. SNS를 사용하여 구독자에게 이메일 또는 문자메시지로 특정 뉴스 헤드라인을 Push할 수 있다. 업데이트가 가능함을 알리..

AWS 2021.07.04

AWS Lambda + API GateWay를 활용한 REST API 사용하기

우선 시작하기에 앞서 간단하게 API와 AWS의 API Gateway가 무엇인지 알아보고 시작하겠다. API란? 컴퓨터의 기능을 실행시키는 방법이다. ex) 파이썬: print("hello world") 자바스크립트: document.write('hello world') REST API란? 남의 컴퓨터(서버)의 기능을 실행시키는 명령, HTTP 프로토콜을 잘 활용하기 위해 규정해놓은 약속 PUT: 내용 전체를 업데이트 PETCH: 일부분 업데이트 API Gateway란? Amazon API Gateway는 규모와 관계없이 REST 및 WebSocket API를 생성, 게시, 유지, 모니터링 및 보호하기 위한 AWS 서비스이다. - 특징 다양한 버전과 단계의 API를 호스팅 및 사용 개발자에게 API키를 ..

AWS 2021.07.03

AWS Lambda 기초 개념 및 간단 사용

AWS Lambda란? Lambda는 AWS의 서버리스 컴퓨팅 서비스로 서버를 프로비저닝할 필요 없이 특정 이벤트에 대한 응답으로 코드를 실행할 수 있다. 완전 관리형 컴퓨팅 서비스 상태 비저장 코드 실행 Node.js, Java, Python, C#, Go, Ruby를 지원 이벤트가 트리거되면 그에 대한 응답으로 코르를 실행하는 방식 AWS Lambda의 작동 방식 Lambda의 핵심 구성 요소는 Lambda 함수와 이벤트 소스이다. 이벤트 소스는 이벤트를 게시하고, Lambda 함수는 이벤트를 처리하도록 사용자가 작성하는 사용자 지정 코드이다. AWS Lambda 함수 생성 및 사용법 1. 람다 생성 및 간단한 테스트 2. 입력값에 따라 다른 값이 출력되도록 해보기 3. S3를 트리거로 추가하여 S3..

AWS 2021.07.03

AWS CodeCommit 사용해보기

CodeCommit이란? 우리가 흔히 사용하는 형상관리 도구인 Git이 있다. Git은 GitHub, GitLab, Atlassian, Bitbucket등을 Repository로 사용하여 소스코드를 관리한다. 이와 동일한 기능을 가진 저장소를 AWS에서 제공하는데 이것이 바로 CodeCommit이다. CodeCommit의 특장점 GitHub와 다르게 저장소가 암호화되기 때문에 보안적인 측면에서 우수하다. 또한 월 활성 접속계정 5개 이하, 계정 당 요청수가 2000개 이하인 경우에는 무료로 서비스 이용이 가능하다. CodeCommit 사용해보기 https://cumulus.tistory.com/3 Git을 활용한 형상 관리 1편 1. Git 또는 cmder 설치 https://..

AWS 2021.07.03