2020년 11월 23일 기록
속도 문제 때문에 AWS DynamoDB를 써볼까도 했지만, 마스크 이미지 처리는 s3로 할 것이고 그냥 관리자 앱과 웹에서 통계만 보여주기 위한 용도이기 때문에 속도가 크게 상관없을 것 같아 RDS를 쓰기로 결정했다.
템플릿에서 프리 티어를 선택한다.
DB 인스턴스 크기는 db.t2.micro 선택한다.
할당된 스토리지 20GiB
추가 연결 구성 누르고 퍼블릭 액세스 가능하게 설정해야 데이터베이스에 연결이 가능하다.
생성하면 5~10분 뒤 사용 가능으로 상태가 바뀐다.
cmd창에서 연결해본다.
C:\WINDOWS\system32>mysql -u '마스터사용자이름' --host '엔드포인트' -P '포트번호' -p
그대로 연결하면 아래와 같은 에러가 난다.
-> 검색해 보니 보안 그룹에 문제가 있어 발생하는 경우가 많다고 한다.
AWS RDS 데이터베이스에 설정된 보안 그룹을 찾아 들어가서 인바운드 규칙 편집-소스를 위치 무관으로 바꿔준다.
그리고 다시 cmd에서 연결해보면 잘 된다!
mysql> create database kf99 default character set UTF8;
Query OK, 1 row affected, 1 warning (0.20 sec)
mysql> use kf99;
Database changed
mysql> CREATE TABLE history (
-> `id` int(11) NOT NULL AUTO_INCREMENT,
-> `ispass` TINYINT(1) NOT NULL,
-> `visited` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
-> PRIMARY KEY(id)
-> );
Query OK, 0 rows affected, 2 warnings (0.21 sec)
실제로 insert 해보니 현재 시간이 UTC로 들어가서 한국 시간과 맞지 않는다!
mysql> set time_zone='Asia/Seoul';
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2020-11-23 13:41:22 |
+---------------------+
1 row in set (0.19 sec)
요렇게 하고 나니까 한국 시간으로 잘 들어간다.
def post_file(event, context):
c_type, c_data = parse_header(event['headers']['Content-Type'])
assert c_type == 'multipart/form-data'
form_data = parse_multipart(BytesIO(event['body'].decode('base64')), c_data)
맞는지 잘 모르겠다. 일단 기록
API Gateway를 구축할 때 multipart/form-data를 허용하도록 설정해주어야 하는 것 같다.