일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- codecommit
- clone
- mininet
- VPC
- S3
- 하나머니
- Python
- 앱테크
- Container
- 재테크
- DocumentDB
- docker
- 실사용
- 리워드앱
- namespace
- Linux
- 토스카드
- aws codecommit
- 후기
- network
- 포인트앱
- AWS
- 리뷰
- MongoEngine
- 도커
- built-in
- MongoDB
- python3
- 커피머니불리기
- docker network
- Today
- Total
ㅍㅍㅋㄷ
AWS Storage Gateway 설치 본문
AWS Storage Gateway
이게 뭔지는 지난 포스트에 설명 했으니 참고
일단 Storage Gateway 설치를 해보자.ㅎ
참고로 이 포스트에서 설치할 타입은 Gateway-Cached volumes 방식 이며,
appliance를 올릴 인프라가 따로 없는 관계로, 그냥 EC2에 올릴 예정이다.
메뉴에서 Storage Gateway를 선택-
Hybrid Storage Integration 이라고 멋지게 써 있다. (캬-)
클릭하면 gateway를 관리할 수 있는 console 화면이 뜬다.
(점점 AWS는 IaaS를 넘어 PaaS와 SaaS 형태로 진화하는 느낌이다.)
Deploy a new Gateway on Amazon EC2 클릭!
EC2에 배포하겠다고 선택하면 아래와 같이 설치 방법을 안내해 준다.
Gateway 방식은 EC2에 설치할 경우 두가지 방식을 지원하는데, Gateway-Cached volumes 방식과 Gateway-Virtual Tape Library (VTL) 방식이다.
이 중 Gateway-Cached volumes 방식으로 해보겠다.
Gateway appliance 이미지는 AWS Marketplace에 있다고 안내 해 준다.
걸려 있는 link 중 "Launch Gateway AMI" 클릭하면 바로 AWS Marketplace로 이동한다.
AWS는 이런 eco system이 참 잘되있는거 같다. AWS 이전에, 누가 과연 인프라 환경을 위한 이런 Market system을 상상했겠는가.
게다가 정말 편리하게도, Market place에서 제공한 이미지를 배포만 하면 바로 사용 가능하다. (AWS쩔어)
일단 continue를 누르고 설치를 시작해보자.
위와 같이 appliance 배포를 두가지 스타일로 가능한데,
간편하게 제공되는 1 click 방식과, 원하는 방식으로 설치하는 Manual 방식을 지원한다.
주의할 점은, Gateway 방식 중 Cached volumes 방식으로 사용하고자 할때는 반드시 1 click launch 를 선택하지 말고 manual launch 선택하자.
설정하다보니 Cached volumes 방식으로 사용하려면, appliance에 EBS 볼륨이 두개 이상 필요한데 (upload buffer, cache 최소 한개씩), 1 click launch의 경우에는 swap disk용 EBS 볼륨이 하나만 붙어서 생성된다. 그러면 cache 용 볼륨 이나 upload buffer 용 볼륨을 지정할 수 없다. (뭐야 이거ㅋ)
아무튼, manual launch를 선택한 후, 적당한 region을 고른다.
이후에는 기존에 익숙한 EC2 배포 절차 대로 선택하면 된다.
주의할 점은 instance type은 m3, m4, i2, c3, c4, r3, d2 타입만 배포되며, 최소 xlarge 이상으로 배포해야 한다.
그리고 중요한게 security group 설정이다.
아래는 사용하는 Port list 이니, 해당 포트는 반드시 security group 에 룰을 적용해 주도록 한다.
Protocol | Port | Source | Destination | How Used |
TCP | 443 | Storage Gateway | Internet | Storage Gateway 와 AWS 서비스 endpoint간 통신 |
TCP | 80 | Local Networks | Storage Gateway | local 시스템에서 Storage Gateway 의 activation key를 위한 포트 |
TCP | 3260 | Local Networks | Storage Gateway | local 시스템의 iSCSI 연결을 위한 포트 |
UDP | 53 | DNS 서버 | Storage Gateway | Storage Gateway 와 DNS 통신 |
TCP | 22 | Storage Gateway Local console | Storage Gateway support channel | Gateway에 생기는 issue troubleshooting을 위한 support 포트 |
그리고 또 한가지 주의 할 점은 추가 EBS 볼륨 선택 부분.
위에서 얘기한대로 Cached volumes 방식으로 구축하고자 할 경우, 반드시 cache 용 볼륨과 upload buffer 용 불륨을 2개 이상 추가하도록 한다.
cache 용과 upload buffer 용으로 사용될 볼륨의 size 또한 guideline이 있다.
- cache용 볼륨 사이즈는 전체 저장될 사이즈의 20% 수준으로 지정
- cache용 볼륨 사이즈는 반드시 upload buffer용 보다 크게 지정할 것
암튼, 이렇게 설정하고 VM을 배포한다. 다 만들어질 때까지 잠깐 wait.
잠시 숨을 고르는 동안 appliance 설치가 완료되어 있을 것이다. 이때 생성 완료된 VM의 Public IP를 복사해서 처음 생성할때 화면으로 돌아가 IP를 입력해 준다.
Proceed to Activation 을 클릭하면 Gateway 설정이 시작된다.
Gateway 이름은 내맘대로 정하고,
Timezone은 Seoul로 하고.. 기다리면
volume Gateway에 생성이 되어 있다. ㅋ 오예-
그 다음으로, 아까 appliance 배포 할때 추가로 붙였던
cache 용 볼륨과 upload buffer 용 볼륨의 용도를 설정해 주자.
Gateway 탭을 선택 후 Configure Local Storage를 클릭.
두개는 Cache 용으로 한개는 upload 용으로 선택 ㅋ
이제 실제로 사용할 volume을 만들어보자.
volume 탭 클릭 후 create volume!
Local storage 용도는 아까 위에서 지정 했으니 넘어가고..
알람 지정도 된다. ㅋ
upload buffer 사용용량이 일정 퍼센트 이상이 되었을때 지정한 메일 주소로 알람이 오도록 설정한다.
cache도 동일하게 설정 가능
이제 마지막으로 volume 에 대한 설정을 한다.
Gateway-Cached volume 타입은 volume 한개당 최대 32TB 크기로 생성이 가능하고, 최대 갯수는 32개까지 가능하다.
그러므로 최대 지원 가능한 용량은 1PB 이다.
테스트로 30GB volume 생성해보자.
create volume을 클릭하면, 생성완료!
생성 완료와 함께 iSCSI 인증과 관련된 CHAP 설정 화면이 뜬다.
어차피 테스트 이므로 과감히 skip ㅋ
( success 메세지는 언제봐도 기분이 좋다 ㅋ)
드디어 설정을 완료 했다.
아래와 같이 volume 정보와 iSCSI 타겟 정보도 확인이 가능하다.
VM에 Volume을 붙여보자 (iSCSI)
이제 Gateway쪽 설정은 끝났으니 volume을 붙일 VM을 설정해 보자. VM도 편의상 EC2에서 하나 만들어서 테스트 해보았다.
iSCSI 를 이용해 Volume을 붙이려면 먼저 관련 package 설치부터 하자.
1. Package 설치
root@~~# yum install iscsi-initiator-utils
2. iscsid.conf 설정
node.startup을 자동으로 설정한다.
root@~~# vim /etc/iscsi/iscsid.conf
... (중략)
node.startup = automatic
... (중략)
3. iSCSI Target 검색
root@~~# iscsiadm -m discovery -t st -p <ISCSI_TARGET_HOST_IP>
<ISCSI_TARGET_HOST_IP>:3260,1 iqn.XXXXXXXXcom.amazon:myvolume01
위와 같이 iscsi target 이 한개 검색 된다. volume 명을 보니 아까 만든 volume 이다.
4. iSCSI Target 로그인
root@~~# iscsiadm -m node --targetname "iqn.XXXXXXXcom.amazon:myvolume01" --portal "<ISCSI_TARGET_HOST_IP>:3260" --login
Logging in to [iface: default, target: iqn.XXXXXXcom.amazon:myvolume01, portal: <ISCSI_TARGET_HOST_IP>,3260] (multiple)
Login to [iface: default, target: iqn.XXXXXXXamazon:myvolume01, portal: <ISCSI_TARGET_HOST_IP>,3260] successful.
fdisk로 확인 해 보자
아래와 같이 /dev/sda 디바이스로 32GB disk가 보인다.
root@~~# fdisk -l
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
Disk /dev/xvda: 8589 MB, 8589934592 bytes, 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt
# Start End Size Type Name
1 4096 16777182 8G Linux filesyste Linux
128 2048 4095 1M BIOS boot parti BIOS Boot Partition
Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
5. disk 파티셔닝 및 마운드
먼저 파티셔닝 부터..
root@~~# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xc69d9b02.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-62914559, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-62914559, default 62914559):
Using default value 62914559
Partition 1 of type Linux and of size 30 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
fdisk로 다시 확인해 보면, /dev/sda1 확인된다.
root@~~# fdisk -l
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
Disk /dev/xvda: 8589 MB, 8589934592 bytes, 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt
# Start End Size Type Name
1 4096 16777182 8G Linux filesyste Linux
128 2048 4095 1M BIOS boot parti BIOS Boot Partition
Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xc69d9b02
Device Boot Start End Blocks Id System
/dev/sda1 2048 62914559 31456256 83 Linux
mkfs 로 파일 시스템 생성하고..
root@~~# mkfs.ext4 /dev/sda1
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 7864064 4k blocks and 1966080 inodes
Filesystem UUID: 29f645be-f2af-4648-b4e2-01ae22ccf911
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
mount할 디렉토리 생성 하고, mount 해보자
root@~~# mkdir -p /volume01
root@~~# mount /dev/sda1 /volume01
df 로 확인해 보면, /volume01 디렉토리에 30G 용량의 볼륨이 붙어 있는것을 볼 수 있다.
root@~~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.8G 1.6G 6.1G 21% /
devtmpfs 490M 64K 490M 1% /dev
tmpfs 498M 0 498M 0% /dev/shm
/dev/sda1 30G 44M 28G 1% /volume01
잘된다 ㅋ 굳굳
'IT > AWS' 카테고리의 다른 글
Github 에서 AWS CodeCommit 으로 마이그레이션 - 어렵지 않아요 (0) | 2016.05.13 |
---|---|
AWS CodeCommit 어렵지 않아요 (3) | 2016.05.13 |
AWS Storage Gateway (0) | 2016.04.27 |
goofys를 이용해 AWS S3 mount 해서 사용하기 (1) | 2016.04.27 |
s3fs를 이용해 AWS S3 mount 해서 사용하기 (5) | 2016.04.26 |