상세 컨텐츠

본문 제목

[AWS] 볼륨 | S3 | RDS

IT/AWS

by o_zeew 2022. 6. 22. 21:38

본문

(0) 실습 준비 설정

(1) 볼륨

      - 블록 스토리지 테스트

(2) S3

      - 객체 권한

      - 정적 웹 사이트

      - 버킷 버전 관리

(3) RDS

      - 실습


0. 실습 전 준비

  - 인스턴스 3개 생성 (WEB 2개, Bastion 1개)

  - 실습은 Bastion으로 접속해서 설정 (Bastion에 개인키 필요)

 

 1. 볼륨 

  - 부팅디스크

  - 운영체제의 부팅 정보가 들어있음(제거 시 가상머신 부팅 불가)
  - 인스턴스 생성 시 고유한 하드디스크가 생성됨(EBS)

  - 가용영역을 넘어갈 수 없음

 

  - 볼륨이 어떤 인스턴스와 연결되어있는지 구분하기 어렵기 때문에 이름을 설정해주면 편리함

3개의 인스턴스를 생성했기 때문에 생긴 3개의 EBS

 

1. 볼륨 생성

 

  - 이전에는 메모리에서 작업하던것을 보장할 수 없기 때문에 스냅샷을 백업으로 사용하지 않았지만,

    현재는 기술이 좋아져서 메모리 작업도 보장 가능하기 때문에 백업용도로도 사용

가용영역 A : 인스턴스와 같은 영역 설정 필수

 

  - 태깅 = 그룹핑

  - Life Cycle끼리 묶거나 역할별로 묶을 수 있음 

    - Life Cycle : 생명 주기, 인스턴스가 생성, 수정, 삭제 되는 과정

    - 3Tier 구성 시 WEB이 없다면 WAS와 DB의 존재 무의미

  - 정책을 만들지 않고 태그 생성시 무분별하게 많이 만들어질 수가 있음 (정책을 먼저 생성 권장)

볼륨 생성

 

2. 볼륨 연결

새롭게 생성한 볼륨이 사용가능으로 바뀌면 볼륨 연결 가능

 

  - 모든 설정은 ID로 설정하게 되는데 ID를 외워서 구분하는 것은 사실상 불가능 하기 때문에 인스턴스명을 설정하여

    이름으로 구분 가능

ID 아래에 작은 글씨로 인스턴스명 확인 가능

 

  - 디바이스 이름은 내부적으로 변경될 수 있으니 확인

WEB_A_111과 연결

 

3. 볼륨 확인

  - Bastion을 통해 WEB_A_111 인스턴스에 SSH 접속 후 확인

추가된 5GB의 볼륨 확인

 

4. 볼륨 사용

  - 파티셔닝

fdisk를 통해 파티셔닝

 

  - AWS에서 사용하는 파일시스템을 확인

xfs를 사용하고 있는것을 확인

 

  - xfs로 파일 시스템 포맷 후 확인

xfs 타입으로 포맷 된 xvdf1

  - 마운트

마운트할 디렉토리 생성 후 마운트
마운트 확인

  - test.txt 파일 생성

마운트한 디렉토리에 test.txt 파일 생성

 

<블록 스토리지 테스트>

   - 블록 스토리지는 실제 하드디스크처럼 뗐다 붙였다 할 수 있기 때문에 스토리지를 분리하고 다른 인스턴스에

     연결했을 때 설정이 유지되는지 테스트

 

1. 마운트 해제

WEB_A_111에서 해제

 

2. 볼륨 분리

WEB_A_111과 분리
분리
볼륨이 분리가 되면 볼륨이 다시 사용 가능 상태로 전환

 

3. 두번째 인스턴스와 볼륨 연결

볼륨 연결
WEB_A_238과 연결

 

4. 볼륨 연결 확인

Bastion을 통해 WEB_A_238에 접속

 

  - 파티셔닝을 하지 않아도 WEB_A_111에서 한 파티셔닝 설정이 유지되는것을 확인 가능

 

5. 마운트 후 확인

마운트 할 디렉토리 생성 후 마운트하면 WEB_A_111에서 만들었던 test.txt 파일 확인 가능

 

  - WEB_A_111에서 설정하고 생성한 것들이 그대로 유지되는 것을 확인 가능

test.txt 파일 내용 확인

 

6. 볼륨 삭제

마운트 해제
연결한 볼륨과 인스턴스 분리
볼륨 삭제
삭제

 

 


 

 

 2. S3 (Simple Storage Service) 

  - Object Storage : '오브젝트'로 불리는 각각의 데이터 단위가 개별단위로 저장되는 데이터 저장소

 

1. 버킷 생성

  - 버킷 : 객체에 대한 컨테이너

버킷 만들기
버킷 구성

 

  - ACL을 비활성화 하면 소유자만 버킷의 객체를 가질 수 있다

ACL 비활성화

 

  - 퍼블릭 액세스 : 누구나 접속이 가능한지 불가능한지를 설정

모든 퍼블릭 액세스 차단 (외부에서 접속 불가)
버킷 버전 관리 사용 안함
버킷 만들기
버킷 생성 완료

 

2. 객체 업로드

jwoh1 버킷에 객체 업로드
png 파일 추가
버킷 소유자만 접근 가능

 

 - 스토리지 클래스 : 클래스별로 요금이 다름

                                 자주 사용하는 것들은 standard, 가끔 보는 것들 Glacier(빙하) 등
                                 standard는 가용영역 3군데 이상에 저장 가능

Standard 설정
암호화 설정 안함
업로드

 

  - url : 도메인 이름의 역순 (버킷명 - 서비스 - 리전 - 아마존url / 파일명)

객체 URL 확인 가능

 

 - 버킷을 생성 할 때 Public Access를 허용하지 않았기 때문에 객체 URL 접속 불가

접속 불가

 

  - 객체의 권한에서 모든 사람(퍼블릭 액세스)가 읽기권한이 없는것을 확인 가능

 

3. 객체 소유권 편집

객체 소유권 편집

 

  - ACL을 활성화 시켜야 버킷에 대한 권한 편집이 가능

ACL 활성화

 

  - 퍼블릭 액세스 편집

퍼블릭 액세스 편집
버킷에 대한 퍼블릭 액세스 모두 허용
퍼블릭 액세스가 비활성화 됨

 

  - ACL 설정

ACL 편집
퍼블릭 액세스에 대해 권한 부여
버킷에 퍼블릭 액세스 가능

 

  - 객체 권한 편집

업로드 한 객체 클릭
객체 - 권한 - ACL 편집
모든 사람 (퍼블릭 액세스) 읽기 권한 부여

 

  - 설정 적용 확인

객체 URL에 접근 가능

 

 

4. 정적 웹 사이트 생성

  - 정적인 웹페이지 사용시 업데이트 상황이 있으면 수동으로 추가해줘야함

index.html 파일 업로드
index.html 객체를 모든 사람이 읽을 수 있도록 설정
객체 URL 접속 시 내용 확인 가능

 

  - 정적 웹 사이트 호스팅 활성화

정적 웹 사이트 호스팅 편집
활성화 및 인덱스 문서 지정
활성화 하면 엔드포인트 사용 가능
엔드포인트로 접속

 

5. 버킷 버전 관리

버킷 버전 관리 편집
활성화 후 저장
index.html 파일을 수정

 

  -  업로드 한 것은 자체 편집 불가 → 편집한 후 업로드 새로 진행 하면 마지막 수정 시간만 변경됨

수정한 index.html 파일을 업로드

 

  - 설정 적용 확인

업데이트 된 index.html 적용 확인

 

 

 


 

 

 3. RDS (relation database service) 

  - 완전 자동 데이터베이스 서비스

  - 클라우드에서 간편하게 데이터베이스를 설치, 운영 및 확장할 수 있는 관리형 서비스 모음

 

1. 데이터베이스 생성

RDS 검색
데이터베이스 생성
MySQL 엔진 선택
mysql 5.7 버전 선택

 

  - 프로덕션 : 실제 서비스

프리 티어 선택
DB 인스턴스 이름, 마스터 사용자 이름, 마스터 암호 설정
2t.micro 선택
범용 SSD, 20GB, 스토리지 자동 조정 비활성화
VPC, 서브넷, 퍼블릭 액세스 비허용, 보안그룹, 가용영역 설정

 

  - 실습 시 보유하고 있는 php 파일의 데이터베이스 이름이 test이기 때문에 초기 데이터베이스 이름을 test로 설정

초기 데이터베이스 이름 설정
추가 옵션 X
데이터베이스 생성 완료, 엔드포인트 확인

 

<실습>

  - 첫번째 인스턴스에서 index.php 파일 연결 후 확인

  - 두번째 인스턴스에서 insert1.php, table1.php, person1.php 파일 연결 후 확인

 

1. 첫번째 인스턴스 설정

첫번째 인스턴스로 index.php 파일 복사
httpd 설치
/etc/httpd/conf/httpd.conf 파일 수정

 

  - nslookup 후 엔드포인트를 입력 시 DB 서버의 IP 확인 가능 (이 서버의 인스턴스로는 절대 접속 불가)

  - 10.0.0.2는 AWS에서 제공하는 DNS 서버 주소

jwohdb의 IP : 10.0.0.219

 

  - php 설치

php7.2 활성화
lamp-mariadb10.2-php7.2 활성화
패키지 설치

 

  - index.php 파일 수정 : RDS가 돌아가는 서버로 연결

 

 - 연결 확인

첫번째 인스턴스의 공인 IP로 접속 가능

 

2. 두번째 인스턴스 설정

두번째 인스턴스에 insert1.php, table1.php, person1.php 파일 전송 후 확인

 

  - php 파일 수정

insert1.php 파일 수정
table1.php 파일 수정
person1.php 파일 수정

 

  - mysql client 설치

리포지토리 설치
/etc/yum.repos.d/mysql-community.repo 파일 수정
mysql-community-client 설치

 

  - 데이터베이스와 테이블 생성

RDS가 돌아가고 있는 서버로 로그인
member 데이터베이스 생성 후 테이블 작성
admin에게 member 데이터베이스의 모든 테이블에 최고 권한 부여

 

  - 연결 확인

두번째 인스턴스의 공인IP로 접속 가능
table 조회 가능

 

관련글 더보기