Your SlideShare is downloading. ×
  • Like
Aws tools for power shellをつかいこなそう
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Aws tools for power shellをつかいこなそう

  • 1,843 views
Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,843
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
25
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. AWS Tools for Windows PowerShellをつかいこなそう アマゾンデータサービスジャパン ソリューションアーキテクト 渡邉源太 2013/12/21
  • 2. 自己紹介(1/2) 名前 • 渡邉源太 所属 • ソリューションアーキテクト • アマゾンデータサービスジャパン株式会社 Twitter ID • @gentaw0 好きなAWSサービス • Amazon WorkSpaces 2
  • 3. 自己紹介(2/2) ) 自己紹介( Microsoft MVP for Virtualization - Virtual Machine( Jul 2007 - Jun 2010) Publications 日経BP すべてわかる仮想化大全 • http://coin.nikkeibp.co.jp/coin/itpro/virtual/index.html @IT連載 三大仮想化ソフトウェア機能比較 • http://www.atmarkit.co.jp/fwin2k/operation/indexpage/inde x.html#vmcomp
  • 4. AWSサービスメニュー お客様のアプリケーション ライブラリ & SDKs Java, PHP, .NET, Python, Ruby IDEプラグイン Eclipse Visual Studio メッセージ Web管理画⾯ Management Console 認証 AWS IAM モニタリング Amazon CloudWatch 検索エンジン Amazon SNS Amazon SQS Amazon SES Amazon Cloud Search コンテンツ配信 分散処理 Amazon CloudFront コンピュータ処理 Amazon EC2 Auto Scale Elastic MapReduce ストレージ Amazon S3 Amazon EBS Amazon Glacier AWS StorageGateway デプロイと自動化 AWS Elastic Beanstalk AWS CloudFromation ワークフロー管理 Amazon SWF キャッシング データベース Amazon RDS Amazon DynamoDB Amazon SimpleDB ネットワーク & ルーティング AZ AWS グローバルインフラ Application Service Amazon Elasticache Amazon VPC / Amazon Elastic Load Balancer / Amazon Route 53 /AWS Direct Connect Region Development & Administration Geographical Regions, Availability Zones, Points of Presence Infrastructure Service
  • 5. AWSのグローバルインフラストラクチャ GovCloud US West US West US East (US ITAR Region) (Northern California) (Oregon) (Northern Virginia) South America (Sao Paulo) EU (Ireland) Asia Pacific Asia Pacific (Singapore) (Tokyo) 1. どのリージョンでも同じ使い勝手、同じやり AWS Regions 方で自由に利⽤可能 AWS Edge Locations 2. リージョンを指定して、アプリケーション やデータを配置する事が可能
  • 6. リージョンとアベイラビリティゾーン(AZ) 1リージョン内にAZ(データセンター群)が複数拠点存在 AZはお互いに地理的・電源的・ネットワーク的に分離されている AZ間は高速専⽤線で接続(リージョン間はインターネット経由)
  • 7. Amazon Web Servicesとマイクロソフト Windows on AWSがもたらすお客様のビジネスへのメ リット 新しいハードウェアは不要 数分で利⽤開始 テスト環境をオンデマンドに 既存のMicrosoftライセンスを使⽤ 迅速なパフォーマンス AWS上で利⽤可能なWindows製品 ライセンスモビリ ティ Microsoft Windows Server Microsoft SQL Server Microsoft SharePoint
  • 8. Amazon EC2 - Windowsインスタンス Amazon EC2で実⾏可能なWindowsイメージ 以下のバージョンのWindowsが利⽤可能 • • • • Windows Windows Windows Windows Server Server Server Server 2012 2008 R2 2008 2003 R2 Windowsのバージョンに応じたSQL Server導入済みイ メージもご⽤意 • SQL Server Express Edition(無料) • SQL Server Web Edition(時間課⾦) • SQL Server Standard Edition(時間課⾦)
  • 9. SQL Server AlwaysOn可用性グループ on AWS Windows Server Failover Cluster Managerおよび SQL Server 2012 Availability GroupをAWS上で構成 可能に! Availability Zoneをまたいだレプリケーションと高可⽤ 性を実現 環境構築のためのCloudformationテンプレートも提供 Domain Controller SQL Server DB SQL Server DB Domain Controller Availability Zone Availability Zone AWS Cloud 9
  • 10. Amazon RDS for SQL Server 標準機能 • • • • • SQL Server Migration Assistant Database Engine Tuning Advisor (SE, EE, Web) SQL Server Agent SSL接続 Transparent Data Encryption(TDE) バージョンアップ • 2008 R2から 2012へのメジャーバージョンアップ機能 詳細情報 • 機能情報 • http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQ LServer.Concepts.General.html • FAQ • http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/RD SFAQ.SQLServer.html
  • 11. CloudFormationによる SharePointサーバーファーム構築 CloudFormationテンプレートのサンプルを使⽤して6 ステップでSharePointサーバーファームを構築 • http://aws.amazon.com/articles/9982940049271604 テンプレートは環境にあわせて自由にカスタマイズ可能 コストは約$3250/月
  • 12. AWSのサービス操作と言えば AWS Management Console AWSコマンドラインツール
  • 13. マネージメントコンソールだけでなく、 APIからプログラマブルにアクセス ec2-run-instances ami-b232d0db --instance-count 3 --availability-zone ap-northeast-1a --instance-type m1.small ec2-run-instances ami-b232d0db --instance-count 3 --availability-zone ap-northeast-1b --instance-type m1.small Tokyo リージョン
  • 14. 動作イメージ 起動、停止 Put,Get REST AWS SDK SOAP 認証情報 ロギング DB起動 バックアップ 情報取得
  • 15. 認証情報 AWSマネジメントコンソールのIAMタブで認証情報作成 • アクセスキー、シークレットキ-、(optional:MFA) • シークレットキーは作成時のみ取得可能
  • 16. 操作の種類 例:EC2 インスタンス起動・・・RunInstances リブート・・・ RebootInstances IPアドレス付与・・AllocateAddress などさまざまな操作が、プログラムから実⾏可能 http://docs.amazonwebservices.com/AWSEC2/latest/APIR eference/Welcome.html • SDKによってサポートする操作が異なる • • • • • APIコールに対する制限は、 Identity and Access Management(IAM) のドキュメントを参照
  • 17. AWS SDK 下記の言語/環境で提供中 Java Python JavaScript in nodeJS PHP JavaScript in the Browser .NET iOS Ruby Android
  • 18. AWS SDK for .NET AWS SDK for .NET Amazon提供のAWS開発⽤.NET SDK http://aws.amazon.com/sdkfornet/ 環境: • .NET Framework 3.5以降 • Visual Studio 2010以降 最新版2.0.4 C#およびVisual Basicをサポート
  • 19. サンプル:EC2インスタンス起動 // EC2操作⽤のクライアント var ec2Client = new AmazonEC2Client(); // ⽴ち上げたいインスタンス情報の作成 var runInstanceRequest = new RunInstancesRequest{ ImageId = "ami-xxx", MaxCount = 1, MinCount = 1, KeyName = “YourKeyName", SecurityGroups = { “yourSecurityGroup” }, InstanceType = InstanceType.M1Small }; // インスタンスの起動 ec2Client.RunInstances(runInstanceRequest);
  • 20. AWS SDK for .NETに含まれるもの AWS Toolkit for Microsoft Visual Studio Visual Studioプロジェクトテンプレート AWS Tools for Windows PowerShell AWS .NETライブラリ C#コードサンプル ドキュメント
  • 21. AWS Tools for Windows PowerShell AWSへの容易なコマンドラインアクセス • 800以上のコマンドレット • AWS SDK for .NETがベース スクリプトによる管理の自動化に対応 EC2, S3をはじめ多くのサービスの管理が可能 • http://aws.amazon.com/jp/powershell/ 21
  • 22. インストール方法 以下のページの右上隅にある「AWS Tools for Windows」ボタンをクリック • http://aws.amazon.com/powershell/ ファイルを保存するかどうかをたずねる メッセージがブラウザに表示されたら、 ローカルのディスクに保存 保存したインストーラを開いてインス トールプロセスを開始
  • 23. サポートしているサービス
  • 24. 初期設定と動作確認 Windows PowerShell for AWSの起動 • 「スタート」→「Amazon Web Services」→「Windows PowerShell for AWS」 クレデンシャルとデフォルトリージョンの設定 • PS C:> Initialize-AWSDefaults バージョンと利⽤可能なサービスの確認 • PS C:> Get-AWSPowerShellVersion -ListServices 24
  • 25. リージョンの設定 リージョン一覧の確認 • PS C:> Get-AWSRegion デフォルトリージョンの指定 • PS C:> Set-DefaultAWSRegion ap-northeast-1 デフォルトリージョンの確認 • PS C:> Get-DefaultAWSRegion 25
  • 26. EC2:Key Pairの作成 Key Pairの作成 • PS C:> $myPSKeyPair = New-EC2KeyPair –KeyName myPSKeyPair Private Keyのファイルへの書き出し • PS C:> $myPSKeyPair.KeyMaterial | Out-File -Encoding ascii myPSKeyPair.pem 26
  • 27. Key Pairとは? Key Pairを作成すると、1組の公開鍵・秘密鍵が作成される 公開鍵はAWS側で保管。EC2起動時にインスタンスにコピー 秘密鍵はローカル側で保管。Windowsインスタンスの場合、パスワードの 復号化に必要 リージョンごとに独⽴ 公開鍵は、AWSに よってEC2起動時 に埋め込まれる EC2インスタ ンスは2つの 鍵を用いる キーペアの作成 秘密鍵は、デスク トップにダウン ロードされる
  • 28. EC2:Security Groupの作成 Security Groupの作成 • PS C:> New-EC2SecurityGroup –GroupName myPSSecurityGroup –GroupDescription “AWS Security Group from PowerShell” Security Groupの確認 • PS C:> Get-EC2SecurityGroup -GroupNames myPSSecurityGroup ポート番号の設定 • PS C:> Grant-EC2SecurityGroupIngress –GroupId sg3997fc38 –IpProtocol tcp –FromPort 3389 –to Port 3389 –CidrIp 0.0.0.0/0 28
  • 29. Security Groupとは? ポート25 (SMTP) インスタンスへのトラフィック を制限するSemi-statefulな ファイアーウォール機能 デフォルトでは全トラフィック が閉じており、外からアクセス できない 必要な受信アクセスに対してア クセスルールを定義する • • • プロトコル( TCP/UDP) 宛先ポート アクセス元IP / Security Group 設定したルール以外の受信トラ フィックは破棄される ルールをひとまとめにしたテン プレートを Security Groupと 呼ぶ Security Group ポート80 (HTTP) ポート3389 (RDP) EC2 インスタンス EC2ファイアウォール
  • 30. EC2:AMIの取得 AMI一覧の取得 • PS C:> Get-EC2Image –owner amazon, self AMI名前一覧の取得 • PS C:> Get-EC2ImageByName 特定のAMI IDの取得 • PS C:> Get-EC2ImageByName –Names WINDOWS_2012_BASE 30
  • 31. Amazon Machine Image (AMI) AMIはインスタンス作成に使⽤するイメージテンプレート AWS公式AMIや、サードパーティもAMIを提供 • • https://aws.amazon.com/amis/ https://aws.amazon.com/marketplace/ 選択したAMIから起動する EC2インスタンスから、任意のタイミングで カスタムAMIを作成できる launch Amazon Machine Image (AMI) Amazon EC2インスタンス
  • 32. EC2:インスタンスの起動と開始 EC2インスタンスの起動 • PS C:> New-EC2Instance –ImageID ami-b1492eb0 – MinCount 1 –MaxCount 1 –KeyName myPSKeyPair – SecurityGroup myPSSecurityGroup –InstanceType t1.micro Windowsパスワードの取得 • PS C:> Get-EC2PasswordData –InstanceId i-7d5ccd78 – PemFile myPSKeyPair.pem EC2インスタンスの停止・開始 • PS C:> Stop-EC2Instance –InstanceIds i-7d5ccd78 • PS C:> Start-EC2Instance –InstanceIds i-7d5ccd78 32
  • 33. 起動時にパラメーターを渡す 起動時に16KB以内で任意のものを渡せる ChefやPuppetなどを利⽤して、自⼰構成できるAMIに 参照 AWSマイスター CloudFormation資料 http://www.slideshare.net/kentamagawa/cloudformationaws5
  • 34. EC2: User Dataの使用 User Dataにスクリプト(<script></script>)または PowerShell(<powershell></powershell>)を埋め 込むことで、インスタンス起動時の処理を自動化 • <powershell>Add-WindowsFeature –Name WebServer</powershell> User Dataはbase64でエンコードする必要がある Windowsインスタンスが利⽤可能になるとすぐに実⾏ される
  • 35. S3:S3の操作(1/2) S3バケットの作成 • PS C:>New-S3Bucket –BucketName mypsbucket オブジェクトのアップロード • PS C:>Write-S3Object –BucketName mypsbucket –Key sample.txt –File .sample.txt フォルダーのアップロード • PS C:>Write-S3Object –BucketName mypsbucket – Folder .Scripts –KeyPrefix SampleScripts 35
  • 36. S3:S3の操作(2/2) オブジェクトの削除 • PS C:>Remove-S3Object –BucketName mypsbucket – Key sample.txt S3バケットの削除 • PS C:>Remove-S3Bucket –BucketName mypsbucket 36
  • 37. S3:スクリプトによる操作 例:C:Logsにある1週間より前のファイルをS3のバケットにアッ プロードしてローカルから削除するスクリプト foreach ($i in Get-ChildItem C:Logs) { if ($i.CreationTime -lt ($(Get-Date).AddDays(-7))) { if ($i.Length -gt 0) { Write-S3Object -BucketName mylogbucket -Key Logs/$i -File $i.FullName } Remove-Item $i.FullName } } 37
  • 38. DynamoDB:テーブルの作成(1/2) テーブルスキーマの作成 • PS C:> New-DDBTableSchema キースキーマの追加 • PS C:> Add-DDBKeySchema -KeyName "ForumName" -KeyDataType "S" • PS C:> Add-DDBKeySchema -KeyName "Subject" -KeyType "range" KeyDataType "S“ インデックススキーマの追加 • PS C:> Add-DDBIndexSchema -IndexName "LastPostIndex" ` -RangeKeyName "LastPostDateTime" ` -RangeKeyDataType "S" ` -ProjectionType "keys_only" テーブルの作成 • New-DDBTable "Threads" -ReadCapacity 10 -WriteCapacity 5 38
  • 39. DynamoDB:テーブルの作成(2/2) スキーマを指定したテーブルの作成 PS C:> New-DDBTableSchema ` | Add-DDBKeySchema -KeyName "ForumName" KeyDataType "S" ` | Add-DDBKeySchema -KeyName "Subject" -KeyType "range" -KeyDataType "S" ` | Add-DDBIndexSchema -IndexName "LastPostIndex" ` -RangeKeyName "LastPostDateTime" ` -RangeKeyDataType "S" ` -ProjectionType "keys_only" ` | New-DDBTable "Threads" -ReadCapacity 10 WriteCapacity 5 39
  • 40. まとめ Amazon Web ServicesはWindowsを利⽤するためにも 最適なクラウドサービス AWS Tools for Windows PowerShellにより、 PowerShellからAWSのさまざまなサービスを管理する ことが可能に スクリプティングで管理の自動化も自由自在に! 40
  • 41. 参考情報 Windows PowerShell • http://technet.microsoft.com/ja-jp/library/bb978526.aspx Windows PowerShellでのスクリプティング • http://technet.microsoft.com/jajp/scriptcenter/powershell.aspx AWS Tools for Windows PowerShell • http://aws.amazon.com/jp/powershell/ AWS Tools for Windows PowerShell User Guide • http://docs.aws.amazon.com/powershell/latest/userguide /pstools-welcome.html 41