VPN経由でのAWS S3から
Alibaba Cloud OSSへの
マイグレーション手順
Ver 1.0
目次
目次 1. はじめに 2. ossfsとは 3. 環境構成図 4. 導入手順 4-1. AWS環境の準備 4-2. Alibaba Cloud環境の準備 4-3.VPN接続 4-3-1.VPNGateway初期設定 4-3-2.AWS側VPCにアタッチ 4-3-3.AWS側ルートテーブルの追加 4-3-4.AWS側静的ルートの追加 4-3-5.Alibaba Cloud側ルートテーブルの追加 4-4.ECSへの設定 4-4-1.AWS CLIインストール 4-4-2.OSSのマウント 4-5.EC2への設定 4-6.AWS VPCエンドポイントの作成 4-7.データ移行 4-8.動作確認 5. 移行時間(参考値) ご利用上の注意事項 改版履歴1. はじめに
本書は、Amazon Web Services(以下AWS)環境のストレージ(AWS S3)に格納されているデータを、 Alibaba Cloudのオブジェクトストレージサービス(以下OSS)へ移行する手順を記載します。移行はAWSと Alibaba CloudをVPNで接続後、AWSの仮想サーバー(以下EC2)にproxy(squid)を設定します。そして、 Alibaba Cloudの仮想サーバー(以下ECS)をOSSと「ossfs」でマウントさせてECSでのコピーコマンドでデー タを移行します。 2. ossfsとは ossfsはOSSをローカルファイルシステムのようにマウントするとこができる、S3FSといったソフトウェアに 基づいて開発されたオープンソースソフトウェアです。以下のような特徴があります。 ・ファイル書き読みやディレクトリやパーミッションのようなPOSIX規格のファイルシステムの機能をサポー ト。 ・大容量ファイルのmultipartアップロードをサポート。 ・MD5によるファイルの状態チェックをサポート。 ・CentOS、Ubuntuに対応(Windows未対応)。
3. 環境構成図 <構成概要> 1) VPN接続 AWSとAlibaba Cloudの東京リージョンにVPCを作成してVPNGatewayを用いて VPN接続。 2) AWSのクラウド環境 東京リージョンに作成したAWS S3のBucketに、移行用テストデータを配置。 VPN接続済みのVPCにEC2を配置し、proxy環境(squid)を作成。 3) Alibaba Cloud環境 東京リージョンに移行先として、OSSにBucketを作成。
VPN接続済みのVPCにECSを配置し、ossfsと AWS CLIを設定。
ECSからAWS CLIのコピーコマンドで、AWS S3からデータをOSSへ移行。
4. 導入手順 本手順では、AWS・Alibaba Cloud環境の準備からVPN経由での移行を実施し、動作確認までの具体的 な手順を記載します。 4-1. AWS環境の準備 本手順書では下記内容でAWS環境を準備します。記載していない項目は任意です。 ■S3 バケット ・リージョン:Tokyo ・バケット名: vpn-test-to-oss ・アクセス権:パブリック許可しない ・移行データ:移行用データを配置(本手順では参考として10GBのダミーファイル) ■VPC ・IPv4 CIDR:10.0.0.0/16 ・ルートテーブル:操作端末のIPアドレスのみインターネットゲートウェイに向ける ■EC2 ・OS:Amazon Linux ・システムディスクサイズ:8GB ・ホスト名:s3-vpn-oss(任意) ・セキュリティーグループ設定:ソースがAlibaba VPCのセグメントに対してTCP3128許可 :ソースが操作端末のIPアドレスに対してTCP22許可 ■アクセスキー ・AWS CLIで操作するための、バケットへのアクセス権があるアクセスキー
4-2. Alibaba Cloud環境の準備 下記内容でAlibaba Cloudに環境を準備します。記載していない項目は任意です。 ■OSS バケット 作成方法は『静的Webホスティング(OSS)手順書』をご参照ください。 ・リージョン:Tokyo ・バケット名: oss-from-s3(任意) ・ACL:非公開 ■VPC VPCの設定については『VPC:ECS作成手順書』をご参照ください。 ・IPv4 CIDR:192.168.0.0/16 ■ECS インスタンスの作成については『VPC:ECS作成手順書』をご参照ください。 ・リージョン:アジア東南1ゾーンA
・インスタンスタイプ:ecs.sn1ne.large vCPU:2、メモリ:4 GiB ・イメージ(パブリックイメージ):CentOS 7.4 64bit ・システムディスクサイズ:移行用データサイズ+5GB以上(OS利用分以外に移行データサイズのキャッ シュが一時的に発生するため) ・セキュリティーグループ設定:ソースがAWS VPCのセグメントに対してTCP3128許可 :ソースが操作端末のIPアドレスに対してTCP22許可
4-3.VPN接続 AWSのVPCとAlibaba CloudのVPCをVPNで接続します。 4-3-1.VPNGateway初期設定 『AlibabaCloud_VPNGateway⇄AWS_VPNgateway接続設定手順』を参照して設定し、「4.接続確認」でAWS はアップ、Alibaba Cloudは成功と表示されることを確認します。 4-3-2.AWS側VPCにアタッチ ①AWSのコンソールから作成した仮想プライベートゲートウェイを選択して、アクションから「VPCにアタッ チ」をクリックします。 ②EC2を作成しているVPCを選択して、「はい、アタッチする」をクリックします。
③仮想プライベートゲートウェイの状態が「attached」になっていることを確認します。 4-3-3.AWS側ルートテーブルの追加 ①AWSのVPCに紐づいているルートテーブルを選択して、「編集」をクリックします。
②送信先にAlibaba Cloud VSwitchのCIDERを入力し、ターゲットにAWSで作成した仮想プライベートゲート ウェイを選択して、「保存」をクリックします。
③追加したルートが表示されていることを確認します。 4-3-4.AWS側静的ルートの追加 ①作成したVPN接続を選択して、「静的ルート」の「編集」をクリックします。
②「別のルールの追加」をクリックして、IPプレフィックスにAlibaba Cloud VswitchのCIDERを入力して、「保 存」をクリックします。 ③編集リクエストの成功画面で「閉じる」をクリックします。 ④設定したIPプレフィックスの状態が使用可能であることを確認します。
4-3-5.Alibaba Cloud側ルートテーブルの追加 ①Alibaba CloudのコンソールからVPN接続しているVPCに紐づくルートテーブルのIDをクリックします。 ②ルートテーブルの詳細画面で「ルートエントリの追加」をクリックして、各項目を入力後「OK」をクリックし ます。 ・ターゲットCIDER:AWSのサブネット ・Next Hopタイプ:VPN Gateway
・VPN Gateway:「AlibabaCloud_VPNGateway⇄AWS_VPNgateway接続設定手順」で作成したAlibaba Cloud のVPN Gateway
③ルートエントリが追加されていることを確認します。
4-4.ECSへの設定 ・S3にアクセスするため、ECSへAWS CLIをインストール ・OSSにアクセスするため、ECSへossfsをインストール ・移行ファイルサイズが大きいとセッションが切れてしまうことがあるため、ECSへscreenをインストール 4-4-1.AWS CLIインストール AWSのコマンドラインツールをインストールして、コンフィグを設定します。 その後、「aws s3 ls」が実行できることを確認します。 (現状ではECSからS3へのアクセスはインターネット経由ですが、コマンドラインツールの正常実行を確認 します)
# pip install awscli Collecting awscli
Downloading http://mirrors.aliyun.com/pypi/packages/c0/ …
Successfully installed awscli-1.16.45 botocore-1.12.35 colorama-0.3.9 docutils-0.14 futures-3.2.0 jmespath-0.9.3 pyasn1-0.4.4 python-dateutil-2.7.5 rsa-3.4.2 s3transfer-0.1.13 six-1.11.0
# aws --version
aws-cli/1.16.45 Python/2.7.5 Linux/3.10.0-693.2.2.el7.x86_64 botocore/1.12.35 # aws configure
AWS Access Key ID [None]: AWSアクセスキー
AWS Secret Access Key [None]: AWSシークレットキー
Default region name [None]: ap-northeast-1 Default output format [None]: json
# aws s3 ls
2018-10-30 10:31:50 vpn-test-to-oss
4-4-2.OSSのマウント OSSをECSにマウントさせるため、ossfsをインストールして設定します。 ※mountpointは任意の名称に変更可能です lsコマンドでマウントしたOSSのバケット内を確認します。 (下記ではtest.txtを事前にOSSにアップロードしています) # wget https://github.com/aliyun/ossfs/releases/download/v1.80.5/ossfs_1.80.5_centos7.0_x86_64.rpm # yum localinstall ossfs_1.80.5_centos7.0_x86_64.rpm
# vi /etc/passwd-ossfs
OSSのバケット名:Alibaba Cloudアクセスキー:Alibaba Cloudシークレットキー
:wq
# chmod 640 /etc/passwd-ossfs # mkdir mountpoint
# ossfs OSSのバケット名 mountpoint/ -ourl=oss-ap-northeast-1-internal.aliyuncs.com -o multipart_size="1000" # ls mountpoint/ test.txt 4-4-3.screenのインストール 移行するファイルのサイズによってはOSSのマルチパートアップロード機能の処理中にセッションが切れ てしまうことがあります。退避策としてscreenをインストールします。
# yum -y install screen
4-5.EC2への設定
ECSからS3にアクセスするため、EC2へsquidをインストールします。 # sudo yum install squid
# sudo chkconfig squid on # sudo service squid start # sudo vi /etc/squid/squid.conf
acl localnet src xxx.xxx.xxx.xxx/24 #Alibaba Cloud VSwitch CIDERを追加
:wq
# sudo service squid restart
EC2からS3にインターネットを経由せずアクセスするため、VPCエンドポイントを作成します。 ①VPCのメニューから「エンドポイントの作成」をクリックします。 ②エンドポイントの作成画面でサービス「com.amazonaws.ap-northeast-1.s3」を選択し、VPN接続している VPCを選択してルートテーブルにチェックを入れて、エンドポイントの作成をクリックします。
③「閉じる」をクリックします。
④作成したエンドポイントのステータスが使用可能となっていることを確認します。
4-7.データ移行 ECS上でAWS CLIのコピーコマンドを用いて、S3からOSSにVPN経由でデータを移行します。 ①ECSで実行するAWS CLIの向き先をインターネットではなく、VPNで接続したEC2経由にするため、環境 変数に追記します。 ※exportで設定した環境変数はログアウトすると消えます # export HTTP_PROXY=EC2のプライベートIPアドレス:3128 # export HTTPS_PROXY=EC2のプライベートIPアドレス:3128 ②セッションが切れることを防ぐため、screenを起動します。 # screen -S migration ③データを移行します。
# aws s3 cp s3://vpn-test-to-oss/dummy10GiB.txt mountpoint/
上記はS3のvpn-test-to-ossバケット内にあるdummy10GiB.txtをマウントされているOSSへコピーしていま す。
④EC2でsquidのアクセスログを確認します。 # sudo tail /var/log/squid/access.log
1541636356.549 8271 ECSのプライベートIPアドレス TCP_TUNNEL/200 4239 CONNECT vpn-test-to-oss.s3.ap-northeast-1.amazonaws.com:443 - HIER_DIRECT/52.219.68.48 - ⑤squidのアクセスログが確認できたら、コピーが完了するまでscreenのセッションからデタッチします。 ECSにログインしているターミナルでコントロールとaを同時に押してから、dを押します。 <ctrl> + <a> <d> ⑥screenのセッションにアタッチして、aws s3 cpコマンドが完了していてエラーが表示されていないことを 確認します。 おおよその移行時間は5.移行時間(参考値)を参照してください。 # screen -R
download: s3://vpn-test-to-oss/dummy10GiB.txt to mountpoint/dummy10GiB.txt
4-8.動作確認 移行先のOSSにログインして、移行が正常に行われたかを確認します。
5. 移行時間(参考値)
本手順での移行時間の参考値を以下に記載します。 Alibaba CloudのVPNGatewayの帯域幅は100Mbpsにしています。 ・データサイズ:250GB → 移行時間:約9時間50分 ・データサイズ:100GB → 移行時間:約3時間50分 ・データサイズ:10GB → 移行時間:約25分弱ご利用上の注意事項 この資料は、Alibaba Cloudの提供するクラウドサービスの機能について説明したもので、サービスのご 利用を検討する際の参考となる技術的情報を提供するものです。 今後、本資料はクラウドサービスの機能追加・変更等に合わせて、予告なく変更される場合がありま す。閲覧された情報は最新のものではない場合がありますので、予めご了承下さい。 改版履歴 日付 版数 変更内容 2018/11/15 1.0 初版作成 本文書中に記載されている社名・商品名等は各社の商標または登録商標です。