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

3,519 views
3,229 views

Published on

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,519
On SlideShare
0
From Embeds
0
Number of Embeds
168
Actions
Shares
0
Downloads
32
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

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

  1. 1. AWS Tools for Windows PowerShellをつかいこなそう アマゾンデータサービスジャパン ソリューションアーキテクト 渡邉源太 2013/12/21
  2. 2. 自己紹介(1/2) 名前 • 渡邉源太 所属 • ソリューションアーキテクト • アマゾンデータサービスジャパン株式会社 Twitter ID • @gentaw0 好きなAWSサービス • Amazon WorkSpaces 2
  3. 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. 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. 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. 6. リージョンとアベイラビリティゾーン(AZ) 1リージョン内にAZ(データセンター群)が複数拠点存在 AZはお互いに地理的・電源的・ネットワーク的に分離されている AZ間は高速専⽤線で接続(リージョン間はインターネット経由)
  7. 7. Amazon Web Servicesとマイクロソフト Windows on AWSがもたらすお客様のビジネスへのメ リット 新しいハードウェアは不要 数分で利⽤開始 テスト環境をオンデマンドに 既存のMicrosoftライセンスを使⽤ 迅速なパフォーマンス AWS上で利⽤可能なWindows製品 ライセンスモビリ ティ Microsoft Windows Server Microsoft SQL Server Microsoft SharePoint
  8. 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. 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. 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. 11. CloudFormationによる SharePointサーバーファーム構築 CloudFormationテンプレートのサンプルを使⽤して6 ステップでSharePointサーバーファームを構築 • http://aws.amazon.com/articles/9982940049271604 テンプレートは環境にあわせて自由にカスタマイズ可能 コストは約$3250/月
  12. 12. AWSのサービス操作と言えば AWS Management Console AWSコマンドラインツール
  13. 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. 14. 動作イメージ 起動、停止 Put,Get REST AWS SDK SOAP 認証情報 ロギング DB起動 バックアップ 情報取得
  15. 15. 認証情報 AWSマネジメントコンソールのIAMタブで認証情報作成 • アクセスキー、シークレットキ-、(optional:MFA) • シークレットキーは作成時のみ取得可能
  16. 16. 操作の種類 例:EC2 インスタンス起動・・・RunInstances リブート・・・ RebootInstances IPアドレス付与・・AllocateAddress などさまざまな操作が、プログラムから実⾏可能 http://docs.amazonwebservices.com/AWSEC2/latest/APIR eference/Welcome.html • SDKによってサポートする操作が異なる • • • • • APIコールに対する制限は、 Identity and Access Management(IAM) のドキュメントを参照
  17. 17. AWS SDK 下記の言語/環境で提供中 Java Python JavaScript in nodeJS PHP JavaScript in the Browser .NET iOS Ruby Android
  18. 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. 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. 20. AWS SDK for .NETに含まれるもの AWS Toolkit for Microsoft Visual Studio Visual Studioプロジェクトテンプレート AWS Tools for Windows PowerShell AWS .NETライブラリ C#コードサンプル ドキュメント
  21. 21. AWS Tools for Windows PowerShell AWSへの容易なコマンドラインアクセス • 800以上のコマンドレット • AWS SDK for .NETがベース スクリプトによる管理の自動化に対応 EC2, S3をはじめ多くのサービスの管理が可能 • http://aws.amazon.com/jp/powershell/ 21
  22. 22. インストール方法 以下のページの右上隅にある「AWS Tools for Windows」ボタンをクリック • http://aws.amazon.com/powershell/ ファイルを保存するかどうかをたずねる メッセージがブラウザに表示されたら、 ローカルのディスクに保存 保存したインストーラを開いてインス トールプロセスを開始
  23. 23. サポートしているサービス
  24. 24. 初期設定と動作確認 Windows PowerShell for AWSの起動 • 「スタート」→「Amazon Web Services」→「Windows PowerShell for AWS」 クレデンシャルとデフォルトリージョンの設定 • PS C:> Initialize-AWSDefaults バージョンと利⽤可能なサービスの確認 • PS C:> Get-AWSPowerShellVersion -ListServices 24
  25. 25. リージョンの設定 リージョン一覧の確認 • PS C:> Get-AWSRegion デフォルトリージョンの指定 • PS C:> Set-DefaultAWSRegion ap-northeast-1 デフォルトリージョンの確認 • PS C:> Get-DefaultAWSRegion 25
  26. 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. 27. Key Pairとは? Key Pairを作成すると、1組の公開鍵・秘密鍵が作成される 公開鍵はAWS側で保管。EC2起動時にインスタンスにコピー 秘密鍵はローカル側で保管。Windowsインスタンスの場合、パスワードの 復号化に必要 リージョンごとに独⽴ 公開鍵は、AWSに よってEC2起動時 に埋め込まれる EC2インスタ ンスは2つの 鍵を用いる キーペアの作成 秘密鍵は、デスク トップにダウン ロードされる
  28. 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. 29. Security Groupとは? ポート25 (SMTP) インスタンスへのトラフィック を制限するSemi-statefulな ファイアーウォール機能 デフォルトでは全トラフィック が閉じており、外からアクセス できない 必要な受信アクセスに対してア クセスルールを定義する • • • プロトコル( TCP/UDP) 宛先ポート アクセス元IP / Security Group 設定したルール以外の受信トラ フィックは破棄される ルールをひとまとめにしたテン プレートを Security Groupと 呼ぶ Security Group ポート80 (HTTP) ポート3389 (RDP) EC2 インスタンス EC2ファイアウォール
  30. 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. 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. 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. 33. 起動時にパラメーターを渡す 起動時に16KB以内で任意のものを渡せる ChefやPuppetなどを利⽤して、自⼰構成できるAMIに 参照 AWSマイスター CloudFormation資料 http://www.slideshare.net/kentamagawa/cloudformationaws5
  34. 34. EC2: User Dataの使用 User Dataにスクリプト(<script></script>)または PowerShell(<powershell></powershell>)を埋め 込むことで、インスタンス起動時の処理を自動化 • <powershell>Add-WindowsFeature –Name WebServer</powershell> User Dataはbase64でエンコードする必要がある Windowsインスタンスが利⽤可能になるとすぐに実⾏ される
  35. 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. 36. S3:S3の操作(2/2) オブジェクトの削除 • PS C:>Remove-S3Object –BucketName mypsbucket – Key sample.txt S3バケットの削除 • PS C:>Remove-S3Bucket –BucketName mypsbucket 36
  37. 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. 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. 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. 40. まとめ Amazon Web ServicesはWindowsを利⽤するためにも 最適なクラウドサービス AWS Tools for Windows PowerShellにより、 PowerShellからAWSのさまざまなサービスを管理する ことが可能に スクリプティングで管理の自動化も自由自在に! 40
  41. 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

×