Amor, Salud, Dinero

AWS EC2 관련 사례

Cloud

[AWS EC2 Root 디바이스 복구 방법]
서버 설정 시 네트워크를 잘못 수정했거나 접속하는데 필요한 폴더 권한을 잘못 설정했을 경우 복구가 어려움
백업 이미지가 없는 상황에서, AWS EC2의 Root 디바이스(EBS 볼륨)을 꼭 살려야할 때 조치할 수 있는 방법

1. Condition
EC2 인스턴스를 복구하기 위한 2가지 접근방법
1) EBS-Backed Snapshot
 EBS 볼륨을 기반으로 만들어진 Snapshot이 있다면 해당 Snapshot으로 백업받은 시점의 EBS 볼륨을 생성할 수 있다. EC2 인스턴스에 있는 기존 볼륨을 Detach 시키고 백업 볼륨을 Attach 시키고 재기동하면 적용된다.
2) AMI(Amazon Machine Image
Snapshot에 대해 신경쓰지 않으려면, 인스턴스의 AMI를 만들어 백업 및 복구를 간단하게 할 수 있으며, 원하는 빈도로 자주 수행할 수 있다.
** EBS Snapshot과 AMI는 자동으로 Amazon S3에 저장된다.

네트워크 설정 파일을 잘못 건드리거나(ex eth0, resolv.conf 등) Booting에 필요한 폴더 권한을 실수로 바꿔서 로그인 자체가 안되는 등
root device에 문제가 발생했을 때 위와 같은 방법으로 미리 백업을 받아놓았다면 복원 가능하다.
하지만 백업 시점부터 현재까지 EC2 인스턴스에 많은 수정사항이 적용되어 있거나
아예 백업이 존재하지 않을 경우에는 손상된 EC2 인스턴스의 Root Device를 복구해야 한다!

손상된 EC2의 Root 디바이스를 unmount시킨 후, 임시 인스턴스에서 편집하는 방법을 사용한다.
- Root EBS 볼륨을 EC2 인스턴스에서 Detach
- 부팅이 가능한 임시 인스턴스를 생성하고, 이전 단계에서 detach시켰던 수정 대상 EBS 볼륨을 attach
  ** 여기서 주의할 점, 복구대상 인스턴스와 가용영역&리전 동일하게 맞춰준다.
- 임시 인스턴스에서 잘못 건드린 파일 내용 수정
- 임시 인스턴스에서 수정 완료된 EBS 볼륨을 detach
- 기존 인스턴스에 수정 완료된 볼륨을 Root Device로 Attach 시키고 EC2 인스턴스 기동

===================================================================
[AWS EC2에 S3 mount해서 file system처럼 사용(goofys)]

EC2 인스턴스를 생성할 때 EBS(Elastic Block Store)와 함께 생성된다.
EBS는 파일 Read/Write 시 속도가 빠르다는 장점이 있지만
S3에 비해 상대적으로 비싸기 때문에 스토리지 용량이 커질수록 비용 부담이 늘게 된다.
생성 시 크기를 지정해주어야 하며,
사용하지 않는 부분에 대해서도 비용이 발생하고, 
볼륨 크기를 늘리는 것은 가능하나 줄이는 것은 허용되지 않는다.

EC2와 연결되어 있는 EBS볼륨은 속도는 빠르지만 elasticity와는 거리가 멀다.

S3를 EC2에 mount해서 file system처럼 사용하게 된다면 거의 무한에 가까운 스토리지를 저렴한 비용으로 사용할 수 있게 되며 사용한 만큼만 비용을 지불하게 된다.

EC2 인스턴스를 생성할 때 EBS(Elastic Block Store)와 함께 생성된다.
EBS는 파일 Read/Write 시 속도가 빠르다는 장점이 있지만
S3에 비해 상대적으로 비싸기 때문에 스토리지 용량이 커질수록 비용 부담이 늘게 된다.
생성 시 크기를 지정해주어야 하며,
사용하지 않는 부분에 대해서도 비용이 발생하고, 
볼륨 크기를 늘리는 것은 가능하나 줄이는 것은 허용되지 않는다.

EC2와 연결되어 있는 EBS볼륨은 속도는 빠르지만 elasticity와는 거리가 멀다.

S3를 EC2에 mount해서 file system처럼 사용하게 된다면 거의 무한에 가까운 스토리지를 저렴한 비용으로 사용할 수 있게 되며 사용한 만큼만 비용을 지불하게 된다.
===================================================================
1. IAM에서 Security Credentials 설정
2. S3 Bucket 생성 및 권한 설정
3. EC2에 goofys 설치
4. S3 연결 유지를 위한 설정
1) fstab에 추가(부팅 시 자동으로 mount되도록)
2) chkconfig에 추가: /etc/init.d 에 goofys 스크립트 추가..
===================================================================

goofys를 통한 EC2-S3 bucket 연결은 대용량 스토리지가 필요하거나, 데이터를 공유하는 시스템에서 효율적으로 활용할 수 있다.
goofys라는 패키지를 이용해서 S3 Bucket에 접근하기 때문에, 파일 Read/Write 속도가 EBS에 비해 상대적으로 느린편이다.
그럼에도 goofys를 사용하는 것에는 장점이 있다.
다른 옵션인 s3fuse에 비해 성능이 뛰어나다.
EBS는 1개의 인스턴스에만 붙일 수 있지만 S3는 security credentials만 발급받아 등록해두면 여러 인스턴스에서 파일시스템처럼 접근이 가능하기 때문에 매우 편리하다.
프로젝트 성격에 맞게 EBS와 적절히 조합해서 적용하면 비용 효율적인 서비스 구축에 도움이 될 것이다.


'Cloud' 카테고리의 다른 글

AWS study...  (0) 2019.08.02
아키텍처 예시  (0) 2019.07.11
AWS Study - 참고 페이지  (0) 2019.07.10