{StorageGateway}Creating a Volume Gateway

 

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_URL="http://172.31.40.116/?gatewayType=CACHED&activationRegion=ap-northeast-1&vpcEndpoint=vpce-66666666666666666-77777777.storagegateway.ap-northeast-1.vpce.amazonaws.com&no_redirect"


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