nodejs express 서버를 로컬에선 오차없이 실행되다가 서버에만 올리면 이상해지길래 timezone 문제라고 생각이 들었다.

 

sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

이후 nodejs 재실행하니 제대로 동작했다.

const GetListFromDB = async () => {
    const scan = {
        TableName : config.aws_table_name
    }
    const ret = await dynamoDB.scan(scan).promise();
    console.log(ret);
}
{
  Items: [ { idx: 'List', datalist: [] } ],
  Count: 1,
  ScannedCount: 1
}

뒤에 promise() 를 붙여주니 바로 데이터를 가져올수 있더라

DynamoDB

 

이번엔 AWS 의 DynamoDB를 한번 사용해보려고 한다.

 

일단 AWS의 사용자 키가 필요한데 없다면 mik-a.tistory.com/59 이 글을 보고 만들수있다.

 

1. 테이블 만들기

ap-northeast-2.console.aws.amazon.com/dynamodb/home?region=ap-northeast-2#

 

https://ap-northeast-2.console.aws.amazon.com/dynamodb/home?region=ap-northeast-2

 

ap-northeast-2.console.aws.amazon.com

테이블을 만들었다.

 

 

nodejs 로 넘어가서,

npm install aws-sdk

aws sdk 를 사용하기위한 모듈을 설치해준다

 

 

테이블에 데이터를 넣어보자

const AWS = require('aws-sdk');

const tableName = 'Test';
const key = {
        accessKeyId : '<Access Key>', // 개인 Access key 를 넣어준다.
        secretAccessKey: '<Secret AccessKey>',
        region : 'ap-northeast-2'
    };

AWS.config.update(key);
const dynamoDB = new AWS.DynamoDB.DocumentClient();

const put = {
    TableName : tableName,
    Item : {
        idx : 'idx001',
        data : 'data1',
        data2 : 'data2'
    }
}
dynamoDB.put(put, (e,d) => {
    console.log(e,d)
});

 

key 의 region 은

 

aws 의 지역을 보면 된다.

 

위의 코드를 실행하고, aws 의 dynamodb 테이블을 보자

 

데이터가 들어가있는걸 확인할수 있다.

 

 

추가로 2개의 데이터를 더 추가했다.

 

 

이제 하나의 데이터를 찾아보자

const AWS = require('aws-sdk');

const tableName = 'Test';
const key = {
        accessKeyId : '<Access Key>',
        secretAccessKey: '<Secret AccessKey>',
        region : 'ap-northeast-2'
    };

AWS.config.update(key);
const dynamoDB = new AWS.DynamoDB.DocumentClient();

const query = {
    TableName : tableName,
    KeyConditionExpression : 'idx = :i',
    ExpressionAttributeValues : {
        ':i' : 'idx001'
    }
}
dynamoDB.query(query, (d) => {
    console.log(d);
})
{
  Items: [ { data2: 'data2', data1: 'data1', idx: 'idx001' } ],
  Count: 1,
  ScannedCount: 1
}

 

테이블의 모든 데이터를 가져와보자

 

const AWS = require('aws-sdk');

const tableName = 'Test';
const key = {
        accessKeyId : '<Access Key>',
        secretAccessKey: '<Secret AccessKey>',
        region : 'ap-northeast-2'
    };

AWS.config.update(key);
const dynamoDB = new AWS.DynamoDB.DocumentClient();

const scan = {
    TableName : tableName,
}

dynamoDB.scan(scan, (e,d) => { 
    console.log(d);
})
{
  Items: [
    { data2: 'data2', data1: 'data1', idx: 'idx002' },
    { data2: 'data2', data1: 'data1', idx: 'idx003' },
    { data2: 'data2', data1: 'data1', idx: 'idx001' }
  ],
  Count: 3,
  ScannedCount: 3
}

 

 

테이블의 데이터중 하나를 수정(업데이트) 해보자

 

const AWS = require('aws-sdk');

const tableName = 'Test';
const key = {
        accessKeyId : '<Access Key>',
        secretAccessKey: '<Secret AccessKey>',
        region : 'ap-northeast-2'
    };

AWS.config.update(key);
const dynamoDB = new AWS.DynamoDB.DocumentClient();

const update = {
    TableName : tableName,
    Key : {idx : 'idx001'},
    UpdateExpression : 'set data1 = :d1, data2 = :d2',
    ExpressionAttributeValues:{
        ":d1": 'newdata1',
        ":d2": 'newdata2'
    },
}

dynamoDB.update(update, (e,d) => {
    console.log(e,d)
})

 

이렇게 간단하게 DynamoDB 를 사용해봤다.

지금까지 MongoDB만 사용하다가 DynamoDB를 처음써보니 아직 익숙하지가 않은데..

쓰다보면 익숙해지겠지 뭐..

'Dev > AWS' 카테고리의 다른 글

[AWS EC2] EC2 Timezone 한국으로 변경  (26) 2022.09.05
[DynamoDB] DynamoDB await 사용하기  (25) 2021.01.11
[AWS] AWS 액세스 인증 키 생성하기  (14) 2021.01.11
[AWS] EC2 로 가상 서버 실행하기  (16) 2021.01.04

AWS 의 서비스들을 사용하기위해 액세스 인증 키를 생성해보려고 한다.

 

https://console.aws.amazon.com/iam/home#/home

 

https://console.aws.amazon.com/iam/home#/home

 

console.aws.amazon.com

 

위의 주소로 들어간다.

 

정책 설정

 

여기서 얻은 키는 다시 볼수없으니 잘 저장해두자.

 

csv

 

이제 여기의 Access key ID 와 Seceret access key 로 aws의 여러 서비스를 사용해보자

aws ec2 로 aws에 입문해보려고 한다.

 

 

 

1. 아래 사이트에 접속해주자

 

aws.amazon.com/ko/ec2/?nc2=h_ql_prod_fs_ec2&ec2-whats-new.sort-by=item.additionalFields.postDateTime&ec2-whats-new.sort-order=desc

 

아마존 클라우드 서버 호스팅 | Amazon Web Services

다양한 구매 모델 온디맨드, 스팟 인스턴스, Savings Plan과 같은 여러 가지 구매 모델을 제공합니다. 스팟 인스턴스를 사용하면 내결함성을 갖춘 워크로드 요금을 90%까지 절감할 수 있습니다. Saving

aws.amazon.com

 

 

 

시작하기 클릭

 

 

2. EC2 대시보드 창으로 넘어와지면 오른쪽 상단에 지역 선택을 해야한다

 

서울 선택

 

3. 인스턴스 시작

 

 

4. Amazone Machine Image (AMI) 선택

나는 ubuntu 18.04 버전을 선택했다.

 

사양을 선택할 수 있다.

 

여기서 시작하기를 누르면,

 

key를 생성해야한다. 이전에 인스턴스를 만들어서 키를 만든 기록이 있으면 그 키를 선택할 수 있지만 처음이니깐

새 키 페어 생성 를 선택하고, 이름을 지정 후 키 페어 다운로드 를 해준다.

다운로드 받은 키 파일은 한번 다운 후 다시 받을 수 없으니 잘 보관해주자.

다운로드 하고 인스턴스 시작하자.

 

5. ssh 접속

인스턴스 세부 정보

인스턴스 세부 정보에 퍼블릭 IPv4 주소가 있다. 이걸로 ssh 접속을 해보자.

 

MobaXterm

내가 주로 쓰는 ssh 클라이언트인 MobaXterm 으로 접속을 했다. 

host 는 아까 위에서 본 IPv4 주소, username 은 기본값으로 ubuntu 로 설정되어있다.

그리고 다운받은 key 를 private key 에 넣어서 접속해보자

 

 

성공적으로 접속되었다.

 

+ Recent posts