클라우드/AWS

[ AWS ] AWS S3 , 정적 웹사이트 만들기

공쓰기 2022. 6. 10. 00:06

AWS 스토리지 버킷 만들고 이미지 업로드 / 정적 웹사이트 만들기

 

▶ 운영서버   

  • 테스트 목적이 나인 실제 사용자들을 대상으로 서비스 하는 서버
  • 환경구성 , 코드배포, 모니터링의 단계로 나뉨
  • 운영 서버 환경 구성하기 위해 AWS 사용

 

▶ AWS

  • 아마존에서 만든클라우드 서비스 플랫폼
  • 컴퓨팅 서버 뿐만 아니라 데이터베이스, 배포자동화, 모니터링 등 서비스 제공
  • 전세계에서 사용 가능

 

AWS 실습

  • 우리나라는 AWS의 비중이 거의 절대적인 수준   
  • 그외에는 MS Azure, GCP(Google Cloud), NCP(Naver Cloud) 등을 사용
  • 중국회사들이 Cloud를 많이 하고 있음 : 텐센트, 알리바바 등등 -----> 순위가 3등까지 올라옴
  • 네이버, KT에서 클라우드 회사를 설립(2022년)해서 본격적으로 시작

 

AWS 계정 로그인해보기

  •  AWS 로그인 사이트 :  aws.amazon.com/ko
  • 개별 AWS 사이트 :  지정한이름.signin.aws.amazon.com 
  • 로그인해서 검색창에 cost explorer 또는 billing을 입력하면 비용 내역이 나옴
  • 불필요한 서비스 또는 예전에 사용했던 서비스는 삭제합니다.

 


 

S3 : Simple Storage Service 

 

 

1. 검색창에 'S3'를 입력하고 S3를 클릭

 

 

 

2. 버킷 만들기

  • 파일을 인터넷을 통해 불특정 다수에게 공개하려면?   버킷도 퍼블릭, 객체(파일)도 퍼블릭으로 설정해야 함 (AND 조건)
  • 둘 중에 하나라도 퍼블릭으로 설정하지 않으면 인터넷으로 공유되지 않음

 

 

  • 만들어진 버킷 확인

 

 

3. 운영하려는 웹사이트의 이미지를 픽사베이에서 검색해서 다운로드 

  •  https://pixabay.com/
       ex) 탄산음료 이벤트, 해커 정보 사이트, 자연보호 캠페인, 한국으로 놀러오세요, 클라우드 컨설팅 등
            적당한 이미지를 골라서 680x480 정도의 크기로 다운로드 

 

 

 

4.  이미지 업로드

  •  Bucket일 때는 메뉴가 6개,  객체일 때는 메뉴가 3개

 

 

 

5. 웹사이트에서 이미지 확인

  •  Access Denied가 보이면 접근 권한이 없기 때문임
    -----> 버킷은 이미 퍼블릭이므로, 객체를 퍼블릭으로 해야 함

권한없어서 복붙하면 이렇게 나옴

 

 

▶ 객체 접근 방법

  1. S3 URI  :    S3://버킷이름/파일명                           // 버킷이름이 고유한 이름이기 때문에 가능  ----> CLI에서 사용
  2.  ARN (아마존 리소스 이름, Amazon Resource Name) 
        arn:aws:s3:::버킷이름/파일명                                 // json코드에서 사용
  3. 웹 URL경로 (웹 브라우저)
     https://entercloudman.s3.ap-northeast-2.amazonaws.com/polar.jpg
     https://버킷이름.s3.리전이름.amazonaws.com/파일명

- Amazon 리소스 이름(ARN) : Json 코딩시 사용

 

 

Quiz) S3 스토리지에 데이터를 얼마나 저장할 수 있을까요?
1) 1G
2) 1T
3) 10T
4) 무제한   -----> 종량제이기 때문에 저장을 많이 하면 할수록 돈을 지불하는 방식 (저장하는 양에 대해서는 제한이 없음)

 


Quiz) 계정당 Bucket을 만들 수 있는 개수는?   (Bucket은 별도 비용을 받지 않음)
1) 10개
2) 50개
3) 100개
4) 200개

 

 

 



S3를 이용해서 정적 웹사이트 만들기

  • 정적 웹사이트 : 누가 접속하더라도 동일한 페이지가 보이는 것
  • 이벤트 페이지(모집,프로모션 등), 광고, 공사중 페이지, 접속이 안될 때 사용하는 임시 페이지 등

 

1. html 파일 만들기

  • index.html파일을 작성해서 퍼블릭 읽기 권한을 부여하고 업로드 (업로드 하고 퍼블릭 읽기 권한 부여해도 됨)
  • index.html파일을 수정하려면?  (한글이 깨져보이는 문제를 해결)
    버킷에 업로드한 파일은 수정할 수 없음 -----> 객체스토리지 

 

<html>
<head>
<title>Artist </title>
</head>
<body>
<center>
<img src="https://ysartist.s3.ap-northeast-2.amazonaws.com/cat1.jpg">
<br>
<h1> Cat One, Two, Three</h1>
<h6> 1234-5678 </h6>
</center>
</body>
</html>

 

 

2. 버킷에 업로드

 

 

3. URL 확인

 

 

 

▶ 스토리지의 종류

  • 파일 스토리지 : 내 컴퓨터에 있는 것처럼 직접 수정이 가능, NAS와 비슷    ex) 파일 공유서버
  • 블록 스토리지 : 블록 단위로 분산해서 저장, SAN과 비슷   ex) dropbox, one drive 등  C드라이브, D드라이브 등 볼륨 제공
  • 객체 스토리지 : 파일을 업로드하면 수정할 수 없음, 지우고 다시 업로드 해야 함    ex) S3, Glacier, 웹하드 

 

▶ 한글 깨짐 방지

   <head>와 </head>사이에 아래와 같이 한줄 넣어주기
   <meta charset="utf-8">

 

 


 정적 웹사이트 만들기 + 한글깨짐 방지

 

1. html 작성
기존에 업로드한 index.html파일은 지우고, 수정된 index.html 파일을 업로드 합니다.  (객체 스토리지라서 지우고 다시 업로드해야 함)

 

https://entercloudman.s3.ap-northeast-2.amazonaws.com/index.html             // index.html의 파일명으로 접근한 것
http://entercloudman.s3-website.ap-northeast-2.amazonaws.com                  // 정적 웹사이트 주소로 접근한 것

 

 

2.  정적 웹사이트 만들기

  • 버킷을 퍼블릭으로 설정
  • index.html 파일 등을 업로드 하고 퍼블릭으로 설정
  • 앞서 만든 버킷의 속성에서 '정적 웹사이트' 활성화, index.html 파일 지정

 

 

3. URL 확인

 

 


 

▶ S3를 활용하는 방법 : 다른 곳보다 저장 비용이 저렴함

- 용량이 큰 컨텐츠를 보관 : mp4 등 동영상 
- 사용자 업로드한 파일을 저장 (게시판 등에서)
- 자주 사용하지 않는 파일등 보관
- 영원히 보관해야 할 파일     ex) 어릴적 사진, 백업 파일 등등

* 하나의 리전에는 Zone이 3개 이상 있음
  Zone은 가상의 데이터센터임(실제 데이터센터를 1개에서 6개까지 묶어서 하나의 가상 데이터센터를 구성함)


 S3 Storage Class  (다양한 요금제)
- Standard : 0.023 USD/GB,       $23/TB (1T에 3000원정도*12=36000원)    ------> 자주 액세스 하는 경우
- Standard-IA (Infrequent Access) :  0.0125 USD/GB       $12.5/TB  (15000원)   -----> 인출비용이 약간 발생, 비용은 Standard의 절반
- One Zone-IA : 0.011 USD/GB, 하나의 Zone에만 저장(가용성이 떨어짐)
- Glacier instant retrieval : 인출시간을 줄인 Glacier 0.005 USD/GB
- Glacier flexible retrieval (원래 Glacier) : Tape Storage 시장을 흡수하기 위한 서비스 (인출시간이 몇 분 ~ 몇 시간 정도)  0.0045 USD/GB
- Glacier Deep Archive : 0.002 USD/GB 

 Glacier에 저장하는 데이터는 어떤 것이 적합할까요?
- 주로 장기간 보관해야 하는 것들
    ex) 로그 파일 백업, 법적으로 의무보관해야 하는 경우(의료기록, 방문기록 등), 계약서, 방송사의 오래된 영상 등

* 처음에는 접근을 많이 함 : Standard,  시간이 지나면 안오게 됨 : Glacier flexible/instant retrieval에 저장
  -----> 수명주기(Lifecycle) 설정을 해놓으면 일정시간이 지나면 다른 클래스로 이동하게 할 수 있음

 S3 intelligent Tiering (지능적으로 티어를 이동하는 것)
- 30일동안 사용하지 않으면 Frequent Access Tier에서 Infrequent Access Tier로 이동하고, 
  90일동안 접속이 없으면 Archive Access Tier로 이동함
- 자동으로 이동하는 방식
- 접근이 발생하면 다시 Frequent Access Tier로 이동함
- 접근에 대한 예측이 어려운 경우 : 담당자가 초보인 경우, 기존에 정보가 별로 없는 경우 등

 Region & Zone
- Region(리전) : 특정 지역에서 클라우드 서비스를 하기 위한 단위       
   ex) 서울 리전(ap-northeast-2), 도쿄 리전(ap-northeast-1), 오하이오 리전, 버지니아 리전(AWS의 1st리전)
- Zone(가상의 데이터 센터) : 데이터센터 단위 (1개~6개까지의 데이터센터 묶음)
   ex) 서울 리전의 Zone의 이름 :  ap-northeast-2a, ap-northeast-2b, ap-northeast-2c, ap-northeast-2d 

 Cross Region Replication (리전간 복제, CRR)
- 다른 리전으로 데이터를 복사하는 것
- 특별한 경우가 아니면 할 필요 없음
- 대부분의 서비스는 리전 내에서 충분히 가능

 Same Region Replication (리전내 복제, SRR)
- 같은 리전의 다른 Zone으로 데이터를 복사하는 것
- 자동으로 지원됨  ex) S3 Standard, Glacier 등 대부분의 서비스는 리전내 다른 Zone에 자동으로 백업됨
- 항상 동작함
- 하나의 Zone에 문제가 생기더라도 다른 두개의 Zone에 저장된 데이터로 복구 가능, 최대 2개의 Zone이 고장나더라도 데이터는 보존됨

▶ 스토리지 요금

 

Amazon S3 Simple Storage Service 요금 - Amazon Web Services

S3 버킷 및 객체를 대상으로 수행한 요청에 대해 요금을 지불합니다. S3 요청 요금은 요청 유형을 기준으로 하며 아래 표와 같이 요청 수에 따라 요금이 부과됩니다. Amazon S3 콘솔을 사용하여 스토

aws.amazon.com

 

 

 스토리지 클래스 확인

 

 


보안 도구를 압축해서 약 2MB정도의 압축파일을 만들고, 수명주기정책을 적용해서 2주가 지나면 Glacier에 저장하도록 설정하기
    - 접두사를 jtr로 지정하면,  jtr_파일명.zip 형태로 지정됨  
    ex) FWLOG_

 

 접근 권한이 버킷소유자인지 라이터(writer, 파일생성자)인지에 따라 설정이 달라짐