yoonyoung
2020년 11월 23일 기록
-
AWS RDS 생성하기
속도 문제 때문에 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)
요렇게 하고 나니까 한국 시간으로 잘 들어간다.
-
Multipart 데이터 람다에서 받기(python)
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를 허용?하도록 해주어야 하는 듯