백앤드(Back-End)/AWS 17

[AWS] Lambda 개발 & 배포 환경 설정(serverless.yml )

- 개요 안녕하세요. 이번 시간에는 Serverless Framework에서 환경설정을 하는 방법에 대해 알아보겠습니다. 지난 시간에는 API 환경을 구축하는 시간을 가졌습니다. 보통 우리가 개발을 할 때 "개발 환경"과 "배포 환경"을 나눠서 개발을 진행합니다. 안 그렇게 되면... 정말 불편한 상황들이 발생하기 때문에 우리 여러 가지 전략을 새우고 진행합니다. 이번 시간에는 간단한 환경 설정을 하는 방법에 대해 알아보겠습니다. - 설정 Node.js 에서 환경변수에 접근하는 방법은 "process.env.PORT"과 같이 사용합니다. Serverless Framework를 사용하면 serverless.yml 파일에 환경변수를 등록해 사용하면 됩니다. 1. env 폴더 생성(dev.json & prod..

[AWS] Lambda API 구축(aws-serverless-express)

- 개요 안녕하세요. 이번 시간에는 Lambda API 서버를 구축하는 시간은 가져보겠습니다. 기본적으로 Lambda를 그냥 사용하게 되면 정말 불편한 상황들이 발생합니다. (저는 그랬습니다. ㅋㅋ 고수님들은 아닌가요?... ㄷㄷ) 우리가 기본적으로 개발을 할 때 사용하는 Express 나 Koa 환경이랑은 다릅니다. 그렇기 때문에 저는 aws-serverless-express 모듈과 express 모듈을 혼합해서 lambda API 서버를 구축합니다. Express 환경에 대해 아시는 분들은 이해하실 수 있지만 모르시는 분들은 아래 링크를 통해 학습하고 오시는 걸 추천드리겠습니다. [Node.js] Express RESTFul API 서버 만들기 [Node.js] Express RESTFul API 서..

[AWS] Lambda 구축 (Serverless Framework)

- 개요 안녕하세요. 이번 시간에는 Serverless Framework를 사용해서 AWS Lambda 서비스를 구축하는 시간을 가져보도록 하겠습니다. Serverless Framework란 AWS Lambda에서 Node.js를 사용해 애플리케이션 구축할 때 사용되는 프레임워크입니다. Express, Koa를 사용해서 API 서버를 만드는데 이런 역할을 해준다고 생각하시면 됩니다. - 설정 Serverless Framework를 사용하기 위해서는 패키지를 글로벌로 설치해야 합니다. 명령어 #npm npm : npm install -g serverless #yarn yarn : yarn global add serverless 설치 확인 serverless create --tamplate "aws-cloj..

[AWS] Lambda 구축 (AWS Console)

- 개요 안녕하세요. 이번 시간에는 Lambda를 구축하는 시간은 가져보도록 하겠습니다. 기본적으로 AWS Console에서 Lambda를 생성하는 방법과 지난 시간에 개발환경을 설정한 PC환경에서 Lambda를 생성하는 방법 이번 시간에는 AWS Console 환경에서 구축하는 방법에 대해 알아보겠습니다. - AWS Console 방식 AWS Console 화면 검색창에 lambda를 검색합니다. 함수 생성 버튼을 클릭합니다. 함수 이름 런타임 환경을 선택합니다. 저는 Node.js를 선택했습니다. 만약 VPC 환경을 설정하고 싶으신 분들은 고급 설정 항목에서 선택하시면 됩니다. VPC를 선택하지 않으면 기본 VPC가 선택됩니다. 설정을 다 하셨다면 함수 버튼을 클릭해 함수를 생성합니다. 함수를 생성을..

[AWS] Lambda 개념 및 로컬 환경 설정(Mac + Node + Serverless)

- 개요 안녕하세요. 이번 시간에는 AWS Lambda 서비스에 대해 알아보겠습니다. AWS에서 Lambda라는 서비스는 소개할 때 "프로비저닝 하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스"라고 소개하고 있습니다. 무슨 말일 까요?... 일단 프로비저닝이란 우리의 요구사항에 맞게 시스템 자원을 할당하고 배치 및 배포해 두었다가 필요한 상황에서 시스템을 즉시 사용할 수 있는 상태라고 말할 수 있습니다. 예시로 AWS EC2 서비스를 비교해서 설명해보겠습니다. EC2 서비스는 가상의 클라우드 공간에 컴퓨팅을 구축한다고 모두 아실 겁니다. (EC2 서비스는 실행하는 시간, 트래픽 등 요금을 지속적으로 측정합니다.) EC2 인스턴스를 실행 상태라면 비용은 계속 나가게 됩니다. 하지만 La..

[AWS] SMS 문자 메시지 전송 (Simple Notification Service)

- 개요 안녕하세요. 이번 시간에는 AWS에서 Simple Notification Service를 활용해 휴대폰 문자 메시지 전송에 대해 알아보겠습니다. 해당 포스팅에서는 Node.js를 활용해서 진행하겠습니다. - 설정 1. IAM 계정 생성 및 권한 설정 SMS 문자 메시지를 전송하기 위해서는 선행적으로 IAM 유저에 권한을 정해야 합니다. IAM 유저 생성 방법을 모르시거나 IAM을 모르시는 분들은 아래 링크를 통해 학습하고 오시는 걸 추천드리겠습니다. [AWS] IAM(Identify and Access Management) 생성 및 사용법 [AWS] IAM(Identify and Access Management) 생성 및 사용법 - 개요 안녕하세요. 이번 시간에는 AWS 자원에 접근 권한에 대해..

[AWS] IAM(Identify and Access Management) 생성 및 사용법

- 개요 안녕하세요. 이번 시간에는 AWS 자원에 접근 권한에 대해 알아보겠습니다. 보통 AWS 계정을 생성하면 생성한 계정은 루트(Root) 계정입니다. (최고 권한을 가진 계정, 모든 aws 서비스에 접근할 수 있고 제어가 가능합니다.) 만약 회사에서나 다른 외부 개발자와 협업을 할 때 루트 계정을 알려주면... 상상에 맡기겠습니다. 무서운 상황이 발생하기 때문에 하위 계정을 생성하고 그 계정에 각 서비스에 대한 권한을 부여해 서비스에 대한 관리가 가능해집니다. - 사용법 가장 맨 처음 계정을 생성해야 합니다. AWS Console 검색창에 IAM를 입력해서 해당 서비스로 이동합니다. 대시보드에 보면 IAM 리소스 항목에 여러 가지 내용들이 보입니다. 왼쪽 액세스 관리 항목에서 사용자를 클릭합니다. ..

[AWS] Route53 도메인 구매(등록)

- 개요 안녕하세요. 이번 시간에는 AWS 도메인을 구매하는 방법에 대해 알아보겠습니다. 기본적으로 AWS 계정이 필요합니다. (이 글을 보시는 분들은 있으시겠죠? :>) 도메인 DNS에 대해서는 따로 설명하지 않겠습니다. - 구매 방법 기본적으로 AWS 도메인을 구매하기 위해서는 AWS Management Console 사이트에 로그인합니다. 검색 창에 route53을 입력하면 우리가 사용할 서비스가 나타납니다. Route53 서비스를 클릭하면 아래와 같은 화면이 보이게 됩니다. 우리는 도메인 등록 버튼을 클릭합니다. 클릭 후 아래와 같은 페이지로 이동합니다. 등록하고 싶은 도메인을 입력합니다. (.com, .net, .org 가격이 다름) 내가 등록하고 싶은 도메인이 설정이 가능한지 확인해 줍니다. ..

[AWS] EC2 Auto Scaling 개념 및 설정

- 개요 안녕하세요. 이번 시간에는 EC2 Auto Scaling에 대해 알아보겠습니다. AWS Auto Scaling은 정책(내가 정의한 법)에 따라서 시스템을 자동으로 늘리고 줄여주는 서비스입니다. 대표적인 EC2 인스턴스를 내가 정의한 설정에 따라 서버를 늘리고 줄여줄 수 있습니다. 간단하게 동작 방식을 설명하면 하나에 서버에 트래픽이 폭주하면 해당 서버에 CPU 사용률은 점점 높아집니다. 그러다, CPU 점유율이 내가 지정한 값을 몇 분간 지속적으로 유지되면 미리 준비된 이미지(AMIs)를 이용해서 인스턴스를 생성하고, ELB에 연결해 트래픽을 새로 생성한 EC2 인스턴스에 분산합니다. 만약, 트랙픽이 줄어들면 CPU 사용률이 줄어들면 EC2 인스턴스가 순차적으로 제거됩니다. 신기하죠?ㅎ 저도 실..

[AWS] 고정 아이피(Elastic IP) 생성 및 설정

- 개요 안녕하세요. 이번 시간에는 AWS Elastic IP(탄력적 아이피)에 대해 알아보겠습니다. 탄력적 아이피는 EC2 인스턴스에 고정 아이피를 설정할 때 사용됩니다. EC2 인스턴스를 상태가 중지 상태에서 새롭게 실행 상태로 변경하면, 기존에 할당받은 IP주소가 변경됩니다. 만약 실제 서비스 중인 서버라면... 문제가 예상이 되시죠?... 그렇기 때문에 고정 아이피를 사용하거나. DNS 서버와 연결해서 사용합니다. 이번 시간에는 고정 아이피를 생성하고 설정하는 방법에 대해 알아보겠습니다. - 고정 아이피 생성 및 설정 우리가 EC2 인스턴스를 생성하고 나면 아래와 같은 네트워크 구성으로 이루어집니다. 위에서도 설명했듯이 아이피가 변경되면 문제가 발생하기 때문에 탄력적 IP 주소를 설정합니다. 현재..