개발을 파헤치다/서버 인프라(23)
-
AWS S3 Pre-Signed URL 초간단 사용 방법
보통 사용자가 S3 bucket에 접근해서 파일을 다운로드하거나 업로드하려면 3가지 방법이 가능합니다. public bucket으로 만들기 : 이렇게 구성하면 따로 관리할 필요 없이 모든 사용자가 S3 bucket에 파일을 올리거나 다운로드할 수 있습니다. 하지만 공개되서는 안 되는 파일에 대한 접근을 설정할 수 없다는 점이 단점입니다. IAM 자격증명 공유 : Access Key pari(access key, secret access key)를 설정해서 특정 사람만 저장소를 쓸 수 있게 제한하는 방법입니다. 하지만 관리가 힘들고 자격증명이 바뀌거나 유출될 경우 모든 사람에게 다시 key pair를 줘야 한다는 단점이 있습니다. IAM 사용자 역할 부여 : IAM을 통해 역할 권한을 부여합니다. 이렇게하..
2023.04.24 -
[AWS DynamoDB] PynamoDB로 DynamoDB에 테이블 생성하기
보통 Framework를 사용해서 DB를 모델링할 때 ORM(Object Relational Mapping)을 사용하는데요. 이렇게 하면 직접 데이터베이스 테이블을 생성하는 것보다 유지보수성이 좋습니다. 일단 클래스 형태로 DB 테이블을 관리할 수 있고, DB가 바뀌어도 ORM을 통해 구현된 비즈니스 로직은 수정할 필요가 없기 때문이죠. 그렇다면 DynamoDB를 사용할 때에도 이런 이점을 누릴 수 있을까요? 가능합니다. 여기에서 소개할 PynamoDB를 사용하면 말이죠. 이번 글에서는 PynamoDB를 활용해서 테이블을 생성하는 방법을 알아보겠습니다. 기본키에 대한 이해 키는 테이블 내에서 아이템들을 구분하는 역할을 하는데요. RDBMS에서의 키값과 DynamoDB에서의 키값은 의미가 약간 다르기때문에..
2023.04.17 -
AWS Cognito 사용 전 알아야 할 필수지식
AWS에서 제공하는 인증 관련 서비스입니다. 기존에 서비스를 기획하고 개발하게 되면 백엔드 쪽에서 가장 먼저 고려하게 되는 것이 바로 사용자 인증에 관련된 부분입니다. 이는 DB 설계를 어떻게 하느냐에 따라, 서비스의 특성에 따라 달라지는데요. 요즘에는 Framework에서도 인증 관련된 다양한 기능을 지원해줘 개발하기가 훨씬 수월하지만 여전히 인증관련된 부분은 개발 및 관리에 많은 리소스가 들게 됩니다. 이러한 문제들을 좀 더 편리하고 생산성을 높일 수 있게 해 주기 위해 등장한 서비스가 바로 AWS Cognito입니다. Cognito는 웹과 모바일 앱에 대한 인증과 권한 부여 및 사용자 관리를 제공합니다. 사용자 입장에서는 이름과 패스워드를 사용하여 직접 로그인하거나 Facebook, Google과 ..
2023.04.13 -
[AWS 활용하기] AWS SAM(Serverless Application Model) 로컬 디버깅 환경 구축하기
AWS SAM은 특별히 서버를 관리하지 않아도 되기 때문에 굉장히 편리합니다. 하지만 API 로직을 개발할 때 테스트 및 디버그가 상당히 곤란한데요. 이런 부분을 보완하기 위해 AWS에서는 Toolkit이라는 플러그인을 지원합니다. Jetbrain사의 IDE 대부분을 지원하니 플러그인을 찾아 설치만 하면 됩니다. AWS Toolkit은 SAM 어플리케이션을 로컬 환경에서 테스트 및 디버깅할 수 있도록 도와줍니다. 이를 위해 내부적으로 Docker를 사용하는데요. 그래서 Docker가 필수적으로 설치가 되어있어야 합니다. https://docs.docker.com/desktop/install/mac-install/ 위 링크를 통해 Docker Desktop을 설치해 줍니다. Docker를 통해 SAM의 t..
2023.04.12 -
[AWS] DynamoDB 시작하기 전에 반드시 알아야 할 것들
AWS는 백엔드 개발자가 해야하는 수 많은 일들을 줄여줬습니다. 일단 백엔드 개발을 한다고하면 웹 서버, DB 등 신경써야 할 것들이 정말 많죠. 이런 기본적인 세팅 뿐만 아니라 운영/관리, 더 나아가 서비스 규모가 점점 커질 때의 대응까지 할 수 있도록 만들어져 스타트업에게는 더할나위 없이 좋은 선택지입니다. 오늘은 AWS DynamoDB에 대해서 알아볼텐데요. 사용하기 전에 알아야 할 기본개념과 특징에 대해서 얘기해볼 예정이니 DynamoDB를 고려하고 있다면 분명 도움이 될 것입니다. DynamoDB? AWS에서 제공하는 고성능 NoSQL 데이터베이스입니다. NoSQL은 기존 RDBMS와는 다르게 비정형 데이터(형식이 딱히 정해지지 않은 데이터)를 저장할 수 있는 데이터베이스입니다. NoSQL 데이..
2023.04.10 -
워드프레스 사용시 502 Bad Gateway 문제 발생했을 때 해결방법
먼저 502 Bad Gateway 에러가 언제 발생하는지 파악하는 것이 좋습니다. 이 에러는 특히 Nginx와 php-fpm 조합에서 흔히 발생하는 에러로 알려져 있는데요. php-fpm에서 처리해야 하는 자료 중에서 굉장히 크기가 큰 요청을 처리하는 경우 서버 반응속도가 느려서 php-fpm으로 요청이 전달되는 와중에 서버에서 긴 시간을 요구하는 경우 이렇게 원인을 찾아볼 수 있습니다. 정확이 어떤 에러가 발생하는지 파악하기 위해 먼저 nginx의 error log를 보는 게 좋겠죠. putty로 aws의 bitnami 인스턴스에 접속한 뒤 아래 명령어를 통해 로그를 확인합니다. cd /opt/bitnami/nginx/logs sudo tail ./error.log 2022/05/10 10:33:39 ..
2022.05.10