[ AWS ] AWS S3 , 정적 웹사이트 만들기
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가 보이면 접근 권한이 없기 때문임
-----> 버킷은 이미 퍼블릭이므로, 객체를 퍼블릭으로 해야 함
▶ 객체 접근 방법
- S3 URI : S3://버킷이름/파일명 // 버킷이름이 고유한 이름이기 때문에 가능 ----> CLI에서 사용
- ARN (아마존 리소스 이름, Amazon Resource Name)
arn:aws:s3:::버킷이름/파일명 // json코드에서 사용 - 웹 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, 파일생성자)인지에 따라 설정이 달라짐