Instance Storage 말 그대로 인스턴스의 저장소이다
그래서 EBS 에 대해서 배웠다.
EBS 가 뭐냐?
Elastic Block Store,,,
Elastic 이라는 말은 너무나도 많이 들어서 탄력적,,이라는 뜻이고 그냥 탄력적이니까 한곳에만이 아닌 여러곳 끼웠따 뻈따 할수 있다고 생각하면 될꺼같다.
뭐 하튼 정의는 instance 가 실행중인 동안 연결 가능한 network drive 라고 한다. 실제 Instance 생성하면 EBS Volume 도 같이 생성되는데 루트 라면은 Instance 삭제 하면 EBS 또한 같이 제거 되겠지만 EBS volume 만 생성하고 Instance 에 연결하게 되고 그 Instance 를 삭제한다면 EBS는 삭제 안되게 할수도 있다.
이부분은 뭐 뒤에서 더 살펴보고.
EBS 는 아쉽게도 AZ에 한정되어서 특정 가용 영역을 가진다.
앞에서도 봐서 알겠지만 us-east-1a 의 EBS 를 us-east-1b 에서 사용할수 없다는 뜻이다.
뭐 Snapshot 으로 할수있긴한데 이것도 뒤에서 알아보도록함.
EBS는 Network USB stick 이라고 생각하면 된다고 한다.
usb 처럼 그냥 필요할떄 끼워서 쓰고 뺴고 하면 된단다.
위에서 다 말했지만 그냥 한번더 정리한다.
EBS volume 은 network Drive 라고 한다.
isntacne 와 EBS volume 이 서로 통신하기 위해서는 network 가 필요하다.
컴퓨터가 다른 서버에 도달할떄 지연 발생할수 있따는 말.
Elastic 이라는 말처럼 분리되고 다른 Instance 에 붙을수도 있다.
그리고 가용 영역 이동이 안된다.
마지막으로 용량을 미리 결정해야한다.
EBS 의 느낌이 오는지,,,?
그냥 컴퓨터 HDD 랑 똑같은 저장소인데 Cloud 서비스라고 생각하면 될꺼같다.
이렇게 지금 EC2 Instance 에 EBS 가 연결되어있는걸 확인할수 있다.
또한 Instance 하나에 여려개의 EBS Volume 또한 연결할수 있고
EBS volume 을 생성하고 연결 하지않고 그대로 둘수도 있다.
종료시 삭제 버튼이다
실습때 봤었는데 Root Volume 은 Instance 생성시에 자동으로 만들어지게 되고 자동으로 Delete on Termination 기능이 활성화 되어있다.
Instance 생성시에 어떻게 체크하냐에 따라서 달라질수 있고, 기본설정은 삭제시 제거가 활성화 되어있다.
이 종료시 삭제의 기능은 언제 쓰면 될까? 그냥 말 그대로이다.
인스턴스 종료될때 root volume 을 유지하고 싶을때 사용하면된다.
DATA 저장하고싶을떄!
Snapshots 이라고 하니까 뭐 카메라 찍는거 같은 느낌이지만..
사실상 Backup 이다.
EBS Volume 의 특정 시점에 대한 Backup 이다.
위에서 말했지만 EBS 자체는 AZ 에 종속되어있다.
가용영역을 벗어나면 새로운 EBS를 만들어줘야한다는 말이다.
하지만 1a Instance에 연결되어있던 EBS 를 1b의 Instance 에 연결하고 싶으면 1a Instance EBS 를 snapshot 을 만들고 그것을 복구하고 1b의 Instance 에 연결하면 된다.!
Snapshot 옮길수 있는 기능이라고 한다.
24시간에서 최대 72시간의 시간이 걸리게된다.
영구 삭제 하게 되어도 휴지통에 들어간다는 소리이다.
실수로 Snapshot 을 지우더라도 자신이 설정한 휴지통 기간에 따라서 복원할수있다!
Snapshot 완전 초기화 라고한다.
첫사용에 지연시간을 없앤다고 한다....
(뭐라는지 모르겠음)
Snapshot 이 아주 크고 EBS volume or EC2 INstance 를 빠르게 초기화 해야할떄 사용하는 기능이라고 한다.
이부분은 실습을 안해서 모르겠네..
AMI 는 Amazon Machine Image 로 우리가 INstance 생성할떄 Amazon Linux 2를 선택한 그거다.
EC2 Instance 를 통해 만든 Image 를 AMI 라고 한다.
AMI 는 AWS 에서 제공하는것을 쓸수도있고, 내가 AMI 를 만들수도 있고, 다른사람이 만든 AMI 를 사서 쓸수도 있다.
이부분도 실습을 해봤는데 Instance 한개를 만들고
이떄는 user data script 에 우리가 설정하고 싶은 code를 작성하고 만든다..
그리고 중지하고 AMI 를 만든다.
그럼 그 AMI 를 새로운 Instance 로 생성하게 된다면 우리는 user data script 에 초기설정한 그 AMI를 통해서 Instance 를 만들수 있었다.
가끔.... EBS Volume 은 성능은 물론 뛰어나지만 더 높은 성능을 요구할떄가 있다...
EC2 는 가상이지만 실제로는 하드웨어 서버에 연결되어있다고 한다.
그리고 해당 서버에 물리적으로 연결된 Disk 공간이 있는데 Ec2 Instance store 는 결국 해당하는 물리적 서버에 연결된 하드웨어 드라이브라고 한다.
EC2 Instance Store 는,,,,
I/O 성능이 좋고
정지되면 instance store 없어진단다.
영구 저장이 아니기 떄문에 캐쉬,버퍼,,,,이런것에 더 잘어울린다고한다.
기본 서버 장애 발생 할수있고
백업이 그래서 필수라고 함!!!
이렇게 말로써 적으니까 나도 모르겠음
그리고 실습도 이부분만 안해서 더 모르겠어서 이부분은 추후에 공부하고 또 정리하겠음.
EBS Volume 은 6개의 유형으로 나뉜다.
범용인 gp2/gp3
높은 성능은 io1/io2
낮은 가격들의 st1,sc1 이 있다.
각각은 밑에서 더 자세히 보도록하고 이러한 유형들은 크기,처리량,IOPS(chekd I/O 처리량) 에 따라서 달라진다고한다.
그리고 st1,sc1 은 부팅 볼륨으로써 쓸수없지만 나머지는 사용할수 있다.
짤븡ㄴ 지연시간,효율적인 범용의 Storage 이다.
1GB-16TB 까지의 범위를 가지고
이 유형에는 gp3,gp2로 나뉜다
이게 더 최신이라고 한다. 3000 IOPS,125MIB/s 처리량을 가진다.
최신인 만큼 서로가 연결되어있지않다. 즉 IOPS 따로,처리량 따로 설정할수 있다.
최대 16000 IOPS,1000 MIB/s 까지 설정할수 있다고 한다.
하지만 gp2 는 연결되어있지않다 IOPS와 처리량이 같이 설정되어야한다.
최대 16000 IOPS 를 가진다... 3IOPS 당 1GB 이여서 5344GB 가 최대 IOPS 일떄 최대인것을 확인할수 있다.
gp3 쓰면 된다 그냥 ㅋ
결국 gp3/gp2 는 비용 효과적인 storage 라고 한다.
IOPS 성능을 유지할 필요가 있는 주요 비지니스 APplication 이나 16000 IOPS 이상 필요할떄 이 Storage 를 사용하면 된다.
16000 IOPS 이상 ,,, 필요될떄 이거 쓰면된다.
DB Workload에 알맞다.
4GB 부터 16TB 까지의 범위를 가지고
최대 64000 IOPS 를 가진다
또한 gp3 처럼 독자적으로 IOPS 설정을 변경할수 있다.
io2 가 io1 보다 더 내구성이 높고 IOPS가 더 높다고 한다.
4GB 부터 64TB 까지의 범위를 가지고 정말 고성능 유형의 Volume 이다.
256000 IOPS 를 가진다....
이 부분은 부트 Volume 으로는 사용할수 없다.
126GB 에서 16TB 의 범위를 가진다.
처리량에 최적화된 Storage 이다.
500 MB 처리량, 최대 500 IOPS 를 가지고있다.
빅데이터,웨어하우스 로그 처리기 등등,,,에 사용하면 맞다고 한다.
Archive Data, 접근 빈도가 낮은 Data 에 적합하다고 한다.
250 MB 처리량,최대 250 IOPS 를 가진다.
하나의 EBS Volume 을 같은 가용영역에 있는 여러 EC2 Instance에 연결 가능하다는 말이다.
이 Multi Attach 도 같은 AZ 에 있어야 사용할수 있다.
각각의 Instance 는 읽고 쓰기의 권한을 가지게 된다.
한번에 16개의 Instance 에 연결될수 있다.
이러한 Multi Attach 는 Application 의 가용성을 높이기 위해 사용할수있고 또한 동시 쓰기 작업을 관리해야할때 사용된다고 한다.
이 사진을 보면 이해갈것.
EBS 생성하면 우리가 모르게 어떠한 Encryption 작업이 동시 다발적으로 발생된다.....
암호화 되지 않은 EBS VOlume을 암호화 하려면 EBS Volume의 snapshot 을 만들고 그 Snapshot 을 암호화한다. 그리고 그 snapshot으로 새로운 Volume 을만들게 된다면 그 Volume 을 암호화 할수 있다.
관리형 NFS 이다. (Network File System)
많은 EC2 에 Mount 될수 있다..
이런 EFS 는 다른 AZ 에서도 연결 가능하다.
이러한 EFS 는 가용성이 높고 확장성이 뛰어나며,,,비싸다.!
사용량에 따라 비용을 지불함으로 미리 용량을 Provisioning 할 필요가 없다.
이 사진을 보면 이해가 갈꺼다.
다른 AZ 에 연결되어서 사용할수 있다
근데 이 EFS 는 Window AMI 에는 연결이 안된다고 한다 무조건 Linux 계열의 AMI 에만 연결이 가능하다.
먼저 EFS 는 더 큰 규모로 확장이 가능하고
Performance Mode 에서는 범용 , MAX I/O 로 나뉜다.
MAX I/O 는 최대 처리량으로 그 용도에 맞게 사용하면 될꺼같다.
Thoroughput mode 는 3가지의 모드가 있는데
Bursting , Provisioned, Elastic 이있는데
설명한건 Provisioned 는 storage 크기 상관없이 처리량 설정하고 싶을떄 선택하는것이고
Elastic 은 workload 에 따라서 처리량을 자동으로 조절 가능한데 상황에 맞게 선택하면된다.
Storage Tiers 는 생명 주기 관리 기능으로 며칠 후에 File 을 다른 계층으로 옮길수 있느 ㄴ기능이라고 한다.
Standard 와 EFS-IA(infrequent acess) 부분이 두개로 나뉜다고 하는데 Standard 는 자주 접근하는 곳이고 EFS-IA 는 자주접근하지 않는곳이다.
처음에 Standard 에 있다고 자신이 설정한 기간에 따라서 그 Data 는 EFS-IA 로 넘어간다고 한다. 그렇게 비용 절감 가능!!
그래서 차이점이 뭔데?
EBS 는 한번에 하나의 instance 에 연결된다. AZ에 제한이 있고 AZ간의 Migration 하려면 Snapshot 을 만들어서 이동해야한다.
EBS Volume Backup은 I/O를 사용한다 Application 이 많은 트래픽 처리 한다면 실행하지 않아야한다.
Root EBS Volume 은 Instance 가 종료되면 종료되는걸 확인했다.
EFS 는 여러 가용성 영역에 걸친 수백개의 Instance 에 연결된다.
EFS-IA 를 사용해서 비용을 절감할수 있다.
Instance Store 는 물리적으로 EC2 Instance 에 첨부되어있다고한다.
그래서 Ec2 instance 손실되면 storage 손실된다.
솔직히 Instance Store는 정확하게 무슨소린지 몰라서 좀더 공부하고 정리하겠음.