ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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

    [출처 -https://www.inflearn.com/course/%ED%83%84%ED%83%84%ED%95%9C-%EB%B0%B1%EC%97%94%EB%93%9C-%EB%84%A4%EC%8A%A4%ED%8A%B8/dashboard]

    댓글

Designed by Tistory.