[스파르타] AWS 1주차 리뷰

Amy·2021년 7월 24일
0

AWS 개발일지

목록 보기
1/1
post-thumbnail

스파르타코딩클럽 핵심 쏙쏙 AWS 1주차 개발환경 세팅


이번 주부터 밀리지 않고 수강한 강의를 차근차근 진도대로 듣고 다시 정리하기로 마음가짐을 다졌다.
본격적인 1주차 수업을 듣고 기억에 남은, 기억에 남아야 할 내용들을 간단히 정리해보록 한다.

이번주 목차

  • AWS란?
  • AWS를 잘 활용하려면
  • S3 파일 저장소
  • IAM을 이용한 파일 업로드
  • 프로그램 언어와 연동
  • S3 정적 호스팅
  • S3 비용 계산
  • 1주차 정리

지금부터 시작해본다.

01. AWS란?

클라우드 서비스이다.
클라우드? 기존 서버 컴퓨팅 시장을 빠르게 대체하는 산업.
예전과 비교해보면, 홈페이지를 구축하기 위해 외부와 통신을 위해 물리적인 서버가 필요하다. 개발을 위해 개발과 동떨어진 과정이 복잡하고 긴 시간동안 소요되어 필요하다.
-> 인프라 구축에만 한달 이상의 준비기간, 많은 비용 필요

현재는 AWS처럼 클릭 클릭 클릭만으로 쉽게 이용할 수 있다. 쓴 만큼만 비용을 내면 된다.

왜 배워야 하는가?
AWS 클라우드는 인프라 아키텍트 분야 직군으로 굉장히 필수적이고 핫한 분야임. 잘 알아두면 도움이 많이 될 것.

AWS
아마존에서 만든 서비스.
Amazon Web Service 의 약자.
굉장히 많은 서비스가 제공되고 있음.

02. AWS를 잘 활용하려면?

aws를 사용하는 회사들이 어떻게 사용하는지, 어떤 서비스를 사용하는지를 유심히 살펴보자.

활용 서비스
넷플릭스는 개발자에게는 세계에서 AWS를 가장 잘 쓰는 회사로 유명하다. AWS의 제품들을 사용한 경험들을 인터넷상에 많이 공개 하기로도 유명. AWS로 이사 가는 데만 7년이라는 시간이 걸렸기 때문에 충분한 노하우를 가지고 있음.
한국에서는 쿠팡, 배민, 당근마켓 등등 거의 모든 스타트업들이 AWS를 사용하고 있다. 이러한 곳에서 공개한 AWS관련 유즈케이스들을 학습해보는 것도 좋음.

넷플릭스 가이드 도큐먼트

https://aws.amazon.com/ko/solutions/case-studies/netflix/

넷플릭스의 글로벌 서비스
AWS는 여러 나라에 데이터 센터를 갖고 있다.
데이터 센터가 있는 나라를 리전이라고 하고, 리전 내의 데이터 센터 위치를 이라고 한다.

만약 서울에 데이터 센터가 영등포, 강남, 도봉에 위치하고 있으면 서울리전에 영등포 존, 강남 존, 도봉 존 이라고 불리어진다.

AWS의 모든 제품들은 기본적으로 어떤 리전과 존에 배치할지를 먼저 결정해야 한다.

리전과 존이 중요한 이유?
AWS 사용하여 인프라를 구성할때 서비스 하려는 지역의 리전과 존을 사용해야 한다. 한국에서 서비스 하려면 ap-northeast-2 리전을 사용한다.
넷플릭스는 전 세계를 상대로 하는 서비스이기 때문에 클라우드 서비스중에 리전이 가장 많은 AWS를 사용하는 것이다.

03. S3 파일 저장소

먼저 S3 가이드 도큐먼트 문서를 참고해본다.

버킷
파일 저장소 단위.
S3에서 파일을 저장하는 폴더라고 생각하면 된다.
컴퓨터의 폴더 안에 파일을 저장하는 것처럼 S3 안의 버킷을 나눠 파일을 저장한다.

버킷을 만들어본다.

버킷에 파일을 업로드 해본다.

객체 URL
S3에 업로드 되는 모든 파일에는 객체 URL이 부여된다.
해당 URL을 브라우저 주소창에서 호출하면 업로드된 파일이 보이고 이를 이용해 개발에 데이터들을 활용하는 것이 일반적이다.

하지만 파일에 권한을 퍼블릭 하게
주지 않았기 때문에 업로드 직후에는 AccessDenied 라는 에러가 보인다.


현재 객체 소유자 (나)만 객체를 읽는 것이 가능하고 객체 소유자(나)만 객체의 엑세스 제어 목록에 대한 읽기, 쓰기가 가능한 상태이다. 다른 모든 사람이나 인증된 사용자 그룹에게는 권한이 없다.

브라우저에서 이 객체의 url을 공유하고 싶다면 모든 사람에 대한 권한이 있어야 한다. 권한 편집을 위해 버킷의 권한을 먼저 수정해준 후에 객체의 권한을 수정할 수 있다.

정상적인 파일 업로드 성공!

04. IAM을 이용한 파일 업로드

IAM : Identity and Access Management.
AWS 리소스에 대한 액세스 관리.
간단히 사용자, 역할을 관리하는 서비스라고 생각하면 된다.
IAM 관련 도큐먼트 참고 문서를 먼저 보고 시작한다.

먼저 사용자를 추가해줬다.
이어서 파이썬과 연동하여 파일을 업로드 하기 위해 AWS SDK 를 설치하고 설정한다.

SDK는 Software Development Kit의 약자로
프로그래밍을 돕는 라이브러리라고 생각하시면 된다.
AWS SDK를 이용하시면 개발과 연동해서 AWS를 사용할 수 있음.

https://awscli.amazonaws.com/AWSCLIV2.pkg 를 통해 SDK를 다운받고,

aws --version

명령어를 터미널에 입력해서 설치를 확인한다.

aws configure

명령어를 터미널에 입력해서 설정을 해준다.


정상적으로 설정까지 완료되었다.
이제 업로드를 해본다.

aws s3 cp {파일명} s3://{버킷이름} --acl public-read

-> cli 명령어 중 aws 의 S3를 이용하겠다는 의미이고, 내 로컬의 파일을 s3로 복사한다는 명령어이다. 업로드할 파일이 있는 위치로 이동한 후 업로드할 파일 명을 적어주고 업로드할 버킷이름을 넣는다. 그리고 웹 브라우저에서 이 파일을 볼 수 있도록 하기 위해 --acl을 이용해서 모든 사용자에게 읽기 권한을 설정해준다.

IAM을 이용해서 접근할 수 있는 사용자를 등록했고, 그 사용자로 로컬 피씨에서 계정의 키를 가지고 터미널에서 cli 명령어를 이용해서 S3에 파일을 업로드할 수 있도록 했다. 웹 사이트에서 업로드하는 것이 아니라 cli 명령어를 이용해 조금 더 프로그래밍에 가깝게 이용한 것이 특징.

05. 프로그램 언어와 연동

조금 더 실무와 가까운 부분을 다뤄보는 시간.

파이참에 프로젝트를 하나 만들고,
app.py 와 index.html 을 수정한다.
파이썬과 AWS을 보편적으로 연동하기 위해서는 boto3 라이브러리를 import 해야 하기 때문에 설치해준다.

pip install boto3 


웹 페이지를 통해서 업로드한 파일이 정상적으로 업로드 된 것을 확인할 수 있었다.

06. S3 정적 호스팅

S3 기능에는 단순히 저장하는 기능 이외에 정적 웹 사이트 호스팅 기능이 있다. 이 기능을 이용해서 프론트 페이지를 구성해 본다. 버킷을 웹 사이트로 만든다고 생각하면 쉬움.

속성 > 정적 웹 호스팅 에서 활성화 설정

버킷의 엔드포인트를 복사해서 브라우저에 입력하면 403 에러가 뜨는데, 현재 index.html 파일이 없어서 나타나는 현상이다.
웹 페이지로 나타낼 index.html 파일을 버킷에 업로드하고 권한을 알맞게 수정해준 뒤 다시 실행해본다.

07. S3 비용 계산

비용을 얼마나 줄일 수 있느냐? 에 대한 이야기.
AWS를 쓰는 의미가 여기에 있을 것이다. 비용적 측면.

https://calculator.aws/#/createCalculator/S3 -> 예상 비용 측정

1주차 정리

☁️ AWS는 클라우드 서비스 중에 제일 잘나가는 서비스.

☁️ AWS가 제공하는 서비스들이 엄청 많기 때문에 잘 사용하기 위해서는 먼저 잘 사용하고 있는 회사들이 어떻게 사용하고 있는지 잘 봐야 한다.

☁️ S3는 파일을 저장하는 서비스.

☁️ IAM은 AWS의 내의 계정을 관리하는 서비스.

☁️ SDK는 AWS의 서비스를 좀 더 프로그래밍 하게 사용하게 해주는 라이브러리.

☁️ S3 의 정적 호스팅 기능을 이용하면 웹서버 없이도 정적 페이지를 웹 사이트로 만들 수 있다.

profile
serendipity :: 뜻 밖의 행운

0개의 댓글