AWS_FAQ

EC2를 생성 하면서 EBS를 생성 했는데 용량을 줄이거나, 늘려야 할 때가 있습니다.


데이터가 얼마나 늘어날지 예상이 되질 않아 사이즈를 넉넉하게 잡곤 하는데, 

예상보다 사이즈가 늘지 않거나, 갑자기 급증 한다면? 


EBS 사이즈를 늘리거나, 다른 대체 스토리지(예. S3... )로 분산 이동 해야 할 것입니다.


EBS의 용량을 늘리거나, 줄이는 방법을 소개 합니다.


현재까지 AWS 자체적으로 EBS를 줄이거나, 늘리는 기능을 제공하진 않습니다.


 사이즈 조정 하고자 하는 두가지 방법 중 snapshot을 활용하는 방벙에 대해 소개 합니다.

-  Snapshot 기능 활용

-  Linux의 경우 Rsync 활용 



 1. EBS Snapshot 생성


aws_ebs_snapshot1.png



2. 생성 된 Snapshot 으로 Volume 생성

aws_ebs_snapshot3.png



3.1 생성 할 Volume 사이즈 지정


aws_ebs_snapshot4.png

* 사용하고자 하는 EC2의 AZ와 동일한 AZ를 선택할 것.


3.2. Snapshot으로 생성 한 Volume 이름 지정 및 EC2에 Attach

volumes => 볼륨 선택 => Actions => Attach Volume

aws_ebs_snapshot5.png


3.3. Attach Volume 화면

aws_ebs_snapshot6.png

  * 볼륨의 경우는 아래와 같이 장치명을 변경 된다는 안내 ==> 

  * 아래 그림 처럼 EC2내에서 해당 볼륨은 /dev/xvdf 라는 장치로 인식


 



4. 디스크 교체 (EBS 볼륨 변경)

EC2 접속해서 디스크 상태를 확인 합니다.


# fdisk -l 


=== EC2 내 인식 된 용량 및 Device name.

aws_ebs_snapshot7.png


위 스크린샷에는 데이터 영역의 EBS가 존재하지 않지만, 

/dev/xvdd 라는 장치로 /data 영역에 마운트 되어있다고 가정 합니다.


[ec2-user@localhost ~]$ df -Th

Filesystem     Type   Size  Used Avail Use% Mounted on

/dev/xvda1     ext4   7.9G  3.6G  4.0G  47% /

tmpfs          tmpfs  498M     0  498M   0% /dev/shm

/dev/xvdd1     ext4    42G  708M   39G   2% /data


볼륨을 추가로 생성 했기 때문에, 추가로 마운트 해주어야 합니다.

(관리자 권한을 필요로 하는 작업이 있기에 root 권한 획득합니다.)


권리자 권한 상승 => 임시 디렉토리 생성 => 생성 된 디렉토리에 추가 된 볼륨 마운트 => snapshot 이후 변동 된 데이터 sync 

$ sudo su -

# mkdir /data_new

# mount /dev/xvdf1 /data_new


 웹 서비스나 경로 지정을 상대경로로 지정한 경우에는 디렉토리명을 교체 할 필요 없다면 그대로 /data_new 등과 같이 지정해서 그대로 사용하면 됩니다.
절대경로로 지정 했거나, 서비스 레벨에서 수정 해야 하는 경우가 대부분인데 이 경우는 아래처럼 기존 볼륨을 unmount 수행하고 추가 된 볼륨을 mount 해줍니다.

### 기존 데이터 sync

# rsync -auvg /data/ /data_new/

### Device의 UUID 확인 

# blkid 

/dev/xvda1: LABEL="cloudimg-rootfs" UUID="27161562-4167-40e6-90ad-0c63a3b9b766" TYPE="ext4" 
/dev/xvdd1: UUID="c8981060-3234-4801-b431-0fe22f28ed92" TYPE="ext4"
/dev/xvdf1: UUID="c8981060-4734-4802-b431-0fe22f46od76" TYPE="ext4"

### 부팅시 자동 마운트를 위해서 /etc/fstab 등록 및 변경
LABEL=cloudimg-rootfs   /        ext4   defaults,discard        0 0
UUID="c8981060-3234-4801-b431-0fe22f28ed92"     /data   ext4    defaults,discard 1 0   ## 기존 설정으로 삭제 하거나, # 주석처리 
UUID="c8981060-4734-4802-b431-0fe22f46od76"     /data   ext4    defaults,discard 1 0  ## 추가 된 볼륨 설정 추가


### /data 디렉토리에 종속 된 서비스가 있다면 서비스 중지 후 마운트 해제

# umount /data

# umount /data_new

### crontab에 등록 해둔 장치 모두를 마운트 시킵니다.

# mount -a 


# df -Th

Filesystem     Type      Size  Used Avail Use% Mounted on

/dev/xvda1     ext4      7.8G  1.6G  5.8G  22% /

/dev/xvdf1     ext4      42.0G   44M  9.2G   1% /data


중지 시켰던 서비스 시작.


모두 확인이 되고 난 이후엔 기존 볼륨은 detach 후 삭제 합니다.



=== 부록 : Root (OS 영역) 볼륨 교체 === 

부팅역할을 수행하는 EBS 였다면, 콘솔에서 EC2 stop을 진행해 종료 합니다.

이후에  기존 Root Device EBS를 떼어냅니다. (Detach Volume)


* 주의하실 부분은 root device의 장치명을 기억 하셔야합니다.


보통 리눅스의 경우 /dev/sda1


3.1 까지의 작업은 볼륨 생성까지 동일하게 진행하고, 생성 된 볼륨을 Attach 해줍니다.

Attach 할때 device name을 입력 할때 기억 해둔 장치명을 입력. (예: /dev/sda1)


EC2를 시작하게 되면 추가 된 볼륨으로 부팅 됩니다.


번호 제목 글쓴이 날짜 조회 수
51 Sub 도메인 확장 호스트웨이 2016.04.27 313
50 S3 성능 고려 사항 호스트웨이 2016.04.27 376
49 AWS divice farm 지원 단말기 목록 검색 호스트웨이 2015.09.13 464
48 s3cmd multipart uploads 호스트웨이 2015.09.11 466
47 AWS ELB TCP 적용 방법 호스트웨이 2016.06.01 725
46 AWS S3 파일 타임스템프 확인 호스트웨이 2015.09.13 751
45 aws cli preview 기능 사용 호스트웨이 2015.09.13 796
44 Linux AWS CLI 환경 구성 호스트웨이 2015.09.13 894
43 AWS Lamda 이용하여 cron 처럼 사용 file 호스트웨이 2015.09.13 967
42 T2 instance 특징은 무엇인가요? 호스트웨이 2016.04.28 1083
41 AWS key 파일 변환 (pem.key -> ppk.key) 호스트웨이 2015.09.22 1251
40 EC2 Type 별 EIP를 몇개까지 할당 할 수 있나? 호스트웨이 2016.04.28 1403
39 AWS를 직접 사용하는 것과 호스트웨이를 통했을 때의 차이점은 무엇인가요? 호스트웨이 2015.10.26 1430
38 sub domain route53 으로 위임 호스트웨이 2015.09.25 1487
37 AWS Linux Bastion instance SSH Tunneling 사용 방법 file 호스트웨이 2016.06.01 1793
36 S3 DNS CNAME 설정 주의 사항 호스트웨이 2015.09.15 1845
35 apache와 iELB 간 이슈 호스트웨이 2015.09.06 1848
34 AWS EC2 instance 시동시 cloud-init가 hostname을 IP 주소로 설정 호스트웨이 2015.09.13 1967
33 WEB 서비스 ELB 사용 시, Health check 설정 방법(권장) 호스트웨이 2015.09.22 2178
32 AWS EC2 Instance 생성 후 접속 호스트웨이 2015.09.08 2333