Public Cloud/AWS

AWS 실습 9 - S3

서머스 2022. 6. 16. 15:24

호스팅 영역 생성하기

Route53 검색해서 들어간다 - 호스팅 영역 메뉴 - [호스팅 영역 생성] 클릭

 

외부에서 들어올 수 있도록 [퍼블릭 호스팅 영역]을 선택한다.

 

그러면 네임 서버 4개가 생성된다.

 

이를 가비아 사이트의 [네임 서버 설정] 에 붙여 넣는다.

도메인 맨 끝 . 은 루트를 의미한다. 값을 옮길 때는 제거한다.

 

 

S3 사용자 만들기

S3에 관련된 full access를 가진 사용자를 만든다, admin과는 다르다.

 

IAM에 들어가서 - 사용자 메뉴 - [사용자 추가] 들어간다.

 

[엑세스 키 - 프로그래밍 방식 액세스] 체크 - S3-user는 웹 ui에 접근할 필요 없이, CLI 방식으로 사용할 수 있다

 

 

[기존 정책 직접 연결] - S3 full Access를 검색해서 선택한다.

 

- 이렇게 사용자 파일을 만든다.

 

 

[.csv 다운로드] 를 눌러 credential 파일을 다운로드 받는다.

 

파일을 열면 이렇다

 

https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html

 

최신 버전의 AWS CLI 설치 또는 업데이트 - AWS Command Line Interface

설치 관리자의 아무 위치에서나 Cmd+L을 눌러 설치에 대한 디버그 로그를 볼 수 있습니다. 이렇게 하면 로그를 필터링하고 저장할 수 있는 로그 창이 열립니다. 로그 파일도 /var/log/install.log에 자

docs.aws.amazon.com

최신 버전의 CLI를 다운로드 받는다

 

 

설치가 완료되면, 설치가 잘 되었는지 확인하기 위해 aws --version을 입력해 본다.

 

 

S3 버킷 만들기

[버킷 만들기] 클릭

 

 [ACL 활성화됨] 체크 - ACL를 활성화해야 파일을 공유할 수 있다

 

[모든 퍼블릭 액세스 차단]을 체크 해제하고, 마지막 두개만 체크한다. - 웹사이트 구축을 위해 필요

파일 백업을 위해 체크한다.

서버 측 암호화 - 활성화 하고, [버킷 만들기] 한다.

 

만들어진 버킷을 클릭한다.

 

[속성] 탭에서 가장 밑에 있는 정적 웹 사이트 호스팅 - [편집] 에 들어간다

 

[변경사항 저장] 클릭

 

크레덴셜 에러가 난다. 자격 증명이 안 된 것이다.

로그인 작업이 필요하다.

 

써 있는 것과 같이, aws configure를 입력한다.

 

그러면 S3에 접근할 수 있다.

 

 

파일을 올려 본다.

 

사용자 디렉터리에 원하는 파일을 옮겨 둔다.

 

S3에 images폴더가 없지만, cp명령어로 업로드 시키면서, images폴더를 만든다.

이미지가 업로드 된 모습

같은 방식으로 index.html도 업로드 한다.

images 폴더 내의 파일을 보려면 끝에 꼭 /를 붙여야 한다.

 

그 디음 사용자 디렉터리에 backup 폴더를 만든다.

sync 명령어를 이용해 폴더 통째로 업로드 할 수도 있다.

매일 같은 시간에 주기적으로 파일을 올리도록 할 때도 sync를 사용한다.

 

rm을 이용해 파일 삭제도 가능하다.

폴더를 삭제하려면 옵션에 --recursive를 입력해야 한다.

 

배치파일을 만들어 본다.

 

그 전에, 미리 실행해 본다. 

잘 실행되는 것을 확인할 수 있다.

 

 

다시 지운 뒤, 배치 파일을 실행시키도록 한다.

윈도우의 스케쥴러에서 등록시켜, 이 배치파일이 특정 시간에 실행될 수 있도록 한다.

 

 

하단의 [가장 높은 수준의 권한으로 실행] 에 체크한다.

 

좌 : 트리거 탭 - 새로 만들기  / 우 : 동작 탭 - 새로 만들기 해서 배치파일을 지정한다.

 

그러면 바로 실행된다.

 

백업 폴더에 추가되었다.

 

 

다시 Route53으로 가서, [레코드 생성] 클릭

 

S3에서 지정했던 버킷 이름인 seoul 입력한다. 

[레코드 생성] 클릭

 

다시 S3로 가서 - 이미지 내 이미지와 index.html에 권한을 퍼블릭으로 준다.(이걸 하지 않으면 403 forbidden이 뜬다.)

 

 

인증서 만들기

acm 검색

 

 

[요청] 클릭

 

새로고침 하면 인증서가 보인다.

인증서 ID를 클릭한다.

 

이 정보를 검증할 수 있도록 Route53에 레코드를 생성한다.

 

그러면 Route53에 CNAME이 생성된 것을 볼 수 있다.

 

 

인스턴스 만들기

ec2로 들어가서 [인스턴스 시작] 클릭한다.

 

아까 S3의 backup에 올린 food.tar파일을 이용하여 홈페이지를 꾸며본다.

 

그 전에, S3로 돌아가서 food.tar 파일의 접근 권한을 변경한다.

우측 하단의 객체 URL을 복사한다.

 

그리고 이 링크를 wget으로 다운로드 받도록 한다.

 

인스턴스 생성 후 public IP로 접속하면

화면이 뜬다. 

하지만 이 인스턴스를 http를 이용할 수 없다.

??

ELB 를 이용한다.

이번에 만드는 ELB는 부하분산이 아닌,  방금 만든 인스턴스를 ACL에서 만든 인증서를 이용해서 https로 붙을 수 있도록 하는 용도이다.

 

퍼블릭 영역으로 바꿔야 한다.

 

 

프로토콜을 HTTP'S'로 바꾼다.

[대상 그룹 생성] 클릭

 

대상 그룹에서는 프로토콜을 HTTP로 설정해야 한다.

webserver 인스턴스를 체크하고, [아래에 보류 중인 것으로 포함] 클릭 후 대상 그룹을 생성한다.

EC2- 보안그룹으로 간다.

아까 webserver를 만들때 이용했던 SG-ALB를 보면, 인바운드 규칙에 HTTPS가 없다.

규칙 추가해준다.

 

 

도메인과 관련된 ACM을 통해서 인증서를 만든다?

뭔소리야

로드 밸런서의 DNS 이름으로 접근해본다.

이 도메인을 쓸 수는 없다(접속 안됨) -http로 접근한 것이기 때문에

앞에 https를 붙여서 접속해 보자.

인증서가 없는 도메인으로 접속했기 때문에 경고가 뜬다.

내가 미리 만든 도메인과 인증서를 매핑하여야 이런 경고가 뜨지 않는다.

 

Route53으로 가서 새로운 레코드를 생성한다.

 

값을 입력해야 하는데, 이 주소는 ip가 아닌 별칭, 특히 end point이다.

 

그리고 갑분 - 로드밸런서 - 인증서 삭제

 

CloudFront 배포에 사용하기 위해서는 서울이 아닌, 버지니아 북부를 리전으로 지정한 뒤 인증서를 만들어야 한다.

 

다시 ACM으로 가서 인증서를 생성한다.

 

[Route53에서 레코드 생성]을 클릭

레코드 생성하면 CNAME이 호스팅 영역이 생겨야 하는데, 안생긴다. 직접 추가해준다.

 

CNAME이 추가된 모습

 

 

S3(Simple Storage Service) 

새 탭을 열어 S3를 검색한다.

 

* Glacier

대용량의 서비스, 저렴하게 데이터를 저장할 수 있다.

하지만 업로드한 데이터를 다시 다운로드 받기 위해 검색하게 되었을 때, 검색 시간이 오래 걸린다.

빈번하게 접근하지 않아도 되는 데이터를 저장할 때 사용한다.

사용자가 자주 접근하지 않는 데이터는 AWS가 알아서 Glacier로 옮길 수 있도록 세팅할 수 있다.

 

 

S3를 클릭한다

[버킷 만들기] 클릭

 

s3는 VPC 내에 있지 않다. 즉, 로컬에 있지 않다. => 인터넷 통신을 통해 접근해야 한다.

그렇다 보니 지역도 '글로벌'로 설정되어 있다.

 

=> aws망 안에 s3가 있지만, vpc내에 있지 않기 때문에, 가상의 라우터를 통해 인터넷에 연결하여 인터넷 망을 통해 S3의 저장소를 이용할 수 있게 된다.

 

 

 

 

* Access Control List (접근 제어 설정)

- 비활성화 - 오직 본인만 이 객체 스토리지에 접근할 수 있음(가장 강력한 보안 방식)

- ACL 활성화됨 - ACL의 정책을 내가 조정할 수 있음 -> 이걸 선택해야 하단의 [이 버킷의 퍼블릭 액세스 차단 설정]을 선택할  수 있다.

 

퍼블릭 액세스 허용 => 구글 드라이브처럼 링크가 만들어지면 다른 사용자들이 링크 타고 들어올 수 있다.

그렇기 때문에 하단의 체크박스에 체크를 해줘야 한다...

 

버전 관리 => 복원

추후에 안정적인 버전으로 roll back하기 위해 버전 관리가 필요하다.

 

 

SSE (Server Side Encryption)

서버 측 암호화

 

암호화 - 복호화 작업을 서버에서 진행한다.

데이터를 서버에 올리게 되면 데이터가 서버쪽에 저장이 될 때 암호화를 시키고, 내려받을 때 복호화한다. - 이 때, key를 이용한다

 

 

- Amazon S3 관리형 키 - S3에서 자체적으로 관리해주는 암호화 키

- AWS-KMS - Key Management Sevice, key를 사용자가 소유하게 됨

 

객체 잠금

객체를 보호해주는 설정. 

잘못 설정하게 되면, 지워야 할 객체가 지워지지 않을 수도 있다.

 

설정을 완료하고 [버킷 만들기]를 클릭한다.

 

 

 

파란 글씨의 도메인 네임을 클릭한다.

 

[폴더 만들기]를 클릭한다.

 

 

 

 

[업로드] 버튼을 클릭한다.

 

사진을 선택한 뒤, [업로드]한다.

 

 

[Url 복사]를 클릭한 뒤 새 탭에서 열어보면

 

 

Access Denied가 뜬다.

 

아무나 다 들어올 수 있도록 허용하지 않았기 때문이다.

Public Access를 활성화하자

 

 

새로고침 해보면 사진이 잘 보인다.

 

 

정적 웹사이트 만들기

그리고 다시 도메인으로 들어가서 미리 준비한 index.html 파일을 업로드한다.

 

파일을 업로드함과 동시에 미리 권한 설정을 할 수도 있다.

제일 하단의 [미리 정의된 ACL - 퍼블릭 읽기 액세스 권한 부여]를 클릭한다.

그러면 업로드 하는 과정에서 퍼블릭 엑세스가 생기게 된다.

제일 밑에 [지정된 객체에 퍼블릭 읽기 액세스 권한을 부여할 위험이 있음을 알고 있습니다] 체크박스를 체크 해야 완료된다.

 

URL을 복사해서 들어가 보면

짜잔~

간단한 정적 웹사이트를 구축할 수 있다.

 

 

 이 이미지 파일을 /var/www/html 아래로 옮긴다

 

 

 

도메인 버킷에 aws.tar파일을 업로드한다.

아까와 같은 방식으로 미리 퍼블릭 액세스 권한을 부여해둔다.

 

 

 

다시 EC2 탭으로 가서 [인스턴스 시작]을 클릭한다.

 

우측 하단의 [편집]을 클릭한다.

 

EFS를 구축했으므로 EFS를 선택한다.

하단의 [공유 파일 시스템 추가]를 클릭한다.

 

 

[인스턴스 시작]을 클릭한다.

'Public Cloud > AWS' 카테고리의 다른 글

Hybrid Cloud 구축하기  (0) 2022.06.21
AWS 실습 11 - GSLB 구현  (0) 2022.06.20
AWS 실습 8  (0) 2022.06.15
AWS 실습 7  (0) 2022.06.14
AWS 실습하기 6  (0) 2022.06.13