Alibaba Cloud CLI を使って ECS のバックアップを取る
こんにちは。クララの吉村です。
前回は云が「1分間バックアップ! ――Alibaba CloudにおけるECSのバックアップ方法」をご紹介しました。
今回は、同じことを Alibaba Cloud CLI を使った方法でやってみましょう。
Alibaba Cloud CLI のインストール
ECSのバックアップについて書きたいので、Alibaba Cloud CLI のインストール方法は割愛します。
リクエストあれば別途記事にします。
ECSを操作するRAMを作成
Alibaba Cloud をなんでも操作できる権限のRAMユーザを作っても良いですが、今回はECSだけフル権限のRAMユーザを作ります。
1.コンソールよりResource Access Management (RAM)を選択
2.左メニュー「ユーザー」を選択して画面遷移後に、右上の「新規ユーザー」をクリック
3.ユーザ作成です。以下のようになってます。
項目 | 説明 |
ログイン名 | 必須項目
ユーザーのログイン名を入力しましょう。 1 ~ 64 文字で指定する必要があります。使用できる文字は、大小文字の英字、数字、”.”、”_”、”-” です |
表示名 | Alibaba Cloud で見える表示名です。
必要に応じて分かりやすい表示名をつけましょう。 文字数は 1 ~ 128 文字で、漢字、平仮名、片仮名または、小文字の英字、数字、”@”、”.”、”_”、”-” を使用できます。 |
補足 | Alibaba Cloud で見える説明文です。メモ代わりに。 |
チェックボックス | AccessKeyを自動生成するかどうかのチェック |
4.AccessKeyを保存
Alibaba Cloud CLI でこちらのAccessKeyを利用するので、必ず保存しておきましょう。
(AKと略すのか!)
5.作成した「ecs-user」にアクセス権限を付与
許可をクリック
今回は「AliyunECSFullAccess」権限を付与します。右側の窓にポリシーを移動したら「OK」
これでRAMの準備完了です。
ECSを操作するCLIを設定
Alibaba Cloud CLI とRAMの設定が終わったので、CLIで先ほど作った ecs-user を操作しましょう。
ちなみに、私の CLI 操作環境は
- CentOS 6
- python 2.7 (pyenv 利用)
- Aliyun CLI 2.1.9 (pip インストール)
となります。
まずは、ecs-user のプロファイルを設定します。
リージョンの選択はこちらを参考にしてください。
https://jp.alibabacloud.com/help/doc-detail/40654.htm
$ aliyuncli configure --profile ecs-user Aliyun Access Key ID [None]: YOUR_ACCESS_KEY Aliyun Access Key Secret [None]: YOUR_ACCESS_KEY_SECRET Default Region Id [None]: ap-northeast-1 Default output format [None]: json # 確認 $ cat ~/.aliyuncli/configure [profile ecs-user] output = json region = ap-northeast-1
次に ecs を操作するSDKをインストールします。
Alibaba Cloud CLI の場合には、最初からすべてのSDKをインストールしている場合と、必要なものを後からインストールする場合があります。
今回私はpipでインストールしているため、後からインストールするパターンでした。
$ pip install aliyun-python-sdk-ecs # 確認 $ aliyuncli ecs help usage: aliyuncli <command> <operation> [options and parameters] [ecs] valid operations as follows: # 操作できること一覧がずらーっと表示されます。省略。
CLIでスナップショットを作成
それでは、操作していきます。
これからの操作全てに、–profile ecs-user をつけますが、これは別のRAMユーザとの操作を明示的に分けるためです。
# Snapshot の一覧を表示 $ aliyuncli ecs DescribeSnapshots --profile ecs-user # json形式で出てきます。 # json を整形する場合には、jq などを必要に応じて利用してください。 # Snapshot を作成する $ aliyuncli ecs CreateSnapshot --DiskId YOUR_DISK_ID --SnapshotName Test-Aliyuncli-SnapShot --profile ecs-user { "SnapshotId": "s-6we8rr4go7cld0ea0g5t", "RequestId": "FFE9C702-F548-419D-BEFB-55004D952F15" } # しばらくするとSnapshotが作成されています。 $ aliyuncli ecs DescribeSnapshots --profile ecs-user "Snapshots": { "Snapshot": [ { "Status": "accomplished", "ProductCode": "", "Description": "", "Tags": { "Tag": [] }, "SnapshotName": "Test-Aliyuncli-SnapShot", "SourceDiskType": "system", "CreationTime": "2018-04-03T03:05:32Z", "SnapshotId": "xxxxxxxxxxxx", "SourceDiskId": "xxxxxxxxxxxx", "SourceDiskSize": 40, "SourceStorageType": "disk", "Encrypted": false, "Usage": "none", "Progress": "100%" },
CLIでイメージを作成
続いて、スナップショットから イメージを作ってみましょう。
# カスタムイメージを確認 $ aliyuncli ecs DescribeImages --profile ecs-user | jq '.Images.Image[] | select (.ImageOwnerAlias == "self")' # Snapshotからイメージを作成 $ aliyuncli ecs CreateImage --SnapshotId YOUR_SNAPSHOT_ID --ImageName Test-Aliyuncli-Image --profile ecs-user { "RequestId": "xxxxx-xxxx-xxxx-xxxxxxxx", "ImageId": "xxxxxx" } # しばらく待つと、カスタムイメージが出来ています。 $ aliyuncli ecs DescribeImages --profile ecs-user | jq '.Images.Image[] | select (.ImageOwnerAlias == "self")'
それでは以上です。
次回もお楽しみに。