https://simtongs.tistory.com/15
클라우드 컴퓨팅 이해
1. 클라우드 1.1 클라우드 컴퓨팅의 정의 - 클라우드 컴퓨팅은 컴퓨팅, 스토리지, 플랫폼, 어플리케이션, 네트워크 등의 IT 자원들을 사용자가 소유하지 않고 통신망/인터넷을 통해 제공하고 소
simtongs.tistory.com
이전 글인 클라우드 컴퓨팅 이론으로 이해를 마쳤다면
AWS의 Amazon S3 기능으로 버킷을 만든후 객체로 사진파일 및 html 파일을 올려 간단한 객체 구조를 이해해 본다.
AWS의 계정이 필요한 실습임을 서두에 알리고 시작한다.
1. Amazon S3 이란?
- AWS의 객체 스토리지 서비스로 Amazon의 서버의 스토리지를 빌려 이를 어디서든 액세스 하여 사용할 수 있는 기능
- S3는 Simple Storage Service를 의미한다.
1.1 Amazon S3 서비스로 이동
AWS 메인 페이지에서 상단에 있는 검색 탭에서 'S3' 으로 검색한후 S3 페이지로 이동한다.
1.2 Amazon S3 에서 버킷 만들기
Amazon S3으로 이동 했다면 좌측 또는 하단의 흰색 박스에서 버킷 만들기 박스를 클릭한다.
1.2.1 일반 구성 설정
버킷 만들기 페이지로 이동 후 일반 구성 탭을 채워 간다.
버킷 이름은 자기가 원하는 이름으로 지정해주면 되는데 이때 버킷 이름은 아래의 규칙에 의해 제한된다.
https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html
Bucket naming rules - Amazon Simple Storage Service
Before March 1, 2018, buckets created in the US East (N. Virginia) Region could have names that were up to 255 characters long and included uppercase letters and underscores. Beginning March 1, 2018, new buckets in US East (N. Virginia) must conform to the
docs.aws.amazon.com
여기서 기억할만한 중요 규칙 몇가지를 정리해보면
- 대문자는 버킷이름으로 사용할 수 없다.
- 버킷 이름으로는 소문자, 숫자, 점( . ) 및 하이픈 ( - ) 으로만 구성해야한다.
AWS 리전의 경우 AWS 서버의 위치를 정하는 것으로 현재 자신의 위치에서 가까운 곳이나
서비스가 이루어 지는 환경 등을 고려하여 선택하면 된다.
1.2.2 객체 소유권 설정
객체 소유권의 경우 ACL 활성화로 체크 후
밑의 객체 소유권은 객체 라이터로 변경한다.
1.2.3 버킷의 퍼블릭 액세스 차단 설정
S3 서비스로 버킷을 만들고 버킷의 객체에 퍼블릭으로 접근할 수 있는지를 설정해야 한다.
모든 퍼블릭 액세스 차단을 체크 해제한 후
밑의 경고사항을 읽고 체크한다.
1.2.4 이후의 버킷 설정들
이후 하단에 있는 버킷 버전 관리, 태그 및 기본 암호화는 기본 설정을 따른다.
이렇게 위에서 모든 설정을 마쳤다면 하단의 버킷 만들기 버튼으로 버킷 생성을 완료한다.
1.3 버킷 생성 확인하기
버킷을 생성했으므로 이를 확인해 보자.
좌측 상단의 Amazon S3 탭에서 버킷 항목을 클릭한다.
버킷 항목으로 들어가면 아래와 같이 생성했던 버킷들을 확인할 수 있다.
여기서 자신이 만들었던 버킷 이름으로 된 버킷을 클릭하여 들어가면 아래와 같이 상세 정보를 확인할 수 있다.
1.4 버킷에 이미지 업로드
위의 화면에서 주황색으로 표시되는 업로드 버튼을 누르면 아래와 같은 업로드 창으로 넘어간다.
간단한 실습 이므로 자신이 원하는 아무 사진이나 업로드를 해본다.
업로드가 정상적으로 되었다면 위와 같은 화면을 볼 수 있다.
자신의 버킷 화면으로 돌아와서 확인해 보면 이미지 파일인 하나의 객체가 추가된 것을 확인할 수 있다.
클릭하여 속성을 확인해본다.
버킷 안의 객체의 개요에서 많은 정보를 확인 할 수 있고
빨간 박스 안에서 객체 URL 또한 얻을 수 있다.
하지만 위의 URL로 접속해 보면 Access Dnied 즉, 접근 권한이 없는 것을 확인할 수 있다.
1.5 버킷의 객체 설정
이미지를 업로드 했으나 퍼블릭으로 접근이 불가능한 상태 이므로 이를 수정해 줘야 한다.
객체 화면에서 상단의 권한을 클릭하여 권한 페이지로 이동 후,
우측의 편집 버튼을 눌러 액세스 제어 목록 편집을 설정한다.
이후 퍼블릭 액세스를 객체에 체크 설정 하여 읽기 상태로 바꿔주고
밑에서 경고를 읽고 이해함에 체크를 한다.
액세스 제어 설정이 완료되었으면 최하단 좌측의 변경 사항 저장 버튼으로 설정을 마친다.
액세스 제어 목록 편집이 완료되었다는 메세지가 녹색으로 상단에 표시가 되게 되고
다시 객체 URL로 넘어가면 아래와 같이 퍼블릭으로 객체에 접근할 수 있게 된다.
다시 객체의 권한 탭으로 넘가서 확인해 보면 액세스 제어 목록에서 모든사람이 내가 올린 객체에 대해
읽기 권한이 부여 되어있음을 확인할 수 있다.
2. 웹페이지 업로드
- 간단한 html 파일을 통해 외부에서 접근할 수 있는 웹페이지를 업로드 해보자.
2.1 html 파일 제작
- 위에서 이미지 업로드로 생성한 URL을 이용해 올린 이미지를 사용하는 웹페이지를 제작해 본다.
- index.html 제작
<html>
<head>
<title>Hello World!!!</title>
</head>
<body>
<center>
<img src="https://hk-bucket-000.s3.ap-northeast-1.amazonaws.com/automobile-gd99f0e21c_640.jpg">
<br>
<h1>This is Mustang~!!!</h1>
<br>
<h6>Made By SimTongs HK</h6>
</center>
</body>
</html>
위와 같은 코드로 index.html 파일을 제작한다.
필자와 같이 똑같이 할 필요가 없고 자신이 올린 이미지에 따라 원하는 문구를 넣어 보자.
head 안의 title 안에 자신이 원하는 페이지 제목을 입력하고
body 안의 img 주소는 위 실습에서 버킷에 업로드한 자신의 사진의 객체 URL을 입력하면 된다.
따라하기 힘들 경우 첨부파일을 받아 메모장으로 열어 수정하면 된다.
2.2 html 파일 업로드
- index.html 파일 제작이 끝났으면 위에서 실습한 대로 객체로 올려 퍼블릭으로 접근이 가능하게 설정해 보자.
위 실습에서 제작한 버킷 페이지로 이동한 후 업로드 버튼을 클릭한다.
업로드 페이지로 이동한 후 파일 추가 버튼으로 제작한 index.html 파일을 업로드 한다.
index.html 파일 업로드를 확인했다면 이후 하단의 업로드 버튼으로 객체 업로드를 완료한다.
2.3 객체 권한 설정
자신의 버킷 페이지에서 업로드한 index.html 객체 페이지로 이동한 후 권한 설정으로 넘어가 편집 버튼을 클릭한다.
ACL ( 액세스 제어 목록 ) 에서 모든 사람 ( 퍼블릭 액세스 ) 설정에서 객체의 읽기 항목을 체크 한 후
하단의 경고를 읽고 이해함에 체크한다.
권한 설정이 완료 되었으면 다시 속성 탭으로 돌아와 객체 URL로 접근하면
자신이 만든 정적 웹페이지가 정상적으로 뜨게 된다.
3. 정적 웹사이트 제작하기
- 위에서 실습한 웹페이지를 수정할 일이 생겼다고 가정해 보자
하지만 버킷에 업로드한 파일은 수정할 수 없고 변경할 사항을 적용하려면 원본을 지우고
새 원본을 다시 업로드해야 하는 번거로움이 생긴다.
- 이는 스토리지의 종류에 따라 특성이 다른점에 착안한다.
3.1 스토리지의 종류
1) 파일 스토리지
- 자신의 컴퓨터에 있는 것처럼 직접 수정이 가능한 스토리지 ( NAS 와 비슷한 형태 )
- ex) 파일 공유 서버
2) 블록 스토리지
- 블록 단위로 데이터를 분산해서 저장하는 스토리지 ( SAN 과 비슷한 형태 )
- ex) dropbox, one drive -> C드라이브나 D드라이브 등 볼륨을 제공
3) 객체 스토리지
- 파일을 업로드하면 수정할 수 없고 지우고 다시 업로드 해야 한다.
- ex) Amazon S3, Glacier
따라서 현재 실습 환경인 Amazon S3는 객체 스토리지이므로 위와 같은 번거로움이 생기는 원인이 된다.
3.2 정적 웹사이트 제작
위의 실습 과정을 따라왔다고 가정하고 현재 버킷의 속성을 변경하면 쉽게 제작이 가능하다.
만들었던 버킷 화면에서 속성 탭으로 이동한다.
속성 화면에서 최하단의 정적 웹 사이트 호스팅의 편집 버튼 클릭
초기 값은 비활성화로 되어있는데 이를 활성화에 체크하여 변경한다.
이후 추가되는 설정에 대해서는 하단의 인덱스 문서에 업로드 했던 index.html 을 입력한다.
인덱스 문서 설정을 완료했으면 최하단의 변경사항저장 버튼을 눌러 편집을 완료한다.
정상적으로 편집을 완료했으면 상단에 편집 완료 메세지가 뜨며
최하단의 정적 웹 사이트 호스팅에 버킷 웹 사이트 엔드 포인트 URL이 나타나게 된다.
2번 실습과 다른점은 기존에 업로드한 index.html의 파일명으로 접근하는것이 아닌
Amazon 정적 웹사이트 기능을 이용해 사이트 주소로 접근했다는 차이점을 확인할 수 있다.
4. Amazon S3 을 활용하는 방법
- S3의 장점은 다른 스토리지 서비스 보다 저장 비용이 저렴하다는 점이다.
- 용량이 큰 컨텐츠를 보관 ( mp4나 mkv 같은 동영상 파일 등 )
- 사용자의 업로드한 파일을 저장 ( 게시판 등에서 활용 )
- 자주 사용하지 않는 파일을 보관할때
- 영원히 보관해야 할 파일 ( 어릴적 사진이나 각종 백업파일 등 )
4.1 Amazon S3 Storage Class
S3 에서는 액세스 빈도에 따라 다양한 요금제로 사용할 수 있다.
각종 스토리지 클래스 종류를 보기 위해 위의 실습에서 제작했던 객체 페이지로 이동한다.
속성페이지로 이동했다면 하단에서 스토리지 클래스 항목을 찾아 편집 버튼을 누른다.
위와 같이 스토리지 클래스 편집 항목에서 다양한 스토리지 클래스를 확인해 볼수 있다.
버킷에 객체를 올릴경우 처음에는 접근을 많이 하므로 Standard 에서
시간이 지날수록 접근이 낮아져 Glacier 쪽으로 변경된다.
특히 Glacier 같은 경우는 아래와 같은 데이터가 주로 저장된다.
- 주로 장기간 보관해야 하는 데이터들
ex) 로그 파일 백업, 법적으로 의무 보관해야 하는 기록들 ( 의료기록, 방문기록 등 )
4.2 Amazon S3 객체에 수명주기정책 적용하기
이때 S3 사용자들은 객체에 수명주기 ( Lifecycle ) 설정을 해놓으면 일정시간이 지난 객체는
다른 스토리지 클래스로 변경되게 할 수 있다.
자신의 버킷 페이지에서 관리 탭으로 이동한 후 수명 주기 규칙 생성 버튼을 누른다.
수명 주기 규칙 이름은 구분 하기 위해 자신만의 규칙대로 이름을 입력하면 된다.
규칙 범위 선택에서는 모든 객체로 할것인지 아니면 밑의 접두사를 통해 특정 객체에만 적용할 것인지 결정할 수 있다.
접두사 입력란에는 적용할 객체의 이름을 적으면 된다.
하단을 보면 수명 주기 규칙 작업에서 자신이 원하는 작업을 선택할 수 있다.
영구 삭제의 경우 경과 일수와 보관할 새 버전 수를 정할 수 있다.
생명 주기 규칙 생성이 완료되면 위와 같이 표시됨을 볼수 있다.
'클라우드 > 클라우드 실습 - AWS' 카테고리의 다른 글
AWS - CloudFormation (0) | 2022.06.21 |
---|---|
AWS - RDS (0) | 2022.06.17 |
AWS - EC2 #3 ( 인스턴스와 SSH, PuTTY, RDP 연결 ) (0) | 2022.06.17 |
AWS - EC2 #2 ( Gnuboard5를 이용한 웹 서버 운용 ) (0) | 2022.06.14 |
AWS - EC2 #1 ( VPC 설정, 인스턴스 생성 및 SSH 연결 ) (0) | 2022.06.13 |