AMI作成の反対の処理をするものです。AMI登録解除では、AMIのみを消しました。
ここでは、AMI登録解除してからスナップショットを削除します。 1,IAM
---------------------------------------
AWSサービス:Amazon EC2
アクション :DescribeImages と DeregisterImage と DeleteSnapshot
Amazonリソースネーム(ARN):*
---------------------------------------
2,プログラム仕様
●入力パラメータ
・IAMユーザの”アクセスキーID”と”・シークレットアクセスキー”
・AMI ID
●処理内容
指定されたAMI IDに設定されているスナップショットIDを取得しておきます。
AMIを登録解除してから、スナップショットを削除します。
●エラー処理
特になし
3,画面構成
4,プログラム
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 | Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim _AWSID As String = TextBox1.Text
Dim _AWSPass As String = TextBox2.Text
Dim _AMIID As String = TextBox3.Text
Dim cred As Amazon.Runtime.BasicAWSCredentials
cred = New Amazon.Runtime.BasicAWSCredentials(_AWSID, _AWSPass)
Dim ec2client As Amazon.EC2.AmazonEC2Client
ec2client = New Amazon.EC2.AmazonEC2Client(cred, Amazon.RegionEndpoint.APNortheast1)
'①AMIの情報を取得します。
Dim reQ1 As New Amazon.EC2.Model.DescribeImagesRequest
reQ1.ImageIds.Add(_AMIID)
Dim Res1 As Amazon.EC2.Model.DescribeImagesResponse
Res1 = ec2client.DescribeImages(reQ1)
'スナップショットはアレイリストに格納します
Dim wSnapShots As New ArrayList
Dim wImg As Amazon.EC2.Model.Image = Res1.Images(0)
For Each wImgBlock As Amazon.EC2.Model.BlockDeviceMapping In wImg.BlockDeviceMappings
If Not wImgBlock.Ebs Is Nothing Then
wSnapShots.Add(wImgBlock.Ebs.SnapshotId)
End If
Next
'②AMI登録解除します
Dim reQ2 = New Amazon.EC2.Model.DeregisterImageRequest
reQ2.ImageId = _AMIID
Dim Res2 As Amazon.EC2.Model.DeregisterImageResponse
Res2 = ec2client.DeregisterImage(reQ2)
'③スナップショットを削除します
For i As Integer = 0 To wSnapShots.Count - 1
Dim reQ3 = New Amazon.EC2.Model.DeleteSnapshotRequest
reQ3.SnapshotId = wSnapShots(i)
Dim Res3 As Amazon.EC2.Model.DeleteSnapshotResponse
Res3 = ec2client.DeleteSnapshot(reQ3)
Next
End Sub
|
5,解説①11-24行目:DescribeImagesを使ってAMIの構成情報を取得します 19行目の変数wImgにAMIのボリューム(スナップショット)情報が格納されています。 この段階でAMIが存在するのに、スナップショットを削除することはできませんので いったんアレイリストに保管しておきます。 ②26-30行目:AMI登録解除して ③32-39行目:スナップショットを削除します。
これで”AMI作成”の反対の意味である”削除”ができたことになります。 |
|