• 検索結果がありません。

PowerPoint プレゼンテーション

N/A
N/A
Protected

Academic year: 2021

シェア "PowerPoint プレゼンテーション"

Copied!
93
0
0

読み込み中.... (全文を見る)

全文

(1)

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

アマゾン ウェブ サービス ジャパン株式会社 技術本部エンタープライズ ソリューション部 2016-06-03

Windows 開発者のための

継続的デプロイ on AWS

ソリューション アーキテクト 福井 厚

(2)

Twitter

でAWS Summitに参加しよう!

公式アカウント

@awscloud_jp

をフォローしたお客様に

フリクションボールペン

をプレゼント!

(3)

自己紹介

名前:福井 厚(fatushi@) 所属:アマゾン ウェブ サービス ジャパン株式会社 技術本部エンタープライズ ソリューション部 ソリューション アーキテクト 経歴: メーカーサポート、ソフトハウス、SIベンダー(国産、外資)、開発系コンサルティング ファームを経て2015年7 月 よりアマゾン ウェブ サービス ジャパン株式会社でソリューション アーキテクトとして活動。

2008年8月、Microsoft Certified Architect for Solutions Certification (MCA) に認定される。 マイクロソフトMVPアワード受賞歴11回(2015年7月にMVP 終了)

C#を愛し、.NETが大好きなエンジニアとして .NET開発者向けにAWSを普及する活動を実施中。 好きなAWSサービス: AWS IoT、CodeCommit、CodeDeploy、CodePipeline、AWS SDK for .NET

(4)

アジェンダ

本セッションの目的と対象者 Windows 開発者のための AWS 導入手順 開発環境構築構築 実行環境構築構築(テスト環境、本番環境) 継続的デプロイの実施 まとめ

(5)

本セッションの目的と対象者

目的 • AWS を Windows 開発環境及び実行環境として、より容易に導入、活用 して頂くために、Windows プラットフォームを対象として AWS 環境の 構築および継続的デプロイの実施方法についての理解を助けることを目的 としています。 対象者 • 開発環境及び実行環境として AWS を活用したいと考えている Windows プラットフォームを対象とする開発者、運用担当者、アーキテクトの方

(6)

Windows 開発者のための

AWS 導入手順

(7)

これだけでOK!AWS 導入手順

• アカウント取得 • 開発環境 セットアップ 開発環境構築 • 実行環境設計 • 実行環境構築 実行環境構築 •パイプライン設 計 •デプロイの実施 継続的デプロイ の実施

(8)

開発環境構築

• アカウント取得 • 開発環境 セットアップ 開発環境構築 • 実行環境設計 • 実行環境構築 実行環境構築 •パイプライン設 計 •デプロイの実施 継続的デプロイ の実施

(9)

開発環境構築の目的

AWS 環境を利用するアプリケーションの開発・構築を 容易にするために開発環境を構築

AWS Tools for Visual Studio がおすすめ!

AWS SDK for .NET を単体でインストールすることも可能

AWS Tools for Windows Powershell をインストールすることで

(10)

まずは AWS アカウントを取得

https://aws.amazon.com/jp/register-flow/

(11)

AWS Tools for Visual Studio の

セットアップ

https://aws.amazon.com/jp/visualstudio/ ダウンロードの ボタンをクリック してインストール アカウント取得 開発環境セット アップ

(12)

AWS Tools for Visual Studio

Visual Studio にインテグレート

Visual Studio 環境から AWS の各種リソースを操作可能

AWS SDK for .NET もインストールされる

AWS Sample Projects を提供

AWS Console Project AWS Empty Project AWS Web Project

(13)

AWS Tools for Visual Studio

AWS SDK for .NET を利用したコーディング例

アカウント取得 開発環境セット アップ

IAmazonEC2 ec2 = new AmazonEC2Client();

DescribeInstancesRequest ec2Request = new DescribeInstancesRequest(); try {

DescribeInstancesResponse ec2Response =

ec2.DescribeInstances(ec2Request); foreach (var reservation in ec2Response.Reservations)

foreach (var instance in reservation.Instances) {

Console.WriteLine("private IP address: {0}",

instance.PrivateIpAddress); }

}

catch (AmazonEC2Exception ex){

Console.WriteLine(ex.Message); }

(14)

AWS Lambda Function Project (Node.js)

Node.js for Visual Studio を事前にインストールしておく必要が ある (http://nodejstools.codeplex.com/)

AWS Tools for Visual Studio

その他プロジェクト

(15)

AWS Tools for Visual Studio

その他プロジェクト

AWS CloudFormation Project

アカウント取得 開発環境セット アップ

(16)

AWS Explorer Visual Studio にインテグレート 以下の各サービスの参照、操作を提供 Amazon CloudFront Amazon DynamoDB Amazon EC2 Amazon RDS Amazon S3 Amazon SimpleDB Amazon SNS Amazon SQS Amazon VPC AWS CloudFormation AWS Elastic Beanstalk

AWS Identity and Access Management AWS Lambda

(17)

Demo:

(18)

実行環境構築

• アカウント取得 • 開発環境 セットアップ 開発環境構築 • 実行環境設計 • 実行環境構築 実行環境構築 •パイプライン設 計 •デプロイの実施 継続的デプロイ の実施

(19)

実行環境を設計する

アプリケーションの実行環境を設計

検証環境、本番環境用に VPC を構築 ポイント:検証環境と本番環境を同等な構成にする クラウドでは必要な時だけインスタンスを起動することでコ ストを節約できるため、本番環境と同等の構成で検証する 実行環境設計 実行環境構築

(20)

ロードバランサ + マルチAZを利用したWebアプリ ケーションの構成例

Availability Zone A Availability Zone B

VPC CIDR: 10.0.0.0 /16 PrivateSubnet: 10.0.100.0/24 Public Subnet: 10.0.1.0/24 PrivateSubnet: 10.0.101.0/24 Webサーバ データベースサーバ Public Subnet: 10.0.0.0/24 PrivateSubnet: 10.0.50.0/24 PrivateSubnet: 10.0.51.0/24

(21)

参考:Amazon EC2 –

Windowsインスタンス

Amazon EC2で実行可能なWindowsイメージ 以下のバージョンのWindowsが利用可能 • Windows Server 2012 R2 • Windows Server 2012 • Windows Server 2008 R2 • Windows Server 2008 • Windows Server 2003 R2 Windowsのバージョンに応じたSQL Server導入済みイメージもご用意

• SQL Server Express Edition(無料) • SQL Server Web Edition(時間課金)

• SQL Server Standard Edition(時間課金)

(22)

参考:インスタンスへ RDP ログオン

必要なもの • インスタンス起動時に作成したキー ペア名に対応する秘密鍵ファイル • インスタンスに割当てたPublic IPア ドレス RDPログオン方法 • 接続先ホスト:インスタンスに割当 てた Public IP アドレス • ログインユーザ名: Administrator • 接続方法:パスワード方式 (秘密鍵ファイルにより復号)

(23)

参考:Amazon RDS

構築 • 数クリック or APIでDBサーバを操作 • 初期費用無し、時間単位の従量課金 親和性 • 6種類のエンジンをサポート • 既存アプリケーションの変更不要 運用 • 可用性向上のための機能 • モニタリング、バックアップ、パッチ、スケー リング機能を提供 セキュリテイ • VPC、セキュリティグループ、暗号化等に対応 実行環境設計 実行環境構築

(24)

実行環境を構築する

作業内容 利用するツール 設計に従って必要であれば事前に VPC、サブネット、セ キュリティ グループ、ルート テーブルなどを構築 マネージメント コンソール 必要であれば データベース インスタンスを構築 マネージメント コンソール アプリケーションのデプロイ環境を構築 AWS Elastic Beanstalk

(25)

実行環境を構築する

実行環境設計 実行環境構築 作業内容 利用するツール 設計に従って必要であれば事前に VPC、サブネット、セ キュリティ グループ、ルート テーブルなどを構築 マネージメント コンソール 必要であれば データベース インスタンスを構築 マネージメント コンソール アプリケーションのデプロイ環境を構築 AWS Elastic Beanstalk

(26)

AWS Elastic Beanstalk の活用

開発環境、検証環境、本番環境の構築 Elastic Beanstalk のマネージメント コンソールの「新しいアプ リケーションの作成」で Windows 上の IIS (ウェブサーバー) 環境を構築可能 RDS SQL Server の構築も可能

Visual Studio からElastic Beanstalk の環境へアプリケーション のデプロイが可能

(27)

Demo:

Publish to AWS from

Visual Studio

(28)
(29)

Visual Studio からデプロイ

新しいアプリケーション環境を作成

アプリケーション名と環境名を指定し、URLを確認

(30)

Visual Studio からデプロイ

コンテナ タイプ、インスタンス タイプ、キーペアを指定 VPC の指定、ローリング デプロイの指定が可能 シングル インスタンス環境を選択した場合、オートス ケールグループは作成 されるが構成されない RDS を選択することも 可能。RDS へのアクセス 用セキュリティ グループ が設定される

(31)

Visual Studio からデプロイ

VPC を選択し、ELB 用、EC2 インスタンス用のサブネッ トを選択する(事前に作成しておく必要がある) ELB 用のサブネットはパブリック、EC2 インスタンス用 サブネットはプライベート サブネットを指定 実行環境設計 実行環境構築

(32)

Visual Studio からデプロイ

ローリング デプロイの設定(割合、台数指定)

環境構成情報のアップデート時にサービスを維持する台 数を指定可能

(33)

Visual Studio からデプロイ

アプリケーションとリソース モニタ サービスへ許可する 権限のロールを指定

(34)

Visual Studio からデプロイ

アプリケーションのオプションを指定

ビルド構成、ランタイム バージョン、App Path など Key、Value を指定すると web.config に設定される

(35)

Visual Studio からデプロイ

AWS へパブリッシュ

AWS CodeDeploy 構成ファイルを生成可能、AWS Deployment Tool(AWSDeploy.exe) でデプロイ可能

(36)

継続的デプロイの実施

• アカウント取得 • 開発環境 セットアップ 開発環境構築 • 実行環境設計 • 実行環境構築 実行環境構築 •パイプライン設 計 •デプロイの実施 継続的デプロイ の実施

(37)

継続的デプロイの目的

自動化することのメリット 手作業によるミスを防ぐ 自動化による高速化でリリース スピードも向上 エラーを早期に発見 常に動作するアプリケーション 自動化は一度始めたら戻りたくない パイプライン設計 デプロイの実施

(38)

継続的デプロイのための設計

目的に合わせてパイプラインを設計する AWS CodePipeline AWS CodeDeploy Amazon S3 GitHub Beta Stage

source Stage Deploy Stage

Amazon S3 AWS CodeDeploy テスト環境 本番環境

(39)

AWS CodeCommit/AWS CodePipeline/AWS CodeDeployの位置づけ Monitor Provision Deploy Test Build Code Elastic Beanstalk OpsWorks Cloud Watch Cloud Formation Code Deploy Code Commit Code Pipeline パイプライン設計 デプロイの実施

(40)

デプロイに特化したサービス

指定したグループに、指定したファイルを、指定した割合ずつ TagやAuto Scaling Groupでグループ指定

エージェントを入れれば利用可能

Pull型のデプロイ、EC2以外でも Linux & Windows対応

関連する処理をフックで実行可能

GitHub、S3 と連携して継続的デプロイを実現可能

(41)
(42)

AWS CodePipeline

ソース/ビルド/テスト/デプロイのプロセスを管理 AWS のサービスやサードパーティとの連携 GitHub、CodeCommit、S3 をソース リポジトリとして利用可 能 ビルド サーバーとして Jenkins、Solano CI と連携可能 パイプラインのバックアップ 見やすいUI デプロイ プロバイダとして OpsWorks と連携 New!

(43)

AWS CodePipeline

カスタマイズ可能なワークフローエンジン パートナーやカスタムのシステムと連携 ビジュアルエディターと可視化されたステータス 継続的デリバリー、リリース自動化 Build 1) ビルド 2) Unitテスト 1) デプロイ 2) UIテスト

Source Beta Production

1) デプロイ 2) 負荷テスト Gamma 1) カナリア デプロイ 2) リージョン1 デプロイ 3) リージョン2 デプロイ パイプライン設計 デプロイの実施

(44)

開発のスタイルにあったワークフローを

自由に

(45)

フルマネージドなソース バージョン管理サービス Git 互換でGit 対応ツールが利用可能 データは S3 に保存され容量無制限 IAM による認証 現時点では Visual Studio 未対応 パイプライン設計 デプロイの実施

参考:AWS CodeCommit

(46)

継続的デプロイの実施

続的デプロイの設定手順 作業内容 利用するツール デプロイ先 EC2 インスタンスの作成と設定 マネジメント コンソール PowerShell AWS SDK Elastic Beanstalk CloudFormation ソース管理リポジトリの設定 GitHub CodeCommit S3 デプロイ手順の設定 CodeDeploy パイプラインの設定 CodePipeline

(47)

継続的デプロイの実施

続的デプロイの設定手順 パイプライン設計 デプロイの実施 作業内容 利用するツール デプロイ先 EC2 インスタンスの作成と設定 マネジメント コンソール PowerShell AWS SDK Elastic Beanstalk CloudFormation ソース管理リポジトリの設定 GitHub CodeCommit S3 デプロイ手順の設定 CodeDeploy パイプラインの設定 CodePipeline

(48)

AWS CodeDeploy の設定

デプロイ対象のインスタンスにエージェントをインス トール

<powershell>

New-Item -Path c:¥temp -ItemType "directory" -Force

Read-S3Object -BucketName aws-codedeploy-us-east-1/latest ` -Key codedeploy-agent.msi `

-File c:¥temp¥codedeploy-agent.msi

Start-Process -Wait -FilePath c:¥temp¥codedeploy-agent.msi ` -WindowStyle Hidden

</powershell>

テスト環境

(49)

AppSpec File (appspec.yml)

デプロイ パス、カスタム権限、ステージごとの実行スクリプ トを指定可能 version: 0.0 os: windows files: - source: ¥ destination: C:¥inetpub¥wwwroot hooks: ApplicationStop: - location: .¥RemoveApp.ps1 timeout: 30 ApplicationStart: - location: .¥InstallApp.ps1 timeout: 300 ValidateService: -location: .¥ValidateInstall.ps1 timeout: 300 パイプライン設計 デプロイの実施 files どのファイルをどこに配置するか指定 hooks 以下の黄色のEventで実行する処理を指定

(50)

AWS CodeDeploy の設定

デプロイするアプリケーションを作成

(51)

継続的デプロイの実施

続的デプロイの設定手順 パイプライン設計 デプロイの実施 作業内容 利用するツール デプロイ先 EC2 インスタンスの作成と設定 マネジメント コンソール PowerShell AWS SDK Elastic Beanstalk CloudFormation ソース管理リポジトリの設定 GitHub CodeCommit S3 デプロイ手順の設定 CodeDeploy パイプラインの設定 CodePipeline

(52)

AWS CodePipeline の設定

(53)

AWS CodePipeline の設定

ソース リポジトリを選択 GitHub を選択した場合、 認可後にレポジトリと ブランチを選択 パイプライン設計 デプロイの実施

(54)

AWS CodePipeline の設定

ビルド プロバイダとデプロイメント プロバイダの選択 AWS CodeDeploy を選択した場合は、アプリケーショ ン名とデプロイメント グループを選択

(55)

AWS CodePipeline の設定

AWS サービス ロールを作成、ロールの許可をクリック

(56)

確認後、パイプラインの作成をクリックするとパイプラ インが作成され実行を開始

(57)

エラー発生時の確認

パイプライン設計 デプロイの実施 パイプライン実行中にエラーが発生した場合は、パイプ ラインの実行を停止 Details をクリックすると 実行の詳細へのリンクを表示 するダイアログが表示される

(58)

エラー発生時の確認

デプロイ ステータス を表示 イベントの表示リンク をクリックすると イベントの内容が表示 される

(59)

AWS Codepipeline デモ

エラー発生でパイプランを停止する エラーの発生したイベントの確認

(60)

Demo:

(61)

まとめ

Windows 開発者のための AWS 導入手順は3つのステッ プ 開発環境の構築 実行環境の構築 継続的デプロイの実施 AWS が提供するサービス、ツールを上手く利用するこ とで早く簡単に環境構築が可能に 自動化によって継続的デプロイ on AWS を!

(62)

参考資料

【.NET Developer Blog】ASP.NET Core の探索 パー ト1: GitHub からデプロイする

http://aws.typepad.com/sajp/2016/05/aspnet-core-part1.html

【.NET Developer Blog】ASP.NET Core の探索 パー ト2: 継続的デリバリ

http://aws.typepad.com/sajp/2016/05/aspnet-core-part2.html

(63)

AWS Black Belt Online Seminarのご案内

AWSJ の Tech メンバーがAWSに関する様々な事を日本語で紹 介・解説する無料のオンラインセミナー

AWSについてもっと勉強したい方にオススメ!

(64)
(65)

VPC、サブネットなどの構築

VPCウィザードを開始

(66)

VPC、サブネットなどの構築

(67)

VPC、サブネットなどの構築

必要な追加のサブネットを作成

(68)

VPC、サブネットなどの構築

(69)

CloudFormationの活用

CloudFormer で既存環境から CloudFormation Template を取 得

テンプレートを編集して CloudFormation で新たな環境の構 築を自動化

提供されているサンプル テンプレートの活用

Windows Feature and Role サンプル テンプレート Windows Active Directory サンプル テンプレート

AWS Tools for Windows Powershell から実行することも可能 AWS SDK for .NET を利用したC#プログラミングによる環境 構築も可能

(70)

CloudFormer インスタンスの作成

CloudFormation で CloudFormer のインスタンスを作成

Choose a template で CloudFormer を選択すると

Specify an Amazon S3 template URL にテンプレートのURLが表示される

その状態で Specify an Amazon S3

(71)

CloudFormer インスタンスの作成

実行環境設計 実行環境構築 Stack名を入力し、CloudFormer インスタンスにログインするため のパスワードとユーザー名を入力 し、Nextをクリック オプションでタグと値を入力

(72)

CloudFormer インスタンスの作成

(73)

CloudFormer インスタンスの作成

実行環境設計 実行環境構築

EC2 マネジメント コンソールで起動したインスタンス のDNS名(またはIPアドレス)を確認

(74)

ブラウザで CloudFormer を開く

(75)

CloudFormation Template の取得

実行環境設計 実行環境構築

Template Description を入力して Continue をクリック コピー元となるVPCを選択

(76)

CloudFormation Template の取得

サブネットとインターネット ゲートウェイを確認 サマリー画面まで進める

(77)

CloudFormation Template の取得

実行環境設計 実行環境構築

自動生成された CloudFormation Template を S3 に保存 保存したファイルをダウンロードしてVPC、サブネット のアドレスと名前を編集する

(78)

CloudFormation stack の 作成と実行

CloudFormation で Create stack を選択し、先程編集した CloudFormation Template を選択

(79)

CloudFormation stack の 作成と実行

実行環境設計 実行環境構築

(80)

RDS Server for SQL Server を構築

(81)

RDS Server for SQL Server を構築

実行環境設計 実行環境構築

(82)

RDS Server for SQL Server を構築

(83)

RDS スナップショットを取得

実行環境設計 実行環境構築

(84)

AWS Command Line Interface (CLI)

•“aws”という名前の単一コマンドでAWSサービスを操作可能 •プラットフォームや開発言語などが限定されない

Windows, Linux, Mac, Unixなど •S3用にはsyncなどの便利な機能あり

AWS Tools for Windows PowerShell

• “AWSPowerShell”モジュール内のコマンドレットから、 ほとんどのAWSサービスを操作可能

(85)

スナップショットから RDS を復元

実行環境設計 実行環境構築

AWS Tools for WIndows Powershell で自動化

Restore-RDSDBInstanceFromDBSnapshot ` -DBInstanceIdentifier "aspnetdemotest" ` -DBSnapshotIdentifier "aspnetdemoprod-snapshot" ` -AutoMinorVersionUpgrade $TRUE ` -AvailabilityZone "ap-northeast-1a" ` -DBInstanceClass "db.m4.large" ` -DBSubnetGroupName "aspnet45demotest-dbsubnet" ` -PubliclyAccessible $TRUE ` -StorageType "gp2"

(86)

AWS Elastic Beanstalk アプリケーション

の作成(マネジメント コンソール版)

(87)

AWS Elastic Beanstalk アプリケーション

の作成

(88)

AWS Elastic Beanstalk アプリケーション

の作成

(89)

AWS Elastic Beanstalk アプリケーション

の作成

(90)

AWS Elastic Beanstalk アプリケーション

の作成

(91)

AWS Elastic Beanstalk アプリケーション

の作成

(92)

AWS Elastic Beanstalk アプリケーション

の作成

(93)

参照

関連したドキュメント

特定原子力施設の全体工程達成及びリスクマップに沿った

第2章 環境影響評価の実施手順等 第1

Q7 建設工事の場合は、都内の各工事現場の実績をまとめて 1

領海に PSSA を設定する場合︑このニ︱条一項が︑ PSSA

都立赤羽商業高等学校 避難所施設利用に関する協定 都立王子特別支援学校 避難所施設利用に関する協定 都立桐ケ丘高等学校

回答した事業者の所有する全事業所の、(平成 27 年度の排出実績が継続する と仮定した)クレジット保有推定量を合算 (万t -CO2

放流先 合流下水道 分流下水道 公共用水域 施設種類 特定施設 貯蔵施設 有害物質 の 使用 有 無.

電気第一グループ 電気第二グループ 電気第三グループ 電気第四グループ 計装第一グループ 計装第二グループ 情報システムグループ ※3