본문 바로가기
AWS/AWS SimuLearn: Security Learning Plan

1 AWS SimuLearn: Cloud Computing Essentials

by secumark 2024. 12. 30.
728x90

안녕하세요!

 

오늘은 AWS SimuLearn 첫 번째 시간입니다. 제목은 Cloud Computing Essentials인데요,

 

 

SimuLearn은 고객이 원하는 최적의 서비스를 제공할 수 있도록 직접 선택하고, 실습까지 진행하는데요, Dr. Newton이 원하는 솔루션은 다음과 같습니다.

현재  해변가의 파도 크기를 예측하는 웹페이지가 있는데, 성수기 시즌 동안 많은 트래픽을 처리할 수 있고 성능 문제 없는, 서버가 다운되지 않는 신뢰할 수 있는 호스팅 솔루션이 필요하다고 합니다. 이런 파도 크기 예측은 매일 파일이 생성되고, 정보를 표 형식으로 읽고 표시까지 할 수 있는 HTML 파일을 저장하는 서비스까지 필요하다고 하는데요,자바스크립트와 CSS 파일도 있는데 상대적으로 파일 크기는 작습니다.

 

그럼 여기서 필요한 서비스는 무엇일까요? 바로 S3입니다. 

 

S3: 데이터를 저장하는 클라우드 기반 서비스, 저장 용량에 제한이 없음

 

 

 

클라우드 스토리지 | 웹 스토리지| Amazon Web Services

닫기 이 다이어그램은 데이터를 Amazon S3로 이동하고, 저장된 데이터를 관리하며, 다른 서비스로 데이터를 분석하는 방법을 보여줍니다. 왼쪽에서 오른쪽으로 세 개의 섹션이 표시됩니다. 첫 번

aws.amazon.com

 

1. Learn

 

HTML, JavaScript, CSS는 정적콘텐츠인데, S3가 정적 웹사이트 호스팅이나 파일 저장에 최적화되어 있습니다. 이때 Cloudfront도 함께 사용하면 빠른 컨텐츠 제공도 가능합니다. 트래픽이 급격하게 증가하더라도 가용성이 좋아 성능에 영향을 받지 않는다는 것입니다. 고객이 원하는대로, 매일 생성되는 데이터도 저장 가능합니다.

→ It provides a scalable and reliable storage service that can handle high traffic volumes. 확장도 가능하고, 신뢰 할 만함.

 

S3 쓰라고 했더니, 다음과 같이 답변이 돌아왔는데요,  웹페이지 호스트하고, 생성된 파일 저장하고, HTML, 자바스크립트, CSS 파일 제공하기 위해 S3 쓰는 걸 권유했는데 이 솔루션 찰떡인 거 같아~라고 칭찬(?)을 해주네요.

 

 

S3는 어떤 유형의 데이터도 저장할 수 있고, 언제 어디서든 원하는 양의 데이터를 불러올 수 있습니다. 여기서 잠깐 용어 정리를 해볼게요.

 

S3에서는 이런 파일, 그리고 해당 파일을 설명하는 메타데이터를 오브젝트(Object)라고 부릅니다. 그리고 이 오브젝트는 S3 버킷(Bucket)이라고 불리는 저장소에 저장됩니다.

 

정적 웹사이트를 호스팅하면서 비용도 매우 합리적이고, 웹 서버 모니터링 하거나 확장하는 등의 관리도 할 필요가 없습니다. HTML 파일, 그리고 Client Side 스크립트와 Style sheet 같은 웹페이지 기능 지원하는 파일도 모두 S3 버킷에 업로드를 할 수 있습니다. 그렇게 웹사이트 호스팅용으로 구성이 되면, 해당 버킷에 URL을 할당하고, 그 URL로 요청이 들어오면 S3는 버킷에 설정된 Root Object로 알려진 HTML 파일을 반환합니다.

 

 

여기서 Root Object란? static website의 기본 페이지 역할을 하는 파일입니다.

 

사람들이 S3 버킷이나 Object 등에 접근하려면 이런 접근 권한을 설정할 수 있는 Bucket Policy를 만들어야 합니다.(디폴트는 비공개 상태입니다.) 누가 접근할 수 있고, 어떤 종류의 작업을 수행할 수 있는지 정의되어 있고, 이 Bucket Policy는 JSON 형식으로 되어 있고요, JSON은 Human&Computer readable입니다.

 

 

 

2. Practice

 

Practice 단계, 본격적으로 실습할 수 있는 단계입니다. A to Z까지 세세하게 알려줘서 좋아요. 영어 공부는 덤.

 

* General purpose buckets = 범용 버킷

 

일단 S3로 가 볼게요.

 

website-bucket-으로 시작하는 범용버킷을 선택하면 다음과 같이 뜨는데요, Object가 5개네요, 정적 웹페이지를 보여줍니다.

 

 

객체의 이름을 바꾸려면 작업 → 객체 이름 바꾸기를 하면 됩니다.

 

 

 

작업 후에는 권한 > 퍼블릭 액세스 차단 (Block public access)에서 모든 퍼블릭 액세스 차단이 비활성되어 있는지까지 확인이 필요합니다.. HTML, CSS, JavaScript 같은 파일들로 구성된 간단한 웹사이트인 정적 웹페이지인데, 웹사이트에 접속하는 사람들은 이러한 파일들을 다운로드해 브라우저에 띄어야 하므로 퍼블릭 액세스 차단은 비활성화 되어야 합니다 (for static web hosting through your S3 bucket.)

 

버킷 정책도 한 번 봐주고요..

버킷 정책에 대한 간단한 설명

Effect: S3 버킷에 공개 액세스 허용

Principal: 누가 액세스 권한을 가지는지, "*"는 모든 사람이 해당됨

Action: 사용자들이 버킷 object에 대해 할 수 있는 작업을 정의함. GetObject는 데이터만 가져올 수 있다는 뜻

Resource: 특정 버킷에만 적용됨.

 

정적 웹 사이트 호스팅은 활성화해주고, 인덱스 문서와 오류 문서를 지정해줍니다.

 

 

작업이 모두 끝났다면 버킷 웹 사이트 엔드포인트의 주소를 복사해서, 새로운 브라우저에 붙여넣기를 해주면

 

 

다음과 같이 페이지가 노출됩니다.

 

3. DIY

이번엔 도움없이 직접 문제를 풀어보는 단계입니다. 미션은 인덱스 문서를 index.html을 waves.html로 rename 하라고 하네요. 저는 그냥 말 그대로 rename만 진행했더니

 

다음과 같이 404에러가 발생했습니다. 왜냐면..! 저는 지금 파일명만 변경을 해줬잖아요? 정적 웹사이트 호스팅 > 인덱스 문서에서 파일명 수정도 같이 해주셔야 해요.

 

 

수정 후 제가 지금 작업 중인 버킷 네임을 제출하면 미션 수행 완료입니다!

 

* 소요시간 약 1시간

728x90

댓글