AWS S3 이미지 서버 사용하기 대작전
🤔 Problem
서버를 구동하는 vm 내부에 직접 이미지를 저장하면 크기와 용량에 따른 성능문제, 확장을 위해 다른 vm 을 추가로 사용했을때 문제가 발생할 것으로 예상된다.
맛이슈의 경우 레시피 공유 사이트이기에 굉장히 많은 이미지 저장과 read 요청이 있을 것으로 예상되기에 엘리스 1차프로젝트 때 사용했던 aws s3를 보완하여 사용해보기로 했다.
🌱 Solution
- AWS 프리티어 계정을 생성하고 버킷 생성을 생성한다.
- 상세 버킷 설정 권한 탭에서 퍼블릭엑세스, 버킷정책, acl, cors 설정을 해준다.
AWS IAM 계정 설정을 한다.
상세 iam 계정설정
IAM 권한설정 설정후 나온 ACCESSKEY 와 SECRETKEY 를 엑셀파일로 받아둔다.
- 코드에 aws 모듈을 추가한다.
- express 사용시 깃허브 코드 링크 🔗 express 와 multer를 사용한 미들웨어 multer 패키지와 aws-sdk 를 사용하여 미들웨어 생성
- next.js 사용시 깃허브 코드 링크 🔗 aws api 모듈 생성 🔗 프론트엔드 담당자 참고 위한 nextjs 컴포넌트 next.js 는 multer 를 지원하지 않기에 next/image 사용
1 2 3 4
NEXT_PUBLIC_KAKAO_API_KEY={OUR_KAKAO_KEY} NEXT_PUBLIC_AWS_ACCESS_KEY_ID={AWS_ACCESS_KEY} NEXT_PUBLIC_AWS_SECRET_ACCESS_KEY={AWS_SECRET_ACCESS_KEY} NEXT_PUBLIC_AWS_BUCKET_NAME={AWS_BUCKET_NAME}
aws-cli 를 배포 vm 에 설치한다.
상세
1 2 3 4 5 6 7 8 9 10 11 12
$ sudo apt update $ sudo apt-get install python3 python3-pip $ python3 --version $ pip3 –version $ pip install awscli --upgrade --user $ aws --version $ aws configure ## aws IAM ACCESSKEY, SECRETKEY 를 등록해야 업로드가 가능하다
📎 Related articles
이슈명 | 링크 |
---|---|
엘리스1차 프로젝트 당시 기록 | https://www.notion.so/aws-f3f5a4699a244164917190e1081a90ac?pvs=21 |
AWS 버킷 및 IAM 설정 | https://blog.pumpkin-raccoon.com/116 |
AWS CLI 설치 및 설정 | https://sunsson.tistory.com/1109 |
This post is licensed under CC BY 4.0 by the author.