https://dev.classmethod.jp/articles/storage-gateway-cachevolume-introduction/
https://docs.aws.amazon.com/ja_jp/storagegateway/latest/vgw/create-volume-gateway-volume.html
Cached volumes - Stores your primary data in Amazon S3 and retains frequently accessed data locally in cache for faster access.
Stored volumes - Stores all of your data locally while also backing it up asynchronously to Amazon S3. Gateways using this volume type cannot be deployed on Amazon EC2.
前提:
デフォルトセキュリティグループ
インバウンド
172.31.0.0/16 全トラフィック許可
0.0.0.0/0 SSH許可
0.0.0.0/0 RDP許可
アウトバウンド
0.0.0.0/0 全トラフィック許可
このセキュリティグループを
Linuxクライアント、VPCエンドポイント、Gatewayに適用
AZは1Aを使用
VPCはデフォルトを使用
GatewayをEC2インスタンスで作成する場合の要件:
m4 または m5 インスタンスタイプ
インスタンスサイズ xlarge
追加ディスク1 Cache 150 GiB
追加ディスク2 Upload Buffer 150 GiB ★
-- 1. コマンド等のインストール
-- 1.1 aws cli version 2 インストール
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version
-- 1.2 jqインストール
sudo yum -y install jq
-- 1.3 iscsiクライアントインストール
sudo yum install -y iscsi-initiator-utils lsscsi
sudo systemctl start iscsid
sudo systemctl enable iscsid
sudo systemctl status iscsid
-- 2. Storage Gateway用EC2インスタンスの作成
aws-storage-gateway-1653687664
ami-03e1dde7bbeb57eef
m5.xlarge (4vCPU 16GiB)
aws ec2 run-instances \
--image-id ami-03e1dde7bbeb57eef \
--instance-type m5.xlarge \
--key-name key1 \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=gateway}]' \
--subnet-id subnet-11111111111111111 \
--associate-public-ip-address \
--block-device-mappings '[
{
"DeviceName": "/dev/sdb",
"Ebs": {
"DeleteOnTermination": true,
"VolumeSize": 150
}
},
{
"DeviceName": "/dev/sdc",
"Ebs": {
"DeleteOnTermination": true,
"VolumeSize": 150
}
}
]'
aws ec2 describe-instances
-- 3. VPCエンドポイント作成
aws ec2 create-vpc-endpoint \
--vpc-endpoint-type Interface \
--vpc-id vpc-22222222222222222 \
--service-name com.amazonaws.ap-northeast-1.storagegateway \
--subnet-ids "subnet-33333333333333333" "subnet-11111111111111111" "subnet-44444444444444444" \
--security-group-ids "sg-55555555555555555" \
--private-dns-enabled
aws ec2 describe-vpc-endpoints
-- 4. Storage Gatewayのアクティベーション
aws ec2 describe-vpc-endpoints
アクティベーションURLの作成
接続先はgatewayのプライベートIPを使用する
ACTIVATION_KEY=$(curl "${ACTIVATION_URL}")
echo ${ACTIVATION_KEY}
aws storagegateway activate-gateway \
--activation-key ${ACTIVATION_KEY} \
--gateway-name gw01 \
--gateway-timezone "GMT+9:00" \
--gateway-region ap-northeast-1 \
--gateway-type CACHED
aws storagegateway list-gateways
aws storagegateway describe-gateway-information \
--gateway-arn arn:aws:storagegateway:ap-northeast-1:999999999999:gateway/sgw-88888888
GatewayStateがRUNNINGになるまで待つ
-- 5. ローカルディスクの設定
aws storagegateway list-gateways
aws storagegateway list-local-disks \
--gateway-arn arn:aws:storagegateway:ap-northeast-1:999999999999:gateway/sgw-88888888
aws storagegateway add-cache \
--gateway-arn arn:aws:storagegateway:ap-northeast-1:999999999999:gateway/sgw-88888888 \
--disk-ids /dev/nvme1n1
aws storagegateway add-upload-buffer \
--gateway-arn arn:aws:storagegateway:ap-northeast-1:999999999999:gateway/sgw-88888888 \
--disk-ids /dev/nvme2n1
aws storagegateway list-local-disks \
--gateway-arn arn:aws:storagegateway:ap-northeast-1:999999999999:gateway/sgw-88888888
-- 6. ボリュームの作成
aws storagegateway create-cached-iscsi-volume \
--gateway-arn arn:aws:storagegateway:ap-northeast-1:999999999999:gateway/sgw-88888888 \
--volume-size-in-bytes 10737418240 \
--target-name target01 \
--network-interface-id 172.31.40.116 \
--client-token 12345 \
--no-kms-encrypted
aws storagegateway list-volumes
aws storagegateway describe-cached-iscsi-volumes \
--volume-arns arn:aws:storagegateway:ap-northeast-1:999999999999:gateway/sgw-88888888/volume/vol-00000000000000000
-- 7. クライアントからボリュームを利用する
sudo /sbin/iscsiadm --mode discovery --type sendtargets --portal 172.31.40.116:3260
sudo /sbin/iscsiadm --mode node --targetname iqn.1997-05.com.amazon:target01 --portal 172.31.40.116:3260,1 --login
lsscsi
ls -l /dev/sdb
lsblk
-- 8. ボリューム初期化とフォーマット
sudo parted /dev/sdb mklabel msdos
sudo parted -a opt /dev/sdb mkpart primary ext4 0% 100%
sudo mkfs.ext4 -L datapartition /dev/sdb1
sudo mkdir -p /mnt/data
sudo mount -o defaults /dev/sdb1 /mnt/data
df -h
sudo dd if=/dev/zero of=/mnt/data/sampledata bs=1M count=1024
ls -lh /mnt/data
sudo umount /mnt/data
-- 9. クリーンアップ
-- Gatewayの削除
aws storagegateway list-gateways
aws storagegateway delete-gateway \
--gateway-arn arn:aws:storagegateway:ap-northeast-1:999999999999:gateway/sgw-88888888
-- VPCエンドポイントの削除
aws ec2 describe-vpc-endpoints
aws ec2 delete-vpc-endpoints \
--vpc-endpoint-ids vpce-66666666666666666
-- EC2インスタンスの削除
aws ec2 describe-instances
aws ec2 terminate-instances --instance-ids i-aaaaaaaaaaaaaaaaa