Cloud_AWS 스토리지 실습(EBS, EFS, S3 활용)

목표 아키텍처

 


실습 단계

  1. CloudFormation 이용 기본 인프라 배포
  2. EBS 스토리지 추가 생성
  3. EBS 스토리지 볼륨 크기 변경 및 스냅샷 기능으로 백업 확인
  4. EFS 스터리지 생성하고 사용
  5. Public S3 스토리지 생성 및 외부 접근 확인
  6. Privae S3 스토리지생성 후 제한된 접근 및 데이터를 백업
  7. 생성된 자원 모두 삭제 > <

실습 1단계(기본 인프라 배포)

스택 생성

생성 자원 이름 정보
VPC CH5-VPC 10.40.0.0/16
인터넷 게이트웨이 CH5-IGW  
퍼블릭 라우팅 테이블 CH5-Public-RT CH5-IGW 연결
서브넷1(Public) CH5-Public-SN1 CH-Public-RT 연결 [10.40.1.0/24]
서브넷2(Public) CH5-Public-SN2 CH-Public-RT 연결 [10.40.2.0/24]
IAM Role STGLabInstanceRole S3 Full 정책 연동
InstanceProfile STGLabRoleForInstances STGLabInstanceRole 연동
EC2 인스턴스1 EC2(Web1) CH5-SN1 위치
EC2 인스턴스2 EC2(Web2) CH5-SN2 위치
보안 그룹1 CH5-SG TCP 22/80/2049, ICMP 허용

* 생성된 스택 인프라 정보

 


실습 2단계(EBS 스토리지 추가 생성)

EBS 스토리지 추가 생성 완료
/data 폴더 생성 후 Data1 스토리지 EC2 1번 서버와 연동 및 마운트 완료

 


실습 3단계(EBS 스토리지 볼륨 크기 변경 및 스냅샷 기능 확인)

root 볼륨 수정 전 사용량 28%
서버 1의 루트 스토리지 볼륨 수정에 들어가서 크기를 확장

growpart /dev/xvda 1 	#xvda의 1번 파티션을 확장
xfs_growfs -d /	 #루트 파일 시스템(XFS 형식)의 크기를 늘려

* EBS 볼륨 크기를 늘렸다고 해서 자동으로 OS에서 인식하는 게 아니라, 파티션과 파일 시스템도 확장해 줘야 해서 위
명령어를 실행

  • lsblk → 디스크 및 파티션 목록 보기
  • fdisk -l → 디스크 및 파티션 상세 정보 보기
  • df -h → 마운트된 파일 시스템 및 사용량 보기
  • growpart → 파티션 크기를 확장
  • xfs_growfs →  파일 시스템 크기를 확장

root 볼륨 수정 후 사용량 1%
첫번째 스냅샷 생성 (생성 시간 약 1분)

 

스냅샷 증분 기능 확인을 위한 가상 파일 더미 생성
증분 기능으로 인해 변경된 파일만 스냅샷하여 빠르게 두번째 스냅샷은 생성됨 (생성 시간 약 30초)

 


실습 4단계(EFS 스토리지 생성 후 사용)

파일 시스템 생성
서버1에 EFS 마운트
서버 1에 연동된 EFS 사이즈 확인
서버1과 EFS가 통신할 때 사용하는 IP 주소
서버2에 EFS 마운트
서버2에 연동된 efs 사이즈 확인
서버2와 EFS가 통신할 때 사용하는 ip 주소
서버1에서 EFS에 파일 100개 생성
서버2에서 EFS에 생성된 파일 100개 확인

 


실습 5단계(Public S3 스토리지 생성 및 외부 접근 확인)

S3를 Public으로 생성 후 임의의 사진 파일 넣음
외부에서 S3에 넣었던 사진 파일에 접근
서버1에 접근해서 표시되는 사진이 S3 업로드한 파일이 되도록 설정
외부 사용자가 버킷의 파일을 다운로드 가능

 


실습 6단계(Private S3 스토리지 생성 및 제한된 접근 확인 및 데이터 백업)

명령어를 통해 private 버킷 생성 후 안에 파일 생성
S3 콘솔에서 private 버킷이 생성된걸 확인 가능
Private S3에 들어있는 객체URL을 통해 외부에서 접근을 시도하여도 접근 불가능
Private S3 버킷은 외부 접근이 불가능하지만 Pre-sign URL 기능을 이용해 특정 사용자에게 제한 시간 동안 외부 접근 허용
일시적으로 Private S3 버킷에 접근 가능

 

 


실습 7단계 (목표 아키텍처 구성 완료! 이제 모든 자원 삭제 > <) 및 느낀점

 

느낀점:

  1. VPC 엔드포인트를 활용하면 NAT 게이트웨이 비용을 절감할 수 있다. NAT 게이트웨이를 거쳐 S3로 나가는 트래픽은 비용이 발생하지만, VPC 엔드포인트를 사용하면 데이터 전송 비용이 1/10 수준으로 줄어든다.
  2. 기업의 보안 정책상 인터넷을 통한 데이터 접근을 차단하고, 내부 네트워크에서만 접근이 가능하도록 설정하는 것이 일반적이다. 이때 IAM 정책과 VPC 엔드포인트 정책을 적절히 설정해서 보안을 강화해야 한다.
  3. 실습에서 aws s3 cp 와 aws s3 sync 를 비교해본 경험을 통해, 단순 파일 복사보다 변경된 파일만 동기화하는 것이 비용 절감 및 운영 효율성 측면에서 이득이다.
  4. EFS를 마운트할 때 nfsvers=4.1 설정이 필요하며, 이를 잘못 설정하면 성능 저하 및 연결 불안정 문제가 발생한다.

* 해서 nfsvers=4.1 내용 찾아보니 NFS 4.1부터는 pNFS (Parallel NFS) 기능이 추가되어, 클라이언트가 단일 NFS 서버를 거치지 않고 병렬로 여러 개의 데이터 서버에서 직접 데이터를 읽고 쓸 수 있도록 설계되어 훨씬 효율적이라고 한다.