이번 스프린트는 AWS를 사용하여 배포를 연습해봅니다!

이전부터 AWS에 관심이 많았었는데, 정말 좋은 기회같습니다...!

1년지나서 과금도 되기도 하고,,,무서웠지만, 새로운 계정으로 다시 시작해보겠습니다 :)


🎪 AWS

공식 홈페이지에서는 이렇게 설명합니다.

Amazon Web Services(AWS)는 전 세계적으로 분포한 데이터 센터에서 165개가 넘는 완벽한 기능의 서비스를 제공하는, 세계적으로 가장 포괄적이며, 널리 채택되고 있는 클라우드 플랫폼입니다.

쉽게 말해서 존재하는 클라우드 중에 짱이다...하하...👍🏻

그중 대표적인 S3, EC2, RDS에 대해서 알아보겠습니다.

🎖 S3

S3 (Simple Storage Service) 는 인터넷용 스토리지 서비스입니다.

웹 개발을 할 때, S3로 언제 어디서나 원하는 양의 데이터를 저장하고 검색할 수 있도록 해줍니다.

이후에 저희는 CRA로 build한 static한 파일을 S3로 업로드해볼 것입니다.

그 전에 용어를 몇 가지 먼저 알아겠습니다.

  • 버킷 : S3에 저장된 객체에 대한 컨테이너입니다. 모든 객체는 어떤 버킷에 포함됩니다.
    samdasoo 버킷에 water/samdasoo.jpg 객체를 저장하면 다음과 같은 URL이 생성됩니다.
    http://samdasoo.s3.amazonaws.com/water/samdasoo.jpg

  • 객체 : S3에 저장되는 기본 개체로서, 객체 데이터와 메타데이터로 구성됩니다.
    데이터 부분은 S3에서 볼 수 없습니다. 메타데이터는 객체를 설명하는 이름-값 페어의 집합입니다.
    여기에는 몇 가지 기본 메타데이터 및 콘텐츠 형식과 같은 표준 HTTP 메타데이터가 포함됩니다.
    객체는 키(이름) 및 버전 ID를 통해 버킷 내에서 고유하게 식별됩니다.

  • : 버킷 내 객체의 고유한 식별자입니다. 버킷 내 모든 객체는 정확히 하나의 키를 갖습니다.
    S3는 "버킷 + 키 + 버전"과 객체 자체 사이의 기본 데이터 맵으로 간주할 수 있습니다.
    예를 들어, http://samdasoo.s3.amazonaws.com/2019-08-23/AmazonS3.wsdl 에서,
    "samdasoo"버킷 이름이고, "2019-08-23/AmazonS3.wsdl"입니다.

  • 리전 : S3에서 사용자가 만드는 버킷을 저장할 리전을 선택할 수 있습니다.
    지연 시간 최적화, 비용 최소화, 규정 요구 사항 준수 등 다양한 필요에 따라 리전을 선택할 수 있습니다.
    특정 리전에 저장된 객체는 사용자가 명시적으로 객체를 다른 리전으로 전송하지 않는 한 해당 리전을 벗어나지 않습니다.
    예를 들어, 저희가 한국 리전에 저장한 객체는 해당 리전을 벗어나지 않습니다!

...복잡하네요. 이제 사용 방법을 알아봅시다! 🤧

1. 회원가입

https://aws.amazon.com/s3/ 로 가셔서 ... 가입합니다.

카드 등록이 조금 무서울 수 있지만, 저희는 무료 기간 1년동안 안전하게 사용할겁니다!

2. 버킷 생성

데이터를 Amazon S3에 저장하기 전에 버킷을 만들어야 합니다.

버킷을 만드는 것에는 요금이 발생하지 않습니다!

객체를 버킷에 저장하거나 객체를 버킷과 주고받은 경우에만 요금이 청구됩니다.

Free-tier기간이므로 큰 작업이 아니면 상관없어요!

버킷 이름은 중복될 수 없고, 변경할 수 없으니 신중하게 생성합니다!

3. 버킷에 객체 추가

버킷 목록에서 추가하고 싶은 버킷을 선택하고,

CRA등으로 Build하였던 정적 파일을 추가해줍니다.

객체 이동, 복사, 삭제 등은 간단하므로 생략합니다 :)


🎲 EC2

인스턴스는 AWS 클라우드의 가상 서버입니다.

EC2를 사용하여 인스턴스에서 실행되는 운영 체제와 애플리케이션을 설정, 구성합니다!

인스턴스 생성시 윈도우를 생성하면 윈도우, 리눅스를 생성하면 리눅스가 생성됩니다.

별 다를 것은 없으니 바로 시작해볼까요?

1. 인스턴스 시작

https://console.aws.amazon.com/ec2/ 에서 인스턴스를 생성합니다.

Amazon Machine Image(AMI)은 저는 우분투로 선택하겠습니다.(프리티어)

프리티어에선 별다른 설정을 하지 않고 검토 및 시작을 누르셔도 괜찮습니다.

키 페어를 생성하라는 창이 나오면 원하는 이름으로 생성합니다.

이 키는 계속 사용될 파일이므로 안전한 경로에 저장해둡니다.

이제 잠시 기다리면 인스턴스의 상태가 running으로 변경됩니다.

2. 연결

콘솔에서 인스턴스 시작 옆의 연결 버튼을 누르면, 아래와 같은 창이 나타납니다.

순서대로 진행하기 위해, 원하는 경로에 .ssh폴더를 생성합니다.

1번에서 생성한 키를 .ssh폴더로 옮기고 아래 안내에 따라 진행하면 됩니다.

image.png


🥁 RDS

RDS는 Amazon Relational Database Service(RDS), 즉 데이터베이스입니다.

RDS스는 클라우드에서 관계형 데이터베이스를 간편하게 설정, 운영 및 확장할 수 있습니다.

굳이, 로컬환경에서 DB를 관리하지 않는 이유는 개발 환경 설정이 각각 다르므로

제 PC의 DB에서 구동이 가능하다고, 다른 개발자의 PC에서 되리라 장담할 수 없습니다.

클라우드 데이터베이스를 사용하면 항상 동일한 환경의 DB를 구성할 수 있습니다.

그것 외엔 별 다른 점이 없으므로 바로 시작해 보겠습니다.

1. 데이터베이스 생성

Amazon Aurora는 프리티어에서 지원하지 않으므로 MySQL FreeTier를 선택합니다.

MySQL 버전은 원하시는 대로 선택하시면 됩니다. 저는 8.0.11로 설정하겠습니다.

식별자, 이름, 암호를 사용자에 맞게 구성합니다.

추가 구성에서 이번 프로젝트에서는 Public상태로 하여 개발에 편하게 사용합니다.

데이터베이스 이름까지 설정을 마치고 다음 단계로 진행합니다.