■概要
- ASP.NET Core アプリケーションの継続的デプロイを行う方法について解説
■登壇者
- 福井 厚さん(アマゾンウェブサービスジャパン株式会社 技術本部 エンタープライズ ソリューション部 ソリューション アーキテクト)
■会場調査
- Windowsの人: ほぼ
- .NETの人: ほぼ
- C#の人: かなり
- VBの人: 少し
- F#の人: ほぼゼロ
■本セッションの目的と対象者
- 目的
- AWSをWindows開発環境・実行環境として容易に導入すること
- 対象
- 開発者、アーキテクト
■Windows開発社のためのAWS導入手順
- 3ステップ(ry
■開発環境構築
- 目的
- 開発を容易にするため
- AWS Tools for Visual Studioがおすすめ
- AWS Tools for Windows Powershellも
- 開発を容易にするため
- アカウント取得
- (ry
- セットアップ
- (ry
- AWS Tools for Visual Studio
- AWS Sample Projects(3種類のテンプレート)を提供
- コーディング例
- AmazonEC2Clientの使用例
- その他のテンプレート
- AWS Lambda Function Project(Node.js)
- AWS CloudFormation Projet
- AWS Exploorer: EC2, RDSなどにアクセスできる
- DEMO:
- Amazon S3のバケットを参照
- DEMO:
■実行環境構築
- 実行環境を設計する
- 検証環境、本番環境用にVPCを構築
- ポイント: 検証、本番環境を同等な構成にする
- => クラウドの(コスト)メリット
- 例
- VPCにAZ 2つ、Public Subnet 2つ、Private Subnet 1つ
- 使えるWindowsのバージョン
- (ry
- RDPで楽ちん
- Amazon RDS: SQL Serverもおk
- 実行環境を構築する
- 環境ごとにVPC定義など: マネージメントコンソール
- DBインスタンス: マネージメントコンソール
- アプリケーションのデプロイ環境を構築: AWS Elastic Beanstalk
- AWS Elastic Beanstalkの活用
- DEMO:
- .NET ASP MVCプロジェクトのVSからのデプロイ
- Publish to AWS => Beanstalk => Create new Enviromet ...(ry
- 可用性の構成
- VPCの選択
- Subnetの設定
- デプロイメントの設定
- パーミッションの設定
- 再デプロイの例
- 文言修正
- ビルド
- Re deploy
- DEMO:
■継続的デプロイ
- 継続的デプロイの目的
- 自動化することのメリット
- 手作業によるミスを防ぐ
- 高速化でリリーススピードも向上
- エラーの早期検出 etc...
- 自動化することのメリット
- 継続的デプロイのための設計
- 目的に合わせて設計する
- AWSのサービス
- Code Commit
- コード管理
- S3
- Git互換
- Code Deploy
- エージェントをEC2にいれれば利用可能
- GitHub, S3とも
- Code Pipeline
- ソース/ビルド/テスト/デプロイのプロセスを管理
- AWSのサービスやサードパーティとの連携
- etc...
- 開発のスタイルにあった柔軟なワークフローが定義できる
- Code Commit
- 継続的デプロイの実施
- 設定手順
- EC2のデプロイ先の設定:
- デプロイ対象のインスタンスにエージェントをインストール
- AppSpec File(appspec.yml)
- デプロイパス、カスタム権限、ステージごとの実行スクリプトを指定可能
- files
- hooks
- デプロイパス、カスタム権限、ステージごとの実行スクリプトを指定可能
- CodePipelineの設定:
- GitHubのブランチなどを指定
- アプリケーション名、デプロイメントグループなどを設定
- 実行
- エラー発生時の確認
- パイプラインのエラー箇所を確認できる
- EC2のデプロイ先の設定:
- 設定手順
- AWS CodePipelineのDEMO:
- UnitTestが失敗するパターン
- Source -> Beta(ステージング環境でテスト) -> Release(本番環境でテスト)
- コマンドラインでS3にアップデート
- CodePipelineが変更を検知...失敗...エラーログの照会
■まとめ
- Windows開発者のためのAWS導入手順はシンプルに3ステップ
- AWSが提供するサービス、ツールをうまく利用して自動化を
- 自動化によって継続的デプロイ on AWSを!
※当日の生メモです(ほぼ校正していませんm(_ _)m
※登壇者の方の情報など一部 http://www.awssummit.tokyo/devcon/index.html から引用させて頂きました