Web 10

[AWS][DynamoDB] DynamoDB 설계, 키 디자인에 관하여

DynamoDB를 설계할 때 가장 중요한 것이 Key Design이라고 생각된다. 이와 관련된 자료를 찾아보던 중, 정말 만족스러운 Amazon Web Services Korea 유튜브 채널의 영상이 있어 추천한다. https://youtu.be/I7zcRxHbo98?si=C0K9hEcPKeLUZaHg DynamoDB에는 기존의 RDBMS와 다른 액세스 패턴과 키 규칙이 있기 때문에 이를 잘 이해하고 사용해야만 한다. 효율적으로 사용할 수 있는 테이블 설계에 대해 더욱 고민해야겠다. 정렬 키 설계 https://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/bp-sort-keys.html 정렬 키를 사용하여 데이터를 정리하는 모범 사례 -..

Web/AWS 2024.03.05

[NodeJS] Node.js 동작 방식

Node.js 동작 방식 자바스크립트 엔진인 V8과 libuv의 조합으로 구성되어 있다. Node.js API에는 FileSystem, Crypto, HTTP 등 여러 API를 가지고 있다. 이 API들은 C++이나 C언어로 작성되어 있는 것도 있어 Javascript에서 처리하기 위해서는 Node.js Binding을 통해 처리한다. V8에서 자바스크립트 작업을 진행하고, 파일 시스템 같은 처리가 필요할 때 Node.js API를 호출한다. Example Node.js가 어떻게 작업을 처리하는지 다운로드를 예로 한 번 보자. 1. Javascript로 다운로드 요청을 보낸다. 2. Node.js의 http module api를 사용해야 한다. 3. Node.js Bidning을 통하여 libuv로 할 ..

Web 2024.02.16

[AWS][Monitoring] AWS CloudWatch 개념

AWS CloudWatch AWS 리소스를 모니터링 AWS 내 구동 중인 Application 모니터링 다양한 AWS 서비스와 Integration을 통해 자동화 가능 임계값 초과 시 Alarm 발생 또는 AWS SNS(Simple Notification Service) 통해 이메일/Lambda 트리거 AutoScaling 그룹의 EC2 수 증가, 문제 있는 인스턴스 중지 등의 자동화 시스템 구축 로깅 또는 지표들을 S3에 백업 주요 개념 Namespaces CloudWatch를 통해 - EC2 인스턴스의 CPU 사용률 모니터링 - RDS 인스턴스의 CPU 사용률 모니터링 을 하고 싶다 할 때의 EC2, RDS를 Namespace라고 정의한다. CloudWatch 콘솔의 Metrics 탭을 보면 다양한 ..

Web/AWS 2022.05.27

[AWS][API Gateway] AWS API Gateway 개념

API Gateway란 Gateway: 어떤 것이 지나가는 통로 즉 API가 지나가는 통로를 의미한다. API Gateway가 필요한 이유 예를 들어보자면, 우리는 Request.get(url1) 함수를 사용해 특정 REST API를 받아온다. 이때 주소 url1이 url2로 변경되는 등 요청 url이 바뀌는 경우가 발생할 수 있다. 기존에 사용하던 api 콜 하는 함수의 모든 url을 바뀌어야 하는데, 흩어져 있는 모든 함수들의 url을 모두 바꿔주는 작업은 매우 번거롭다.🙄 이 문제를 해결할 수 있도록 흩어져있는 것들을 하나로 모아 관리할 수 있는 것이 API Gateway이다. 어떤 경로로 요청이 오면 Gateway에서 요청을 어디로 보낼지 정할 수 있는 것이다. AWS API Gateway 개발자..

Web/AWS 2022.05.25

[AWS][DynamoDB] DynamoDB Local 설치하기 (Ubuntu)

테스트 환경 Ubuntu 20.04.2 1. DynamoDB 설치 mkdir DynamoDBLocal cd DynamoDBLocal wget http://dynamodb-local.s3-website-us-west-2.amazonaws.com/dynamodb_local_latest.tar.gz tar xzf dynamodb_local_latest.tar.gz ls # 아래와 같은 파일들이 압축 해제 되어 있다면 올바르게 된 것 # DynamoDBLocal.jar dynamodb_local_latest.tar.gz DynamoDBLocal_lib LICENSE.txt README.txt THIRD-PARTY-LICENSES.txt rm dynamodb_local_latest.tar.gz dynamodb_l..

Web/AWS 2022.02.24

[NodeJS] Mocha, Mochawesome, Supertest 이용하여 테스트 구현하기

최근 Web 업무를 받아 능숙하진 않지만 열심히 하고 있다🤓 기존에는 API 서버를 테스트할 때 PostMan을 사용하고 있었는데, 포스트맨으로 테스트를 한다는 것은 일일이 Send를 하고 Response를 확인해서 잘 돌아가고 있는지 확인해야 한다. 포스트맨을 이용한 테스트는 번거롭다는 단점이 있지만 틀린 방법은 아니다. 하지만 개발이 진행되면 진행될수록 던져보아야 할 요청은 많아지고, 함수들을 수정할 경우가 많아지며 이에 다른 기능들이 영향받을 수 있는 가능성도 커진다. Node.js 서버 테스트 코드를 구현할 때 도움을 많이 받고 유용했던 블로그 글과 나의 경험을 정리해 보고자 한다.🌟 1. Mocha 사용하기 대표적인 테스트 툴 중 하나인 Mocha를 사용하였다. 설치 방법 $ npm instal..

Web 2021.12.03

[AWS][DynamoDB] Node.js DynamoDB scan 할 때 2번 응답 오는 문제 해결

문제 상황 docClient.scan(params, function(err, data) { if (err) { // error 시 } else { // success 시 } }); 위의 코드와 같이 https://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/dynamodb-dg.pdf의 샘플 코드를 참고하여 Scan하는 과정을 구현했다. 그 결과, 위의 Log와 같이 docClient.scan() 을 한 번만 호출했는데도 불구하고 2번씩 응답이 왔다. 해결 방법 try { docClient.scan(params); // success 시 } catch (error) { // error 시 } try-catch 문으로 에러 시의 처리를 구..

Web/AWS 2021.11.25

[AWS][DynamoDB] ValidationException: Invalid StreamArn

DynamoDB Local에서 DB 연동을 마친 후 accessKeyId, secretAccessKey를 AWS config에 추가하였는데 ValidationException: Invalid StreamArn의 에러가 나왔다. DynamoDB Streams를 읽어오지 못하고 있다..! 이를 해결하기 위해 찾아본 결과 1. IAM의 권한을 적절히 주었는가 https://stackoverflow.com/questions/56460405/cannot-access-stream-arnawsdynamodbus-east-2144091332251table-users-stream Cannot access stream arn:aws:dynamodb:us-east-2:144091332251:table/users/stream..

Web/AWS 2021.11.22

[AWS][DynamoDB] DynamoDB Workbench Local & Remote 사용하기

1. NoSQL Workbench 다운로드 NoSQL Workbench를 다운로드한다 https://docs.aws.amazon.com/ko_kr/keyspaces/latest/devguide/workbench.settingup.html NoSQL Workbench 다운로드 - Amazon Keyspaces(Apache Cassandra용) 이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오. docs.aws.amazon.com 2. NoSQL Workbench 실행 Linux의 경우 AppImage가 설치되는데, 이를 실행시키려면 아래의 두 가지 방법 중 한 가지를 하면 된다. - https:/..

Web/AWS 2021.10.27