본문 바로가기

개발/AWS20

AWS Lambda 에러 대체뭘까.. 람다 콘솔창에서 간단한 문제때문에 함수 파라미터 숫자만 바꾸면서 실행해보고있었다 근데갑자기 "errorType":"Runtime.UserCodeSyntaxError", "errorMessage":"SyntaxError: Unexpected token 이런에러가 떳다.. 코드상에 아무런 문제가없고 잘실행되던 코드인데 단지 파라미터값 숫자하나를 다른숫자로 바꿨을뿐인데 ?? 대체왜 이런에러가뜨는걸까 아직까지 이유를모르겠다 그냥 일시적인 에러인가 ? 현재 잠정적으로 내린 결론은 코드를 수정한뒤 저장하자마자 실행해서 제대로 저장이 안된상태에서 실행이된거같다..라고 결론내렸다 실제로 어떤 파라미터를 3으로 바꾸고 실행했더니 위같은 에러가 발생했는데, 3을 지웠다가 다시 그대로 3 입력하고 저장한뒤 잠시 기다렸다가 .. 2019. 11. 11.
EC2앞에 Network Load Balancer 추가하기 삽질 IOT 장비가 EC2로 보내는 부하를 분산하기위해 로드밸런서를 새로 도입하기로했다 그과정에서 수많은 삽질이 있었는데 ,, 이번글은 내가겪은 순서대로 삽질한것을 그냥 쭉써보려고한다 맨처음에 ELB 서비스를 이용하기위해.. AWS 서비스 검색창에 Elastic Load Balancing ( ELB )을 검색했는데 안나오고 EC2만 나와서 뭐지..??? 싶었는데 ELB 생성을 EC2 대시보드에서 하는거였다 .. ㅋㅋ.. 대시보드 하단에보면 로드밸런싱이라는 항목이있다 저기서 로드밸런서를 클릭하고 상단을 보면 로드밸런서 생성이 가능하다 로드밸런서는 하나만있는줄알았더니 이렇게 3종류가있다 .. Application Load Balancer Network Load Balancer(신규) Classic Load Bal.. 2019. 11. 7.
EC2 Node서버에서 Lambda 접근하기 + secretAccessKey 관리 최근에 EC2 에 Node 소켓서버를 만들고 서버에서 Lambda함수를 호출해야되는 일이 생겼다. node서버는 Lambda에게 단순하게 값을 보내는 역할만 하면 되고, 나머지 로직은 Lambda가 데이터를 받아서 알아서 처리하게 할것이다. 처음에는 API Gateway를 이용해서 URL을 통해 접근할생각이었으나.. 찾아보니 aws-sdk 를 이용하면 EC2 node서버에서 Lambda를 바로 호출할수있다는것을 알게되었다. 일단 aws-sdk 를 설치하고 node서버에서 람다를 호출하는 예제를 찾아서 적용 해봤는데 잘 작동했다. 아래코드는 nodejs TCP 소켓서버에서 람다와 관련된부분만 적어놓은것이다 //server.js const AWS = require('aws-sdk');//SDK.. 2019. 10. 18.
DynamoDB 공부+ 실사용하면서 느낀점 회사에서 신규서비스를 만들때 서버리스아키텍쳐를 도입하게되었는데, 그중 데이터베이스는 DynamoDB 를 쓰게되었다. 몇달간 사용해보면서 굉장히 많은 시행착오를 겪었다. 아래는 사용하면서 느낀점들이다. Amazon DynamoDB는 어떤 규모에서도 10밀리초 미만의 성능을 제공하는 키-값 및 문서 데이터베이스입니다 일단 DynamoDB는 NOSQL이다. 학창시절부터 지금까지 몇번 사용해본 MySQL, postgreSQL, mariaDB같은 RDBMS와 너무 개념이 다르고 어려웠다. RDBMS와 NOSQL의 차이점은 AWS공식문서에 간단명료하게 잘나와있다. DynamoDB의 장,단점 장점 : 장점은 사실 공식문서에 줄줄줄줄 써있다 완전 관리형 DB이기 때문에 aws에서 모든것을 관리해준다 . AWS 서비스들.. 2019. 10. 7.
API gateway {"message":"Missing Authentication Token"} 해결하기 요즘 회사일 때문에 너무 정신이없어서 거의 한달간 포스팅을 못했다.. 같은핑계대지말고 다시 열심히 포스팅하자 API gateway를 처음 사용할때, 잘모르는 경우 {"message":"Missing Authentication Token"} 라는 메시지를 볼수있다 , 그냥 URL을 잘못입력했기때문에 나오는 메시지다 찾아보면 공식문서에 바로 쓰여있다 기본적으로 오류 응답에는 오류를 설명하는 짧은 설명이 포함되어 있습니다. 예를 들어 *정의되지 않은 API 리소스에 대한 작업을 호출할 경우 { "message": "Missing Authentication Token" } 메시지를 포함하는 오류 응답이 수신됩니다. API Gateway를 처음 사용할 경우 실제로 무엇이 잘못되었는지 이해하기 어려울 수 있습니다... 2019. 9. 27.
AWS Lambda 주기적으로 자동실행하게하기 ※ Lambda 와 DynamoDB의 기본적인 사용법은 생략했습니다. 이번에 주기적으로 람다함수를 자동실행하게 하는방법을 찾던도중 CloudWatch Events 를 이용하면 람다를 자동으로 실행하게할수있다는것을 알게되었다. 람다는 cold start , warm start 라는게 존재하기때문에 오랫동안 실행되지않은 cold 상태의 람다함수는 예열된(?) warm 상태의 람다보다 실행이 오래걸린다 ( 사실 오래걸려봣자 1초 정도 차이남 ) 그래서 CloudWatch Events 를 이용해 주기적으로 람다함수를 실행하여 warm 상태를 유지하는데 사용하기도한다. ( 물론 사용을 더하는만큼 비용이 추가되긴할것이다 ) 하지만 나는 그냥 람다함수 자동실행을 위해 CloudWatch Events 를 사용하려고한다.. 2019. 8. 26.
AWS Lambda TimeZone ( TZ ) 설정 하기 람다는 기본적으로 시간이 UTC 기준이다. 그래서 시간관련 함수를실행해보면 console.log(process.env.TZ); // :UTC const date = new Date(Date.now()); console.log(date.toString()); // Mon Aug 26 2019 02:38:45 GMT+0000 (Coordinated Universal Time) console.log(date.toISOString()); // 2019-08-26T02:38:45.865Z console.log(date.toLocaleDateString()); // 8/26/2019 이렇게 UTC 기준으로 실행되는것을 볼수있다. timezone 을 한국으로 설정하기위해서는 nodejs 기준으로 process.env.. 2019. 8. 26.
AWS Windows Device Simulator 시작하기 나는 iot 기기가 따로 없어서 윈도우 시뮬레이터를 이용해서 AWS IOT 와 통신하는 테스트해보기로 했다. AWS의 자습서 설명이 꽤 자세하게 나와있다 하지만 생략되거나 대충설명하는부분이 있기때문에,, 두시간동안 해본것을 정리해서 포스팅하려고한다 꼭 나처럼 하지않아도 작동할수도있다, 하지만 일단 이 글대로 따라하면 되긴할것이다 쓸데없는 과정이 몇개있을수도있지만 일단 이렇게 했더니 작동하더라.. 하는식으로 보면 좋을듯 공식문서를 옆에 켜두고 이 글이랑 비교해가면서 같이보기를 권장한다 윈도우 10 노트북으로 테스트를 진행했다 준비물 - 와이파이말고 이더넷(랜선)으로 인터넷연결 진행하다보면 이더넷으로만 가능하다는 메시지가 콘솔창에 뜨는데 와이파이상태에서 다시 테스트해본결과 잘된다., 근데 안될때도 있다,, .. 2019. 7. 10.
AWS IoT Credentials.zip 이 비어있는 에러 최근 aws iot를 공부하면서 겪은 황당한 에러.. 라기보단 사실 내가 멍청했다 AWS FreeRTOS를 이용해서 디바이스를 등록하는 경우에 디바이스 이름을 입력하게된다 이 디바이스이름은 다음 챕터에서 인증서와 private key 등의 파일을 생성할때 쓰인다... 이부분 매우중요.. 나는 아무생각없이 이름을 20:04 이런식으로 시간을 입력해서 만들었다 이름입력할때 잘보면 " : " 는 포함해도 된다고 나온다.. 이걸 믿지 말았어야했다 이름 지정하고 다음챕터로 가면 이런식으로 파일이 생성된다고 알려준다 여기서 눈치챘어야했는데 ㅋㅋ 어쨌든 다운로드를 받으면 credentials.zip 파일로 받게되는데... 띠용.. 이렇게 비어있는 파일을 받게된다 20:04로 하니까 자꾸 빈파일만 다운로드 된다.. 한.. 2019. 7. 4.
AWS 서버리스 아키텍쳐 개인 프로젝트를 진행하면서 AWS ec2와 lightsail을 사용한 적은 있었으나 서버리스 아키텍처는 처음들어봤고, 또 사용해 본 적이 없어서 새로 공부 중이다 서버리스 서비스를 제공하는 곳이 몇 군데 있지만 일단 가장 대중적인 AWS를 이용하기로 했다 공부한 내용을 정리하는 차원에서 글을 쓰기때문에 아직 깊게 공부하지 못했고 오류가 있을 수도 있으니 주의.. 잘못된 내용 지적환영합니다 서버리스 아키텍처는 무엇일까? 서버리스(serverless)라는 말만 들어보면 서버가 없는 건가? 하는 생각이 든다 물론 서버가 없으면 서비스를 할수가 없기 때문에 진짜 없는 건 아니고 마치 서버가 없는 것처럼 "너네는 서버 신경 쓰지 마라 내가(AWS) 다 알아서 관리해줄게!!" 이런 느낌이다 왜 나온 것일까? 여기저.. 2019. 6. 24.