KOSA 클라우드 솔루션즈 아키텍트 양성과정

[6.16] 퍼블릭 클라우드(Route 53, S3, CloudFront)

굽이굽이 2022. 6. 16. 15:32

# Route 53

 

호스팅 영역 생성 클릭

 

도메인 네임 복사

 

도메인 주소 마지막의 . 만 지우고 붙여 넣고 소유자 인증하기(가비아)

 


# IAM(Identity & Access Management)

 

* S3fullaccess : 일반 사용자를 만든 후 S3 한 가지 서비스에 대한 권한 부여

-> readonly 같은 권한 등과 다르게 파일을 업로드 하고 지우는 등의 작업도 가능한 권한

 

사용자 추가하기

 

 

엑세스 키-프로그래밍 방식 엑세스 : s3-user 사용자는 웹 UI환경의 콘솔에 접근할 수 없고, CLI로만 작업할 수 있게 설정

 

* 그룹에 사용자 추가 : 그룹에 권한을 주고 해당 그룹에 사용자를 추가하는 방식

* 기존 정책 직접 연결 : 권한을 직접 부여하는 것 (실습환경에서는 s3fullaccess를 부여)

 

태그는 그대로 두고 다음으로 넘어가기

 

검토 단계 : 설정했던 내용들을 확인하고 사용자 만들기 클릭

 

csv 파일 다운로드하기


# s3-user 사용자를 이용해서 cmd에서 작업해보기

 

AWS CLI 다운로드

구글에 aws cli 검색 -> CLI설치 업데이트 및 제거 클릭 -> AWSCLI2.msi 파일 다운로드

 

aws --version으로 aws cli의 버전도 확인하고 잘 설치되었는지 확인해보기


# S3 버킷 만들기(추후 s3를 cloud front와 연동할 예정)

 

버킷 만들기 : 버킷의 이름은 고유해야 한다.

 

* 버킷의 이름은 나의 도메인으로 하는 것이 좋음

* seoul이 써 있는 sub-domain 자리에는 아무거나 넣어도 됨

 

* ACL 비활성화 됨 : 실수에 의한 데이터 오픈까지 봉쇄하는 폐쇄적인 방식 , 소유자만 사용할 수 있어서 다른 유저에게 파일을 공유하려고 해도 퍼블릭 엑세스 설정 자체를 불허함

 

* 모든 퍼블릭 엑세스 차단 : 실수로 누군가에게 파일을 오픈했을 때를 대비하여 모든 퍼블릭 엑세스 차단

-> ACL을 활성화 했지만 한 번 더 차단하는 보안 강화 옵션

* 모든 퍼블릭 엑세스를 차단하면 파일 공유 자체가 불가능

* 아래의 두 개 옵션만 체크해도 cloudfront 연동 가능

 

버전 관리 : 사본 같은 것들 미리 만들어 놓는 공간이 있고, 내가 실수로 파일을 지웠을 때 그것을 복원할 수 있도록 하는 것

 

누가 나의 데이터를 가져가도 쉽게 확인할 수 없도록 암호화

 

객체 잠금 활성화 하면 추후 객체 삭제 시 어려움을 겪을 수도 있음


# S3에 정적 웹 사이트 호스팅(호스팅된 웹 사이트를 cloud front와 연동할 것)

 

정적 웹 사이트 만들어서 cloud front 와 연동 계획


# AWS CLI 환경에서 파일을 업로드 하기

이 상태로 s3에 파일을 업로드 하고 읽는 등 작업을 할 수 있다면 문제가 생기니까, 로그인을 먼저 해야 함

 

* 로그인 하기 위해 aws configure를 실행

* AWS Access Key ID와 AWS Secret Access Key는 csv파일에서 가져오기

* Default region name : 현재 작업 중인 리전을 입력

* Default output format : 어떤 셋팅을 마치면 결과물이 나오는데, 결과물을 보여주는 포멧(json이나 xml 등)

* aws s3 ls : 버킷 이름이 출력됨

 

현재 CLI는 탐색창과 같은 경로에 있으므로 해당 r2com에 two-rabbit 파일과 index.html파일을 넣어줌

 

aws s3 cp two-rabbit.jpg s3://seoul.skk2022.shop/images/

* 버킷에 images라는 폴더를 만들지 않았더라도, 명령어에서 지정하면 해당 폴더를 만들면서 파일을 해당 폴더에 넣어줌

 

콘솔에서 images폴더와 그 안에 two-rabbit 파일이 업로드된 것 확인 가능

 

aws s3 cp index.html s3://seoul.skk2022.shop/, 버킷의 최상위 폴더(루트)에 index.html 파일도 업로드

 

aws s3 ls s3://seoul.skk2022.shop/, aws cli 환경에서도 파일들이 잘 올라갔는지 확인 가능

 

aws s3 ls s3://seoul.skk2022.shop/images/, 폴더 안에 two-rabbit.jpg 파일도 잘 올라갔는지 확인 가능

 

사용자 폴더에 backup이라는 폴더 만들고 안에 타르 파일들 넣기

 

aws s3 sync backup s3://seoul.skk2022.shop/backup/, 사용자 폴더에 있던 backup 폴더를 통채로 업로드

 

aws s3 ls s3://seoul.skk2022.shop/backup/, backup 폴더에 파일들이 잘 올라갔는지 확인

 

aws s3 rm s3://seoul.skk2022.shop/backup/alibaba.tar/, backup 폴더 안에 있는 alibaba.tar파일 삭제

 

aws s3 rm s3://seoul.skk2022.shop/backup/ --recursive, 폴더를 통으로 삭제 가능

 

notepad backup.bat, bat파일 만들기


# 작업 스케쥴러 : sync 명령어를 통해 주기적으로 파일들을 s3에 자동 백업 하고 싶을 때 사용

 

aws s3 sync C:\Users\r2com\backup s3://seoul.skk2022.shop/backup/, 사용자 폴더에 있는 내용을 s3 백업 폴더에 업로드

 

 

윈도우 작업 스케쥴러에서 작업 만들기 클릭

* 윈도우 작업 스케쥴러에 backup.bat파일을 등록하기, 작업 스케쥴러가 셋팅된 배치 파일을 주기적으로 실행시킴

  -> 매번 백업이 되는 것

 

일반 탭 설정

 

트리거 탭 : 트리거 새로 만들기

 

동작 탭 : 배치 파일 업로드 후 확인, 동작 탭까지 설정 후 확인 눌러서 나오기

 

작업 스케쥴러 라이브러리 -> 내가 만든 작업 우클릭 후 실행

 


# Route 53에서 레코드 만들기

 

그래도 접속 안 됨
s3 버킷에서 ACL을 사용하여 퍼블릭으로 설정 클릭

 

퍼블릭으로 설정 클릭, 동일한 방식으로 index.html 파일도 퍼블릭으로 설정

 

정적 웹사이트로 접속 성공

 


# ACM(AWS Certificate Manager)

 

Cerificate Manager

* Certificate Manager : 암호화나 보안이 안 되어 있으면 아무나 쉽게 데이터를 가져가고 열어볼 수 있지만, https를 사용하면 데이터를 가져가도 열어서 볼 수 없음

 

 

* : 도메인 네임 앞에 위치하는 서브 도메인은 다를 수 있으므로 와일드카드(*)를 입력

* DNS검증 : Route 53에 도메인 네임을 셋팅 해놓았기 때문에 거기에 도메인 네임에 대한 검증을 요청

 

인증서  ID 클릭 해서 Route 53에서 레코드 생성 클릭

 

위해 CNAME이 등록되면서 DNS 검증이 진행 됨

 

발급됨 나오면 인증서 발급된 것

* cloud front에는 인증서를 이용할 수 없음, 인증서는 해당 리전에서만 이용 가능

* cloud front는 글로벌 서비스로 버지니아 북부 리전에서 만든 것만 이용할 수 있음


 

# ALB만들고, 해당 ALB의 레코드 생성하기

ALB의 주소와 레코드 이름을 맵핑시키는 작업


# cloud front

상파울로와 서울 리전의 로딩 시간 차이

* 응답 시간의 차이를 줄이기 위해 cloud front가 필요

 

 

* 원본 도메인은 오리진을 어디로 할 것인지에 대한 선택

* OAI 사용 : cloud front 엣지 로케이션을 통해서만 상파울로 s3 버킷에 접근할 수 있도록 함, 직접 s3주소로 접속X

 

 

 

* AWS WAF(Web Application Firewall) : 웹으로 들어오는 트래픽에서 이상 징후를 감시해서 차단하는 장치

-> cloud front로 들어 오는 이상 트래픽을 차단할 수 있음

 

 

기본값 루트 객체 : cf.skk2022.shop으로 접속하는 엔드 유저들이, 뒤에 index.html을 입력 안 해도 볼 수 있게 함

 

배포된 도메인 이름으로도 접속할 수 있지만, 더 쉬운 주소로 만들어 주기 위해 레코드 생성하기

 

Route53에서 A레코드 생성해서 cf.skk2022.shop으로 접속가능하게 함

 

cf.skk2022.shop으로 접속 완료

 

cloud front를 이용하지 않았을 때와 이용했을 때의 접속 속도 차이


## 2차 프로젝트 시나리오

 

* 내 컴퓨터의 오픈스택에 있는 저장 공간을 AWS의 EFS에 마운트해서 하이브리드 클라우드를 구축

-> VPN, EFS, Route 53의 라우팅 기능을 이용할 것(DNS의 단순 라우팅 기능이 아닌 다른 라우팅 기법을 이용)

-> 라우팅 기법으로 alibaba, azure, gcp를 묶어서 멀티클라우드를 만듦으로써 가용성을 높임

* ESXI를 aws와 연동 시키는 하이브리드 클라우드도 구축

-> Storage gateway를 구축

* 하이브리드 클라우드는 AWS의 자원을 활용하는 데 포커스를 맞춰서 진행

* 퍼블릭 클라우드 4개와 프라이빗 클라우드 2개를 활용

* 발표 자세도 중요

* 프로젝트의 독창성은 평가하지 않을 것

* AWS, GCP, AZURE에서 서비스를 한 두개 정도 추가하는 것은 좋을 것

-> AWS에 원래 EFS만 셋팅하는 데 FSx를 쓰는 느낌은 가능, 배우지 않은 내용은 X(도커와 쿠버네티스, CI/CD 등 X)