파일 시스템 생성
aws에서 EFS를 선택한 다음 파일시스템 생성을 클릭

커스터마이징
사용자 지정 버튼을 클릭

-
파일 시스템 유형
파일시스템 유형에는 리전과 OneZone이 있음
리전의 경우 여러 가용 영역(AZ)간에 데이터를 복제하고 싶을 때 사용한다.
하지만 단순히 EFS 테스트한다면 비용절감을 위해 One Zone타입을 선택
One Zone을 선택하면 하나의 AZ에만 데이터가 저장되므로 AZ가 다운되면 EFS 파일시스템도 다운됨
-
수명 주기 관리
비용절감을 위한 옵션
자주 사용하지 않는 객체가 있다면 다른 액세스 계층인 Standard-Infrequent Access라는 스토리지 클래스로 이동시킴
즉 아래 화면에서 보면 파일이 30일 이상 액세스되지 않으면 IA로 이동시켜서 비용을 절감하고 이동 후에는 첫 액세스에서 IA 밖으로 이동하거나 이동하지 않기로 설정할 수 있음

-
성능설정
- 성능모드
성능모드에는 범용 옵션(General Purpose)과 최대 I/O(Max I/O)가 있음
범용옵션은 다목적 용도이며 지연시간이 중요한 경우에 사용
Max I/O옵션은 처리량 및 초당 연산 작업이 최대가 됨
빅데이터 등의 사용사례에 해당함
지연시간은 그만큼 늘어남
- 처리량 모드
개선(Provisioned)과 버스트(Bursting)이 있음
버스팅모드는 파일 시스템 크기와 비례한 용량을 가짐
파일 시스템이 클수록 용량이 커지고 버스팅도 됨
반면 프로비저닝은 1~1024MiB/s사이의 값으로 파일 시스템을 어느 정도로 읽을지 설정함
작은 파일시스템에 유용한 옵션이지만 초반에 큰 처리량이 필요

네트워크 액세스 설정
위의 커스터마이징이 끝나고 next버튼을 누르면 아래와 같은 화면이 나타남

기본값 vpc로 둔 다음 마운트 대상을 설정함
앞서 커스터마이징 단계에서 파일시스템 유형을 리전으로 선택하였으므로 현재는 4개의 가용영역(AZ)이 있음
EFS를 위해 특정 보안그룹을 생성해야 함
위의 화면에는 기본으로 설정되어있음
- 보안그룹 생성
인바운드 규칙은 생성하지 않고 이름과 설명만 입력하고 생성함


EFS로 가서 보안그룹을 변경하여 주고 '다음' 클릭
아래 화면은 그냥 두고 '다음' 클릭

파일시스템 설정 검토 후 문제없음을 확인 후 '생성' 클릭

생성

EC2 인스턴스에 마운트
- 인스턴스 생성
가용영역을 달리해서 두개의 인스턴스를 생성한다.
- 첫번째 인스턴스
첫번째 인스턴스는 이름을 instance A
ami는 amazon linux
인스턴스유형은 t2.micro

네트워크 설정에서 서브넷은 가용영역이 ap-northeast-2a인 것을 선택

스토리지 구성에서 편집 버튼을 클릭


EFS를 선택한 다음 공유 파일 시스템 추가 버튼을 클릭

EFS에 연결되고 마운트 지점은 /mnt/efs/fs1
인스턴스 시작 클릭
보안그룹을 자동으로 생성 및 연결 옵션을 클릭하였기에 보안그룹에 가보면 새로이 생성된 보안그룹이 보인다.
'efs-sg-숫자'로 생성된 보안그룹의 인바운드 규칙

'efs-sg-숫자'로 생성된 보안그룹의 아웃바운드 규칙

'instance-sg-숫자'로 생성된 보안그룹의 인바운드 규칙

'instance-sg-숫자'로 생성된 보안그룹의 아웃바운드 규칙

- 두번째 인스턴스
두번째 인스턴스의 이름은 instance B
ami는 동일하게 amazon linux
유형도 동일하게 t2.micro
네트워크 설정에서 서브넷은 가용영역이 ap-northeast-2c인 것을 선택(원래는 가용영역이 ap-northeast-2b인 서브넷을 선택하려 하였으나 t2.micro유형의 인스턴스를 지원하지 않아서 변경하였다.)
보안그룹은 첫번째 인스턴스를 생성시에 자동생성된 보안그룹을 선택한다.

첫번째 인스턴스에서와 동일하게 파일시스템을 추가해준다.

가용영역이 각기다른 2개의 인스턴스를 생성하였다.

테스트
첫번째 인스턴스에 접속해서 파일을 만들어본다.

hello.txt라는 이름의 파일을 파일시스템에 생성했다.
두번째 인스턴스에 접속해서 파일을 확인한다.

AZ는 다르지만 같은 EFS를 공유하는 인스턴스를 생성해서 실습해봄
- 생성된 보안그룹을 정리할때는 서로 참조하고 있으므로 인바운드 규칙, 아웃바운드 규칙에 들어가서 참조하는 항목을 삭제해야 해당 보안그룹이 삭제됨