AWS EFS란?
EFS(Elastic File System)는 Aws Cloud Service와 on-promise resource에서 사용할 수 있는 간단하고 확장 가능하며 탄력적인 파일 스토리지를 제공하는 서비스입니다.
EFS는 리눅스 인스턴스를 위한 확장성, 공유성 높은 파일 스토리지로, EC2 Linux 인스턴스에 마운트된 Network File System(NFS)을 통해 VPC에서 필요한 파일에 접근하거나 AWS Direct Connect로 연결된 on-promise 서버의 파일에 접근할 수 있습니다.
AWS EFS 특징
가용성
- VPC 내에서 생성되며, 파일 시스템 인터페이스르 통해 EC2에 액세스합니다.
- 여러 가용영역에서 액세스 가능합니다.
- 여러 가용영역에 중복 저장되기 때문에 하나의 가용영역이 파괴되더라도 다른 AZ에서 서비스 제공 가능합니다.
- EFS는 EBS와 달리 multi AZ(availability zone)를 지원하고 network를 타기 때문에 security group으로 제어됩니다.
스케일링
- 수천개의 EC2에서 동시에 액세스 가능하며, 탄력적으로 파일을 추가하고 삭제함에 따라 자동으로 Auto Scaling 가능, 즉 미리 크기를 프로비저닝할 필요가 없습니다.
- 페타바이트단위 데이터까지로 확장가능합니다.
- 최대 1천개의 파일 시스템 생성이 가능합니다.
스토리지 클래스
EFS는 S3와 같이 스토리지 클래스가 존재합니다.
- Standard Class : 자주 액세스하는 파일을 저장하는데 사용하는 클래스
- Infrequent Access(IA) Class : 저장기간이 길지만 자주 액세스하지 않는 파일을 저장하기 위한 클래스
수명 주기 관리
- lifecycle을 통해 잘 접근하지 않는 파일은 자동으로 EFS IA(Infrequently accessed)로 옮겨 저렴한게 이용할 수 있습니다.
성능 모드 / 처리량 모드
- 처리량 모드에 있어서 대부분 파일 시스템에 Bursting Mode를 권장하지만 처리량이 많을 경우 Provisioned Mode를 권장합니다.
- 성능 모드에 있어서 액세스하는 EC2가 매우 많을 경우, MAX I/O mode를 사용하는 것이 바람직하며 그 밖의 경우 General Mode를 사용하는 것을 권장합니다.
파일 마운트
- EFS DNS 이름으로 mount 해서 여러 인스턴스에서 동시에 사용할 수 있습니다.
- Block storage와 마찬가지로 File storage도 mount 하면 내 로컬의 파일 시스템처럼 사용할 수 있습니다.
- EFS를 사용하여 기존 파일 시스템에서 AWS DataSync로 파일을 전송할 수 있습니다.
파일 백업 옵션
- DataSync
- DataSync는 on-promise storage와 AWS EFS 파일 시스템 간의 상시 연결을 유지하여 둘 사이에서 데이터를 쉽게 이동하도록 도움을 줍니다.
- DataSync는 대량의 데이터를 정기적으로 가져오기 및 내보내기, 일회성 데이터 마이그레이션 또는 데이터 복제 및 복구에 사용할 수 있습니다.
- 리전간 전송에도 AWS DataSync를 사용할 수 있습니다.
- AWS Tranfer Family
- SFTP, FTPS, FTP를 지원하는 완전관리형 파일 전송 서비스입니다.
- AWS EFS 내부 및 외부 파일 전송을 가능하게 합니다.
- AWS Transfer Family 엔드포인트는 EFS 파일 시스템과 동일한 리전에 있어야 합니다.
- AWS Backup
- AWS EFS의 백업 정책 및 예약을 자동화하고 추적합니다.
- EFS to EFS backup
- EFS 파일의 증분 백을 자동으로 생성
파일 시스템 정책
- EFS를 사용하는 모든 NFS 클라이언트들에게 적용되는 IAM 리소스 정책입니다.
- 전송 중 암호화, 루트 액세스 비활성화, 읽기 전용 액세스 등 설정 가능합니다.
VPC & EC2 & EFS 실습
EFS를 만들어 주기 전에 Security Group를 먼저 만들어 줘야합니다. NFS 포트를 열어줘야하기 때문입니다. 기존에 있는 보안 정책을 바꾸기 보단 새롭게 만들겠습니다.
먼저 EC2 메인화면에 접속하여 Security groups를 눌러 준 후 Create security group를 클릭해줍니다.
위 사진에 찾워 VPC를 잘 골라주고 Secure에서 기존에 만들어 놨던 Security group를 선택해줍니다. 이제 efs 설정을 해주러 갑시다.
접속하여 Create file system를 클릭해줍니다.
Customize를 눌러줍니다.
- Storage class
- Standard는 여러 AZ에서 사용 가능하게 하는 class입니다.
- One zone은 단일 AZ에서만 사용 가능하게 하는 class입니다.
- Automatic backups는 자동으로 백업을 할 것인지 정하는 곳 입니다.
- Transition into IA는 마지막 액세스 이후 어느 정도의 기간동안 액세스가 없으면 IA class로 옮길지 정하는 옵션입니다.
- Transition out of IA는 언제 IA class에서 Standard class에 전환하는지 설정하는 옵션입니다.
- Encryption는 efs 파일 시스템의 유효한 데이터를 방어 할 것인지 설정하는 옵션입니다.
- Performance mode는 ios에 기반한 efs 파일 시스템에 성능을 설정하는 옵션입니다. 경우에 따라서 높은 처리량을 필요할 경우 Max I/O를 선택합니다.
- Throughput mode는 efs 파일 시스템에 처리량을 설정하는 옵션입니다. 순간적으로 높은 량을 처리를 할때 Bursting를 사용을 합니다.
VPC를 설정해주고 그에 따른 efs 파일 시스템을 이용할 SubnetID를 잘 선택해줍니다. 그 후 아까 만들었던 vpc-efs-sg라는 Security Group를 선택해주면 됩니다. 다음꺼는 넘어갑니다. 이제 생성된 efs를 클릭한 후 오른쪽위 Attach를 눌러줍니다.
amazon-efs-utils를 이용하면 위 명령을 사용해서 EC2에 mount시킬 수 있습니다.
이제 EC2에 접속하고 df -h를 입력하면 아직은 마운트 되지 않을 것을 확인할 수 있습니다. 이제 /var/www/html에 들어가서 efs이란 파일을 만들어줍니다. 그 후 아까 찾았던 Attach명령어를 입력해줍니다.
그 후 df -h로 확인해 보면 마운트 된것을 확인할 수 있습니다. 이제 테스트 용토로 efs파일 안에 들어가서 저번에 S3에 올려놨던 index.html를 다운받겠습니다.
잘 가져와 진것을 확인할 수 있습니다. 이제 웹 사이트에 접속하여 /efs/index.html로 접속하면 잘 뜨는지 확인해 봅시다.
잘 접속되는 것을 확인하였습니다. 이제 다른 c1 서버에서 똑같이 efs 파일 시스템을 마운트 시킨 후 그 파일 내용물을 확인해 보고 웹사이트 접속까지 해봅시다.
AZ가 다른 EC2에서도 EFS network에서 허용을 해놨기 때문에 정상적으로 마운트가 되고 아까 a1서버에서 다운받은 index.html파일이 있는 것을 확인할 수 있습니다.
똑같이 잘 접속할 수 있는 것을 확인할 수 있습니다. 이게 index.html파일을 조금 수정하고 실시간으로 잘 적용되는지 확인해 봅시다.
실시간으로 아주 잘 적용 되는 것을 확인할 수 있었습니다.
출처
- https://inpa.tistory.com/entry/AWS-%F0%9F%93%9A-EFS-%EA%B0%9C%EB%85%90-%EC%9B%90%EB%A6%AC-%EC%82%AC%EC%9A%A9-%EC%84%B8%ED%8C%85-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC
'기능반공부 > 클라우드 컴퓨팅' 카테고리의 다른 글
[CC] AWS Cloud Service logs(AWS CloudWatch & AWS CloudTrail) (0) | 2023.02.22 |
---|---|
[CC] AWS Organiztions & AWS IAM (0) | 2023.02.22 |
[CC] AWS EC2(Elastic Compute Cloud) (0) | 2023.01.11 |
[CC] VPC / Subnet / Internet Gateway / Route Table (4) | 2023.01.11 |
[CC] AWS CloudFront (CDN) (0) | 2023.01.10 |