-
AWS 클라우드 컴퓨팅 & S3 구축Infra/클라우드 2022. 7. 31. 18:06
Amazon S3
서버 컴퓨터를 임대를 해서 그 컴퓨터에 만들어진 API를 열 수 있도록 하면 전세계에 있는 모든 사람들이 해당 API를 사용할 수 있도록 된다.
S3
s3라는 디스크를 사용해서, cloud storage에다가 이미지를 저장한다. 즉 S3는 Storage이다.
버킷 정책 예제
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AddCannedAcl", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ] }, "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "Condition": { "StringEquals": { "s3:x-amz-acl": [ "public-read" ] } } } ] }
버킷 정책 작성하기
AWS_S3_ACCESS_KEY 와 AWS_S3_SECRET_KEY는 S3즉 AWS에 접근할 수 있는 KEY다. 이 KEY를 사용해서 access한 다음에 BUCKET_NAME과 REGION을 통해서 S3에 접근을 해서 S3라는 storage에 이미지,mp4,mp3 파일 등등을 저장할 수 있다. Database에는 S3에 대한 경로가 존재한다. Database에서 받을 때는 그 경로를 받아오면 그 경로를 통해서 프론트에서 S3를 이용해서 이미지를 서빙할 수 있다.
백엔드 Database에는 실제 file들이 저장되어있는 원격의 클라우드의 경로가 들어가 있고, 프론트에서 특정 file을 가져올 때 백엔드에서 보내준 원격의 클라우드의 경로 정보를 이용해서, 클라우드로 부터 file을 가져올 수 있게 되는 것이다.
S3즉 원격의 storage에 image가 저장여부를 나타내는 화면이다.
Multer와 S3를 연동
=> 프론트에서 image를 올리면 백엔드에 연결되 서버의 폴더로 가는 것이 아니라 image가 바로 AWS의 S3로 가도록 설정을 한다.
AWS S3를 위한 env설정
AWS_S3_ACCESS_KEY - access key ID
AWS_S3_SECRET_KEY - 보안 access key
AWS_S3_REGION - 생성한 S3 지역
AWS_S3_BUCKET_NAME - 생성한 S3 이름
KEY를 사용해서 AWS_S3에 접근 할 수 있다. 그 다음 region과 bucket_name을 통해서 특정 S3(storage)에 접근해 imge,mp4 file등을 저장할 수 있는 것이다.그리고 백엔드 server의 DB에는 S3에 대한 경로를 저장하고, 해당 file에 대한 Request가 오면 저장한 경로를 Response 함으로써 프론트에서 S3에 저장된 file을 불러 올 수 있는 것이다.
버킷의 upload 내역 확인
upload된 file은 객체 형태로 저장되게 될 것이다.
Amazon S3, Amazon Lightsail
'Infra > 클라우드' 카테고리의 다른 글
AWS - CLI 설치 및 간단히 사용해 보기 (0) 2023.08.05 AWS - ROOT사용자 MFA적용하기, IAM admin사용자 추가 (0) 2022.12.24 AWS - Global Infrastructure Component 간략 설명 (0) 2022.12.24 AWS-SDK를 사용하여 S3에 업로드 (0) 2022.08.01 클라우드 컴퓨팅 설정 - 리눅스 설치 (0) 2022.04.30