AWS Tools for Windows PowerShell


 [Home]  [Index] 投稿 2015/05/13


 

 

使用準備

はじめに

AWS Tools for Windows PowerShell は Windows PowerShell から AWS を利用できるようにするためのコマンドレットの集合です。AWS Tools をインストールすると AWS SDK for .NET も同時にインストールされます。これは AWS Tools が SDK を利用しているためです。


インストール

初めて PowerShell を使う場合は、実行ポリシーが "Restricted" (つまりスクリプトの実行ができない状態) になっているのでこれを変更します。方法ですが、「Windows PowerShell の基本」を参照してください。

AWS CLI をまだ使ったことがない場合、AWS CLI を使うためのキーの取得が必要になります。これは、「AWS CLIの使い方」を参照してください。同時に AWS CLI もインストールしておきます。

以上の確認、設定が終わったら、インストーラをダウンロードします。インストールには管理者権限が必要です。

[Top]


設定

AWS Tools のコマンドレットを使う場合、認証のためのキーが必要になります。これをいちいち指定するのは面倒なのでプロファイルで指定してやります。そうすることで、コマンドレットの入力時にキーの指定が不要になります。プロファイルとはスクリプトの一種で場所は 既定の変数 $profile を表示すると知ることができます。初めて使う場合、このファイルはディレクトリも含めて存在しないはずなので、新規に作成します。

プロファイルの内容ですが、下のような感じになります。これ以外にもコマンドレットは色々記述して構いません。IAM_UserName はキーを取得した時に決めたユーザ名です。

# AWS Tools をインポートする。(AWS Tools のマニフェストの指定)
Import-Module "C:\Program Files (x86)\AWS Tools\PowerShell\AWSPowerShell\AWSPowerShell.psd1"

# AWS Credentials をこのセッションで設定する。
Set-AWSCredentials -AccessKey AKIAJ??????????? -SecretKey eJhbcJI2l???????????????????jlk9WaP -StoreAs IAM_UserName

プロファイルを保存したら、PowerShell を開き直します。この新しいプロファイルが実行され、AWS Tools のコマンドレットが利用できるようになるはずです。

コマンドレットの使用例

PS C:\> get-awsregion

Region                                  Name                                    IsShellDefault
------                                  ----                                    --------------
us-east-1                               US East (Virginia)                      False
us-west-1                               US West (N. California)                 False
us-west-2                               US West (Oregon)                        False
eu-west-1                               EU West (Ireland)                       False
eu-central-1                            EU Central (Frankfurt)                  False
ap-northeast-1                          Asia Pacific (Tokyo)                    False
ap-southeast-1                          Asia Pacific (Singapore)                False
ap-southeast-2                          Asia Pacific (Sydney)                   False
sa-east-1                               South America (Sao Paulo)               False

次に普段使っているリージョンを指定します。これは下のように Set-DefaultAWSRegion コマンドレットを実行します。-Region の後には Get-AWSRegion コマンドレットで表示される Name プロパティのどれかを指定します。

PS C:\> Set-DefaultAWSRegion -Region us-west-2

もう一度、Get-AWSRegion コマンドレットを実行して IsShellDefault プロパティが True に変わったことを確認します。

[Top]


 

EC2

AWS Tools EC2 でできることは下記のとおりです。(2015/5)


EC2 キーペア (*.pem) の作成と削除

英語ですが、下記のページに詳しい解説があります。
Create an Amazon EC2 Key Pair Using Windows PowerShell
ざっくり言うと New-EC2KeyPair -KeyName keypair というコマンドレットでキーペアが作成できます。これの値をファイル保存すれば、EC2 にログインするときのキー (*.pem) になります。

不要になったキーペアを削除することもできます。その場合は、Remove-EC2KeyPair -KeyName keypair というコマンドレットを使用します。

[Top]


セキュリティグループの作成

英語ですが、下記のページに詳しい解説があります。
Create a Security Group Using Windows PowerShell

New-EC2SecurityGroup コマンドレットを使ってセキュリティグループの作成が作成できます。

PS C:\> New-EC2SecurityGroup -GroupName myPSSecurityGroup -GroupDescription "EC2-Classic from PowerShell"

sg-9cf9e5d9

Get-EC2SecurityGroup コマンドレットでセキュリティグループの内容を確認できます。

PS C:\> Get-EC2SecurityGroup -GroupNames myPSSecurityGroup

OwnerId             : 123456789012
GroupName           : myPSSecurityGroup
(以下略)

[Top]


マシンイメージの取得

英語ですが、下記のページに詳しい解説があります。
Find an Amazon Machine Image Using Windows PowerShell


EC2 インスタンスの起動

英語ですが、下記のページに詳しい解説があります。
Launch an Amazon EC2 Instance Using Windows PowerShell

New-EC2Instance コマンドレットを使って EC2 のインスタンスを起動できます。

PS C:\> New-EC2Instance -ImageId ami-c49c0dac -MinCount 1 -MaxCount 1 -KeyName myPSKeyPair
-SecurityGroups myPSSecurityGroup -InstanceType t1.micro ReservationId : r-b70a0ef1 OwnerId : 123456789012 RequesterId : Groups : {myPSSecurityGroup} GroupName : {myPSSecurityGroup} Instances : {}

[Top]


 

S3

Bucket の作成

Bucket の作成には New-S3Bucket コマンドレットを使用します。

PS C:\> New-S3Bucket -BucketName website-example -Region us-west-1

BucketName                                                  CreationDate
----------                                                  ------------
website-example                                       Mon, 26 Nov 2012 00:41:08 GMT

Bucket の作成には Remove-S3Bucket コマンドレットを使用します。

Remove-S3Bucket -BucketName website-example

Bucket をウェブサイトとして使用する

S3 の Bucket はスタティックなウェブサイトとして利用可能です。ウェブサイトとして使うためには Write-S3BucketWebsite コマンドレットを使います。

PS C:\> Write-S3BucketWebsite -BucketName website-example -WebsiteConfiguration_IndexDocumentSuffix index.html -WebsiteConfiguration_ErrorDocument error.html

RequestId      : A1813E27995FFDDD
AmazonId2      : T7hlDOeLqA5Q2XfTe8j2q3SLoP3/5XwhUU3RyJBGHU/LnC+CIWLeGgP0MY24xAlI
ResponseStream :
Headers        : {x-amz-id-2, x-amz-request-id, Content-Length, Date...}
Metadata       : {}
ResponseXml    :

ファイルのアップロード

Bucket にファイルをアップロードするには Write-S3Object コマンドレットを使用します。

PS C:\> Write-S3Object -BucketName website-example -File index.html -Key index.html
PS C:\>

ファイルのダウンロード

Bucket のファイルをダウンロードするには Read-S3Object コマンドレットを使用します。

PS C:\workspace\Scripts\PowerShell> read-s3object -bucketname website-example -key myobject.txt -file c:\temp\myobject.txt

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2015/05/15      9:45         12 myobject.txt

ACL の設定

ACL (アクセス許可条件)の設定には Set-S3ACL コマンドレットを使用します。

PS C:\> set-s3acl -bucketname website-example -key myobject.txt -publicreadonly
PS C:\>

ファイル内容の取得(表示)

ファイル内容の表示は、ウェブサイトとしての設定を行いブラウザで表示します(表示できない場合はダウンロードして表示する)。


ファイル一覧の表示

Get-S3Object を表示するには Get-S3Object コマンドレットを使用します。

PS C:\> Get-S3Object -BucketName website-example | Select-Object Key
Key
---
error.html
index.html
style.css
(以下略)


ファイルの削除

ファイルの削除は Remove-S3Bucket コマンドレットを使用します。

PS C:\> Remove-S3Object -BucketName website-example -Key "test.html"
確認
この操作を実行しますか?
対象 "" に対して操作 "Remove-S3Object (DeleteObjects)" を実行しています。
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"):

DeleteMarker                                                VersionId
------------                                                ---------

インラインテキストのアップロード

Write-S3Object コマンドレットはファイルだけでなくインラインテキスト(リテラルや変数)のアップロードも可能です。

PS C:\> Write-S3Object mybucket -key myobject.txt -content "file content"
PS C:\> 

[Top]

 

IAM

IAM は "AWS Identity and Access Management" の略で、ユーザやグループの管理をするのに使用します。

新規 IAM ユーザやグループの作成

IAM グループの作成には New-IAMGroup コマンドレットを使用します。

PS C:\> New-IAMGroup -Path "/ps-created-groups/" -GroupName "powerUsers" 

Path       : /ps-created-groups/
GroupName  : powerUsers
GroupId    : AGPAJPHUEYD5XPCGIUH3E
Arn        : arn:aws:iam::455364113843:group/ps-created-groups/powerUsers
CreateDate : 11/20/2012 3:32:50 PM

IAM ユーザを作成するには New-IAMUser コマンドレットを使用します。

PS C:\> New-IAMUser -Path "/ps-created-users/" -UserName "myNewUser" 

Path       : /ps-created-users/
UserName   : myNewUser
UserId     : AIDAJOJSPSPXADHBT7IN6
Arn        : arn:aws:iam::455364113843:user/ps-created-users/myNewUser
CreateDate : 11/20/2012 3:26:31 PM

IAM グループに IAM ユーザを追加するには Add-IAMUserToGroup コマンドレットを使用します。

PS C:\> Add-IAMUserToGroup -UserName myNewUser -GroupName powerUsers 

ServiceResponse
---------------
Amazon.IdentityManagement.Model.AddUserToGroupResponse


初期パスワードの設定

IAM ユーザの初期パスワードの設定には New-IAMLoginProfile コマンドレットを使用します。

PS C:\> New-IAMLoginProfile -UserName myNewUser -Password "&!123!&" 

UserName                                                    CreateDate
--------                                                    ----------
myNewUser                                                   11/20/2012 4:23:05 PM

セキュリティキーの作成

IAM ユーザのセキュリティキーの作成には New-IAMAccessKey コマンドレットを使用します。

PS C:\> New-IAMAccessKey -UserName myNewUser 

UserName        : myNewUser
AccessKeyId     : AKIAIOSFODNN7EXAMPLE
Status          : Active
SecretAccessKey : wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKE
CreateDate      : 11/20/2012 4:30:04 PM

[Top]

 

リファレンス

コマンドレットの詳細は下記ページを参照願います。

AWS Tools for Windows PowerShell


EC2

EC2 のコマンドレット一覧を以下に示します。具体的な使い方は get-help を利用してください。使用例は get-help で -examples オプションを使用すると表示できます。

[Top]


S3

S3 のコマンドレット一覧を以下に示します。具体的な使い方は get-help を利用してください。使用例は get-help で -examples オプションを使用すると表示できます。

[Top]


IAM

IAM のコマンドレット一覧を以下に示します。具体的な使い方は get-help を利用してください。使用例は get-help で -examples オプションを使用すると表示できます。

[Top]


RDS

RDS のコマンドレット一覧を以下に示します。具体的な使い方は get-help を利用してください。使用例は get-help で -examples オプションを使用すると表示できます。