こんにちは。クララの吉村です。
前回は云が「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 のプロファイルを設定します。
リージョンの選択はこちらを参考にしてください。
$ 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")'それでは以上です。
次回もお楽しみに。
