Louie NRT Story

[AWS] API Gateway Websocket - 02 본문

전기차충전기

[AWS] API Gateway Websocket - 02

hyeok0724.kim@gmail.com 2021. 10. 10. 10:11
반응형

작성일: 21년 10월 10일

 

Index

1. S3를 이용한 웹앱 만들기

2. Lambda 권한 역할 설정

3. WebSocket 데이터 주고 받기

4. CloudWatch 확인

5. SocketSocket API Gateway 예제

 

 

1. S3를 이용한 웹앱 만들기

 - 웹서버를 따로 사용하지 않고 S3에 HTML, Javascript, CSS와 같은 정보를 넣어둠

 - S3주소를 호스팅 하여 HTML 호출함으로써 정적컨텐츠 웹서버를 구성할 수 있음

 1) 버킷 만들기

 - 버킷의 이름과 접근 권한을 설정함

 

 2) 컨텐츠 업로드

 - 업로드 버튼을 누름

 - 업로드할 파일을 추가하고 엑세스 조건을 "모두"에게 제공함으로 설정함

 - 업로드한 index.html 파일이 누구나 접근 할 수 있음을 확인함

 

 

2. Lambda 권한 역할 설정

 - Lambda에서 API GateWay 실행 시킬 수 있는 권한을 추가하고자 함

 - Lambda에 구성에서 역할을 클릭함

 - 인라인 정책을 추가함

 - Lambda에서 API를 실행할 수 있는 권한 추가함

 - 모든 권한을 줌

 - 운영할때는 특정 API Gateway 주소와 계정에 대해서 해주어야 하지만 본 예제에서는 "모두"로 설정함

 - 모두 추가 하였으므로 정책검토를 클릭함

 - 정책에 대한 이름을 입력함

 - 정책 생성 버튼을 누름

 - 생성한 정책이 추가됨을 확인함

 

 

3. WebSocket 데이터 주고 받기

 1) S3를 이용하여 웹페이지 호출

  - 호출하고자 하는 index.html의 URL 주소를 복사하여 띄움

 

 2) 데이터 전송

  - 페이지가 옮바르게 호출됨을 확인함

  - 이전에 생성한 WebSocket API에 Connect 됨을 확인함

  - Javascript에 정의된 window.ask() 함수를 이용하여 WebSocket API에 데이터를 전송함

  - Lambda에서 정의해 놓은 BackEnd에서 데이터를 전송 해주고 클라이언트가 데이터를 받음을 확인 할 수 있음

 

 

4. CloudWatch 확인

 - Lambda의 로그를 CloudWatch에서 확인할 수 있음

 - Connect 된것과 데이터 수신, Disconnect 된 로그를 확인함

 

 

5. SocketSocket API Gateway 예제

 - 서버리스 웹앱 예제를 보여줌

 - Lambda를 통하여 비즈니스 로직을 수행함

 - S3를 통하여 정적 웹서비스를 제공함

 - Aurora에서는 주고받은 데이터를 저장하고 DynamoDB에서는 WebSocket 연결시 생성되는 ConnnectID를 관리함

 - API Gateway에서 많은 것들을 관리해줌을 알 수 있음

 - 커넥션 URL 이라는 또다른 URL를 제공함
 - 데이터의 API Gateway로 다시 보내는데 사용할 수 있는 URL이며 서버에 연결된 클라이언트에게 데이터를 보낼 수 있음

 - 많은 클라이언트들과 Connect 할때 해당 ConnectID를 DynamoDB에 저장해놓음

 - 채팅할 경우 해당 클라이언트들에게 모두 메시지를 전송 할 수 있음

 

 

Referece:

https://www.youtube.com/watch?v=ZuoZpf3JnY8 

https://www.youtube.com/watch?v=euQZbYT6cF4 

https://github.com/aws-samples/simple-websockets-chat-app

 

GitHub - aws-samples/simple-websockets-chat-app: This SAM application provides the Lambda functions, DynamoDB table, and roles t

This SAM application provides the Lambda functions, DynamoDB table, and roles to allow you to build a simple chat application based on API Gateway's new WebSocket-based API feature. - GitHub -...

github.com

https://github.com/ryanmurakami/websockets-on-aws

 

GitHub - ryanmurakami/websockets-on-aws: Example of using WebSockets with API Gateway on AWS

Example of using WebSockets with API Gateway on AWS - GitHub - ryanmurakami/websockets-on-aws: Example of using WebSockets with API Gateway on AWS

github.com

 

반응형
Comments