본문 바로가기

AWS

AWS Lambda를 이용한 API 서비스 배포 HTTP API HTTP API를 사용하면 REST API보다 대기 시간이 짧고 비용이 저렴한 RESTful API를 생성할 수 있습니다. HTTP API를 사용하여 AWS Lambda 함수 또는 라우팅 가능한 HTTP 엔드포인트에 요청을 전송할 수 있습니다. 예를 들어 백엔드의 Lambda 함수와 통합되는 HTTP API를 생성할 수 있습니다. 클라이언트가 API를 호출하면 API Gateway는 Lambda 함수에 요청을 전송하고 함수의 응답을 클라이언트에 반환합니다. REST API API Gateway의 REST API는 백엔드 HTTP 엔드포인트, Lambda 함수 또는 기타 AWS 서비스와 통합되어 있는 리소스 및 메서드의 모음입니다. API Gateway 기능을 사용하여 생성에서 프로덕션 A.. 더보기
Bitnami를 이용한 gnuboard 사이트 구축 STEP 1. 인스턴스 생성 AMI는 [LAMP Certified By Bitnami]를 선택한다 퍼블릭 서브넷을 선택하고 [퍼블릭IP 자동 할당]을 선택한다 주의해야할 점은 서브넷을 프라이빗 서브넷으로 선택하고 퍼블릭IP 할당하면 인터넷과 연결이 안된다 외부 사용자들이 HTTP로 연결할 수 있도록 소스(출발지) IP주소를 '0.0.0.0/0'으로 설정한다 [새 키 페어 생성]을 선택하고 원하는 키 페어 이름 입력한다 [키 페어 다운로드]를 클릭하면 로컬에 '프라이빗 키'가 저장될 것이다(재발급이 불가하므로 잘 보관해둔다) 인스턴스 생성 시 완료되면 퍼블릭IP 주소가 보일 것이다 STEP 2. 인스턴스 접속 인스턴스 생성 시 AMI를 선택하면 AMI설명서가 있는데 SSH로 인스턴스 연결 시 사용할 사용자.. 더보기
EC2 인스턴스 연결 EC2 인스턴스에 접속하는 방법에는 아래의 방법이 있다 SSH 접속 Putty를 이용한 접속 AWS 콘솔에서 연결 인스턴스 생성 시 AMI를 선택하면 AMI설명서가 있는데 SSH로 인스턴스 연결 시 사용할 사용자 이름이 명시되어 있다 이번 실습에서는 Bitnami를 설치했기 때문에 인스턴스 접속 시 사용자 이름을 'bitnami'로 입력해야한다 1. SSH 접속(Power Shell or 명령프롬프트) AWS에서 다운받은 키페어가 있는 위치로 이동한 다음 명령어를 입력하면 접속할 수 있다 ssh -i "키페어이름" bitnami@인스턴스IP 2. Putty를 이용한 접속 Putty를 이용하여 접속하기 위해서는 .ppk 형식의 키페어가 필요하다. 하지만 AWS에서 키페어를 다운받을 때는 .PEM 형식이기 .. 더보기
Beanstalk 예약 서비스 Beanstalk은 도커 컨테이너 기반으로 애플리케이션을 쉽게 배포할 수 있고 운영 및 곤리를 지원하는 AWS 서비스이다. EC2 유형 변경, AutoScaling, Load Balancing 등을 자동으로 관리해준다. Beanstalk은 애플리케이션과 환경으로 구성되며 애플리케이션은 인스턴스의 논리적인 집합, 하위 애플리케이션 버전의 관리이고, 환경은 EC2 인스턴스, 로드밸런서, 오토스케일링 그룹 등으로 이루어진다 이번 실습에서는 beanstalk 애플리케이션이 사용자로부터 데이터를 받아 DynamoDB에 저장한 후, 다시 SNS 주제로 데이터를 보내는 기능을 할 것이다 우선 Beanstalk에게 DynamoDB, SNS에 접근할 권한을 부여해야한다 정책생성에 들어가서 DynamoDB의 모든 작업과 .. 더보기
번역 웹 서비스(POST) /* AWS SDK 를 가져옵니다.*/ var AWS = require('aws-sdk'); AWS.config.update({region: 'us-east-1'}); var translate = new AWS.Translate(); exports.handler = function(event, context,callback){ console.log(JSON.stringify(event.body)); const response = JSON.parse(event.body) //event.body로 POST로 받은 데이터를 받습니다. try{ const translateParams = { SourceLanguageCode: 'ko', TargetLanguageCode: 'en', Text: response.t.. 더보기
Lambda 함수 기반 문자 알림 서비스 AWS SNS를 이용하여 지정된 사용자에게 문자, 이메일 등을 보내는 서비스를 해보자 람다 함수가 SNS서비스에 접근하기 위해 필요한 역할과 정책을 생성해야한다 우선 좌측에 [정책 메뉴]를 클릭하고 [정책 생성]을 클릭한다 [서비스 선택]을 클릭하고 입력창에 "SNS"라고 입력한다 입력창 아래에 "SNS" 글자가 나오면 클릭한다 사용자에게 문자를 보내는 것은 쓰기에 해당하므로 액세스 레벨 [쓰기]를 선택한다 리소스를 클릭한 후 [모든 리소스]를 선택한다 [정책 검토]를 클릭하고 다음으로 넘어간다 정책이름을 "policy_for_publishing_sns"라고 입력하고 설정한 권한(SNS-쓰기)이 제대로 되어있는지 확인한다 정책을 생성하였으면 정책과 연결할 역할을 만들어야 한다 [역할 만들기]를 클릭한 후.. 더보기
Dynamo DB CRUD 테이블 이름과 기본키를 설정한다(기본키는 고유한 값이어야 함) 하지만 파티션 키인 "employee_name"이 중복될 경우(회사 안에 같은 이름을 가진 직원이 존재)가 있으므로 정렬 키를 추가로 사용하여 "name + id"로 고유한 아이디를 만들 수 있다 테이블이 만들어졌으면 "항목"탭에 있는 "항목 만들기"를 클릭한다 테이블 만들기에서 설정했던 기본키(파티션 키 + 정렬 키)가 이미 있는 것을 볼 수 있다. 이 2개의 값은 기본키에 해당하기 때문에 항목을 만들 때 꼭 입력해야 하는 필수 항목이다 employee_name에는 "Tom", employee_id에는 100을 입력하고 저장을 클릭한다 테이블에 항목이 만들어진 것을 확인할 수 있다 이번에는 새로운 속성을 추가하여 항목을 만들어보자 항목 만들.. 더보기
S3 버킷 이미지 업로드 / 정적 웹 사이트 호스팅 S3란 어디서나 원하는 양의 데이터를 저장하고 검색할 수 있도록 구축된 객체 스토리지이다 최소 3개의 AZ에 데이터 중복 저장(99.9999999% 내구성) 스토리지 중 EC2와 별개로 단독으로 사용 가능하다 인터넷용(인터넷 접근 가능) 버킷 안에 object(파일+메타데이터)가 있다 버킷 생성 시 자동으로 URI가 생성된다 버킷은 file시스템이 아닌 object로 file시스템의 폴더와 같은 기능을 주기 위해 접두사 "/"사용하지만 사실은 평면에 같은 레벨로 저장되므로 속도가 빠르다 버저닝(versioning): 새로운 파일로 덮어쓸 때, 기존의 파일에 대한 정보를 유지시키고 싶다면 버저닝을 활용하여 백업본을 생성한다 S3 구성 버킷(Bucket) : 데이터를 저장하는 가상의 저장소, 고유한 이름을 .. 더보기