스토리지 사용

이정훈·2024년 4월 29일
0

AWS

목록 보기
11/16

EBS와 EFS 그리고 S3를 사용해보겠습니다.
아래는 구상도입니다.

기본 인프라

아래 링크를 통해 CloudFormation에서 기본 인프라를 만들어 줍시다.
IAM설정이 있기 때문에 마지막에 IAM 리소스 생성 체크를 해줘야 합니다.

https://cloudneta-aws-book.s3.ap-northeast-2.amazonaws.com/chapter5/storagelab.yaml

기본 인프라가 정상적으로 설정되었는지 확인하겠습니다.
EC2 인스턴스 중 STG1 인스턴스에 SSH로 접속합시다.

먼저 디스크 사용 현황을 파악해 봅시다.

df -hT /dev/xvda1

이후 블록 장치에 대한 정보를 확인해 봅니다.

lsblk

UUID도 확인합니다

blkid

이후 파일 시스템 테이블을 살펴보겠습니다.

cat /etc/fstab

아래와 같이 나온다면 문제없이 설정된 것입니다.

EBS 생성 및 사용

EBS 볼륨을 생성하겠습니다.
서비스 > 컴퓨팅 > EC2 > Elastic Block Storage > 볼륨 > 볼륨 생성
으로 가줍니다.
이후 볼륨 생성을 누릅니다.
볼륨 설정에서 볼륨 유형, 크기, 가용영역을 설정해 줍니다.

태크도 생성해줍니다.

볼륨을 생성하였습니다.
이제 EBS를 연결해보겠습니다.
만든 볼륨을 볼륨 연결을 합니다.

인스턴스와 디바이스를 설정합니다.

볼륨을 연결했으니 STG1인스턴스가 연결된 EBS 볼륨을 사용하도록 설정하겠습니다.
아래 사진 속 명령어를 입력해줍니다.

EBS 볼륨 크기 변경하기

EBS의 루트 볼륨을 확장하고 유형을 변경해보겠습니다.
C2-STG1_Root_Volume을 체크하고 작업 > 볼륨 수정을 누릅니다.

다음과 같이 수정해줍니다.

볼륨 수정이 완료될 때까지 기다립니다.
수정이 완료되면 STG1 SSH 터미널에서 아래와 같이 해줍니다.


사실 이렇게 안해도 됩니다. 그냥 인스턴스 중지하고 볼륨 수정하고 인스턴스 재시작하면 자동으로 적용됩니다.

EBS 스냅샷 만들기

먼저 가상 파일을 10G 크기로 만듭니다.

이후 스냅샷을 생성합니다.

스냅샷의 설명만 설정해줍니다.

이후 한번 더 가상파일 만들어줍니다.

다시 스냅샷을 만듭니다.

EFS 생성 및 사용

서비스 > 스토리지 > EFS > 파일 시스템
으로 가서 파일 시스템 생성을 누르고 사용자 지정을 누릅니다.
이름, 자동 백업 활성화, Infrequent Access로 전환, 유휴 시 데이터 암호화 활성화를 아래와 같이 설정합니다.

네트워크 액세스도 아래와 같이 설정합니다.

이제 생성을 하면 됩니다.
생성 완료후 파일 시스템 ID를 확인합니다.
파일 시스템 ID를 이용해야 하기 때문에 기억해둡시다.

이제 STG1에 SSH로 접속합시다.

STG1을 EFS와 연결해보겠습니다.
아래와 같이 해봅시다.
주의할 점은 EFS변수를 설정할 때 자신의 EFS ID를 입력해야 한다는 것입니다.

STG2도 EFS에 연결하겠습니다.
SSH에 접속해 아래와 같이 해줍시다.

이렇게 같은 EFS에 연결된 두 인스턴스 STG1과 STG2는 EFS의 파일을 공유하게 됩니다.

Public S3 스토리지로 정적 웹 서버 사용

서비스 > 스토리지 > S3 > 버킷
으로 들어가 버킷 만들기를 누릅니다.
이름과 ACL 활성화됨만 설정합니다.

S3를 만들었다면 업로드를 눌러 아무 사진이나 넣어줍니다.

이후 생성된 객체 정보를 보면 객체 URL이 존재합니다.
그러나 접속을 시도하면 거절됩니다. 접근이 차단되어 있기 때문입니다.

외부에서 접근가능하게 만들겠습니다.
먼저 객체 작업에서 ACL을 사용하여 퍼블릭으로 설정에 들어가 퍼블릭으로 설정합니다.

이제 STG1 인스턴스가 S3에 업로드된 이미지를 사용하도록 해보겠습니다.
STG1에서 다음과 같이 명령어를 입력합니다.

이제 정상적으로 S3이미지를 가져오는지 확인하기 위해 STG1의 퍼블릭 IP로 접속해봅시다.

이번에는 S3에서 객체마다 추가 설정을 하지 않고 모든 객체에 대해 외부에서 접근이 가능하게 만들어 보겠습니다.
버킷에서 권한 탭에 간 이후 버킷 정책에서 편집을 눌러
아래의 정책 문을 입력해 줍니다.
주의 사항으로 마지막 Resource에서 cloudneta가 아닌 여러분의 버킷 이름을 입력해야 합니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublicReadGetObject",
      "Effect": "Allow",
      "Principal": "*",
      "Action": [
        "s3:GetObject"
        ],
      "Resource": [
        "arn:aws:s3:::cloudneta/*"
        ]
    }
  ]
}


이제 새로운 파일을 업로드하고 접근이 가능한지 확인해 봅니다.

Private S3 사용하기

VPC 내부에서만 접근 가능한 S3 버킷을 생성해 보겠습니다.
STG1에 SSH로 접근합니다.
이후 아래와 같이 해서 Private S3를 생성하고 사용할 수 있게 설정합니다.

이제 파일을 업로드합니다.

pre-sign URL을 이용하여 외부에서 private S3에 접속하게 해봅시다.
업로드중..
URL을 통해 private S3의 파일에 접근 가능한지 확인해봅시다.

만든 자원을 다 삭제해 줍시다.

profile
기록으로 흔적을 남깁니다.

0개의 댓글

관련 채용 정보