SlideShare a Scribd company logo
C#でAzure
PaaS開発事始め
オンプレミス開発からクラウド開発へのシフト
システムインテグレーション事業部
草場 友光
自己紹介
• 普段はASP.NET(C#)の保守プロジェクト
• 以前はサーバ構築・ネットワーク保守とか
• さらに以前はJava
• 情報処理安全確保支援士(登録番号001462)
tomo_kusaba
本日の目的
• オンプレミスでのWeb開発とクラウドでのWeb開発の違いを把
握しよう
• Azureで提供されている主な機能を把握しよう
• ストレージサービスの仕様を把握しよう
そもそもクラウドサービスの種類は?
ハードウェア
OS
ミドルウェア
アプリケーション
ハードウェア
OS
ミドルウェア
アプリケーション
ハードウェア
OS
ミドルウェア
アプリケーション
ハードウェア
OS
ミドルウェア
アプリケーション
オンプレミス IaaS PaaS SaaS
気になるお値段
• お値段は料金計算ツールで
• https://azure.microsoft.com/ja-jp/pricing/calculator/
Azureの主なサービス
• アプリケーションサーバー
• ストレージ
• データベース
• ネットワーク(VPN)
• バッチサーバ
• ID
• ログ
Azureのアプリケーションサーバーって?
• App Service/Web Apps
• .NET,Java,Node.js,PHP,Pythonをデプロイできる
• https://azure.microsoft.com/ja-jp/services/app-service/
• App Service/Mobile Apps
• Windows ストアアプリ,iOS,Androidなどのバックエンドとしての
サービスを提供
Azureのアプリケーションサーバって?
Azureで提供される製品 データ
• ストレージ
• 高速で廉価なデータ管理を提供
• SQLデータベース
• SQL Serverと同等に利用可能
• HDInsight
• Big Data Service
Azureで提供される製品 データ
Azureで提供される製品 ネットワーク
• 仮想ネットワーク
• Azure内のプライベートネットワーク
• VPN(IPSec)を構成
• オンプレのデータセンターをAzure上に拡張
Azureで提供される製品 ネットワーク
Azureで提供される製品 ID
• Azure AD
• オンプレミスのADをクラウドに拡張したもの
Azureで提供される製品 ログ・管理
リージョン
• 日本では東日本リージョンと西日本リージョンがある
• すべてのサービスがすべてのリージョンで提供されている訳で
はない
• 西日本リージョンの方が若干割安なことがある
Azureの主なサービス
• アプリケーションサーバー
• ストレージ
• データベース
• ネットワーク(VPN)
• バッチサーバ
• ID
• ログ
App Service
• 開発用途で使用する無料のプランもある。
セッション管理
セッション管理方法 セッション情報の場所
× Inproc IISと同じプロセス 意図せずセッションが消える
StateServer StateService内 意図せずセッションが消える
○ SQLServer SQLServer 低速だが、実装は簡単。
DBにSQLServerを採用している場合考慮
Custom Redis Cache Redis Cache In Memory DBなので高速
Oracle等の
DB
Oracle等(定義による) 低速
DBに合わせることを検討
※Redis Cacheの実装方法
https://docs.microsoft.com/ja-jp/azure/azure-cache-for-redis/cache-aspnet-session-state-provider
PaaS開発にあたっての注意点 その2
• ローカルストレージは一時利用用途です
• 自動的なパッチ適用などのタイミングでファブリックコントローラの
指示によりローカルストレージに記録されたファイルは削除されます
• ファイル保存はストレージサービスを利用します
• タイムゾーンはUTCです
• Azureに限らずタイムゾーンはUTCです。
• 時間の取り扱いルールを考えておく必要があります
• 地域・言語設定はされていません
• 地域や言語のデフォルト設定に依存する関数・メソッドに注意
• Microsoft.VisualBasic.Strings.StrConv()などランタイムエラー発生
• 日付・時刻フォーマットに注意
Azureの主なサービス
• アプリケーションサーバー
• ストレージ
• データベース
• ネットワーク(VPN)
• バッチサーバ
• ID
• ログ
ストレージサービス
https://azure.microsoft.com/ja-jp/services/storage/
• 高速で廉価なデータ管理を提供
• 4つのよく使うストレージサービスを紹介
• ファイル
• テーブル
• Blob
• キュー
後ほど、詳しく説明します
ファイルストレージ
https://azure.microsoft.com/ja-jp/services/storage/files/
• ファイル共有サービス
• 標準のSMBを使用したファイル共有
• net useコマンド等でネットワークドライブに割り当て可能
テーブルストレージ
https://azure.microsoft.com/ja-jp/services/storage/tables/
• Key-Valueストアのストレージ
• インデックスはないのでパフォーマンスには注意
• LINQを使った照会も可能
Blobストレージ
https://azure.microsoft.com/ja-jp/services/storage/blobs/
• 大容量のテキストやバイナリデータを保存できるストレージ
• 非構造型のデータを取り扱うためのストレージ
• 種類は以下の通り
• Streamingに最適化された「Block Blob」
• ランダムアクセスに最適化された「Page Blob」
• 追加操作に最適化された「Append Blob」
キューストレージ
https://azure.microsoft.com/ja-jp/services/storage/queues/
• Web App – Web Job間などのモジュール間連携に使用
• 各モジュールの疎結合で連携するアーキテクチャを支援する
Azureの主なサービス
• アプリケーションサーバー
• ストレージ
• データベース
• ネットワーク(VPN)
• バッチサーバ
• ID
• ログ
データベースサービス
• Azure SQL Database
• SQL Server互換のフルマネージドサービス
• Azure Cosmos DB
• マルチマスタレプリケーションを備えたフルマネージドサービス
• 速度に関してのSLAあり
• NoSQLを含む様々なAPIをサポート
• Azure Database for MariaDB
• フルマネージドサービス
Azure SQL Database
• 最新のSQL Server Enterprise Editionを基にしたフルマネージ
ドのSQLデータベースエンジン
• エンジンとしては100%に近い互換性がある
• ごく一部、SQLServerから移行が難しい例がある(管理機能な
ど)
Azure Cosmos DB
• グローバル分散
• 10ms以下の応答時間
• スキーマやインデックスの管
理不要
• Gremlin,MongoDB,Azure
Table StorageのAPIを実装
Azure Database for Maria DB
• フルマネージドのMariaDB
• 比較的安価に提供されている
Oracleは?
• 業務用アプリケーションではOracleの採用例が多いと思います
• AzureではOracleはIaaSのイメージとしての提供があります
• 2019年6月AzureとOracleCloudの専用線接続が開始されました
• 現在は、北米リージョンのみ
• OracleCloudではもちろんOracleDBのマネージドサービスがあります
Azureの主なサービス
• アプリケーションサーバー
• ストレージ
• データベース
• ネットワーク(VPN)
• バッチサーバ
• ID
• ログ
ネットワークサービス
• Virtual Network
• VPN Gateway
• ロードバランサー
Azureの主なサービス
• アプリケーションサーバー
• ストレージ
• データベース
• ネットワーク(VPN)
• バッチサーバ
• ID
• ログ
バッチサービス
• Azure Functions
• イベント駆動型のサーバレスコンピューティングプラットフォーム
• C#,JavaScript,Java,Python,PowerShell,TypeScriptなど様々な言語に
対応
• Web Jobs(App Service)
• Azure App Serviceの一機能
• 追加コストがかからない
• キューストレージをトリガーに使われることが多い
Azure Functions
• バインディングとトリガー
Type 1.x 2.x1 トリガー 入力 Output
Blob Storage ✔ ✔ ✔ ✔ ✔
Cosmos DB ✔ ✔ ✔ ✔ ✔
Event Grid ✔ ✔ ✔
Event Hubs ✔ ✔ ✔ ✔
HTTP と Webhook ✔ ✔ ✔ ✔
Microsoft Graph
Excel テーブル
✔ ✔ ✔
Microsoft Graph
OneDrive ファイル
✔ ✔ ✔
Microsoft Graph
Outlook メール
✔ ✔
Azure Functions
• バインディングとトリガー
Type 1.x 2.x1 トリガー 入力 Output
Microsoft Graph
イベント
✔ ✔ ✔ ✔
Microsoft Graph
Auth トークン
✔ ✔
Mobile Apps ✔ ✔ ✔
Notification Hubs ✔ ✔
Queue Storage ✔ ✔ ✔ ✔
SendGrid ✔ ✔ ✔
Service Bus ✔ ✔ ✔ ✔
SignalR ✔ ✔ ✔
Azure Functions
• バインディングとトリガー
Type 1.x 2.x1 トリガー 入力 Output
Table Storage ✔ ✔ ✔ ✔
Timer ✔ ✔ ✔
Twilio ✔ ✔ ✔
Azure FunctionsとWebJobsの違い
ログ
• Azure Monitor
• 以下のデータ収集を行うことができる
• アプリケーション監視データ
• ゲストOS監視データ
• Azureリソース監視データ
• Azureサブスクリプション監視データ
• Azureテナント監視データ
Azure Monitor
Application Insights
https://docs.microsoft.com/ja-jp/azure/azure-monitor/app/app-insights-overview
• .NET,.NET Core,Node.js,Javaで動作
• 主な機能
• アプリケーションマップ
• 利用状況分析
• スナップショットデバッガー
• Visual Studioとのコード連携
• 分析
開発環境の整備
• 開発ツール:Azure SDK for .NET
• Cloud Explorer
• Azure Tools
• Visual Studio 2017以降
• OS
• Windows7 SP1以降
• Windows10 推奨
開発環境の整備
• Visual Studio 2019の場合
必要なツールがインストー
ルされる
少しずつ具体的な話にしていきます
ストレージアカウントの作成
• ストレージの利用にはストレージアカウントを作る必要がある
• アカウントごとに256ビットのストレージアカウントキーが発
行される。
• ストレージへのアクセスはストレージアカウントキーを使用す
る
ストレージアカウントの作成
ストレージアカウントの作成
アカウントの種類
• 汎用アカウント
• Table、Queue、File、Blobなどの各サービスを利用できる
• 通常はこちら
• Blobストレージ
• Blobのみを使用するアカウント
• 「ホット層」と「クール層」の二つで料金が異なる
• ホット層:ストレージコスト高め・トランザクション安め
• クール層:ストレージコスト安め・トランザクション高め
レプリケーションの種類
• ローカル冗長ストレージ(LRS)
• 単一リージョンの単一データセンタ内で三重化される
• 地理冗長ストレージ(GRS)
• プライマリリージョンで三重化され、セカンダリーリージョンでも三重化さ
れる
• 障害発生時はセカンダリーにフェイルオーバされる
• 読み取りアクセス地理冗長ストレージ(RA-GRS)
• GRS+セカンダリからの読み取りアクセス
• 通常運用時にも明示的にセカンダリーから読み取り可能
ストレージ API
• 名前空間
• Microsoft.WindowsAzure.Storage
• NuGetより「Windows Azure Storage」を検索
ストレージへのアクセス
• Web.configから取得
using Microsoft.WindowsAzure.Storage
(略)
string connection = Properties.Settings.Default.StorageConnection;
CloudStorageAccount account =
CloudStorageAccount.Parse(connection);
• AppSettingsに記述する方法もある
• 管理ポータルから参照・変更できる
• 平文でWeb.Configに保存されている場合に比べてセキュリティ面でよい
Blobへのアクセス
• http://アカウント名.blob.core.windows.net/コンテナ名/Blob
名
• Blobは3つの単位で管理される
• アカウント
• Azureポータルで発行されるアカウント
• コンテナ
• 複数のBlobを内包できる入れ物。1アカウントに複数
• Blob
• 画像・動画などのオブジェクト
BlobへのアクセスAPI
• 名前空間
• Microsoft.WindowsAzure.Storage.blob
using Microsoft.WindowsAzure.Storage
using Microsoft.WindowsAzure.Storage.blob
(略)
string connection = Properties.Settings.Default.StorageConnection;
CloudStorageAccount account =
CloudStorageAccount.Parse(connection);
CloudBlobClient blobClient = account.CreateCloudBlobClient();
Tableの構成
• システムプロパティのPartition Key ,Row Keyで一意にする
Partition Key Row Key Property 3 Property 4 Property 5 ・・・ Property N
Cloud Azure data1
Cloud AWS data2
Cloud OCI data3
DB Oracle data1
DB MySQL data2
DB MariaDB data3
DB QRDB data4
Partition 1
Partition 2
例
Partition Key Row Key 名称 年齢 部署コード 部署名 内線番号
社員 1 桜 太郎 30 1
社員 2 桜 二郎 25 2
社員 3 桜 三郎 22 2
部署 1 営業部 5087
部署 2 人事部 5088
プロパティで利用できる型
型 説明
Binary byteの配列 最大は64KB
Bool ブール値
DateTime UTC時刻
Double 64Bitの浮動小数点値
GUID 128bitのグローバル一意識別子
Int 32bit整数
Int64 64bit整数
String UTF-16でエンコードされた値
Tableへのアクセス
• http://アカウント名.table.core.windows.net/テーブル
名?$filter=クエリ
• LINQを使った照会が可能
TableへのアクセスAPI
• 名前空間
• Microsoft.WindowsAzure.Storage.Table
using Microsoft.WindowsAzure.Storage
using Microsoft.WindowsAzure.Storage.Table
(略)
string connection = Properties.Settings.Default.StorageConnection;
CloudStorageAccount account =
CloudStorageAccount.Parse(connection);
CloudTableClient tableClient = account.CreateCloudTableClient();
TableのアクセスAPI
• テーブル参照の作成
• GetTableReference(テーブル名)
• テーブルの作成
• cloudTable.Create(テーブル名)
• cloudTable.CreateIfNotExists(テーブル名)
• テーブルの削除
• cloudTable.DeleteTable(テーブル名)
• cloudTable.DeleteIfExests(テーブル名)
• テーブルの一覧
• tableClient.ListTables()
Tableのデータ操作
• Tableからエンティティー取得
• TableQuery<TEntity> cloudTable.CreateQuery<TEntity>()
• Tableへの更新・追加・削除
• TableOperation.Replace(entity)
• TableOperation.Merge(entity)
• TableOperation.Insert(entity)
• TableOperation.InsertOrReplace(entity)
• TableOperation.InsertOrMerge(entity)
• TableOperation.Delete(entity)
• cloudTable.Execute(tableOperation)
Queue
• App ServiceからWebJobやAzureFunctionへの疎結合のために
使用する
• App ServiceからWebJobへAPIコールしてはまずい理由
• 構成変化に強い構造にするため
• 直接コールすると実行環境に状態を持つことになる
Queueの構成
• Web Apps と Web Jobsの通信をQueueを使って疎結合とする
Web Apps
ストレージサービス(Queue)
Web Jobs
QueueへのアクセスAPI
• 名前空間
• Microsoft.WindowsAzure.Storage.Queue
using Microsoft.WindowsAzure.Storage
Using Microsoft.WindowsAzure.Storage.Queue
(略)
string connection = Properties.Settings.Default.StorageConnection;
CloudStorageAccount account =
CloudStorageAccount.Parse(connection);
CloudQueueClient queueClient = account.CreateCloudQueueClient();
おしまい
次回予告
• Azureを使ったハンズオンをやります
• 有効なサブスクリプションを持ったアカウントの用意をお願い
します

More Related Content

PDF
[Azure Deep Dive] クラウド デザイン パターン ~優れたシステム構築のためのガイダンス~
PDF
デザインパターンから見た AWS と Azure
PPTX
クラウドデザイン パターンに見る クラウドファーストな アプリケーション設計 Data Management編
PPTX
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
PDF
[修羅の街からこんにちわ♪JAZUG連動企画 by ふくあず] Windows Azureクラウド デザイン パターン
PDF
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
PPTX
Azure aws違い
PDF
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
[Azure Deep Dive] クラウド デザイン パターン ~優れたシステム構築のためのガイダンス~
デザインパターンから見た AWS と Azure
クラウドデザイン パターンに見る クラウドファーストな アプリケーション設計 Data Management編
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
[修羅の街からこんにちわ♪JAZUG連動企画 by ふくあず] Windows Azureクラウド デザイン パターン
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Azure aws違い
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...

What's hot (20)

PDF
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
PDF
ログ管理のベストプラクティス
PPTX
これから始める Azure の基礎サービス: IaaS/PaaS
PDF
クラウド時代の Web サイト構築 ~ Windows Azure Web サイト概要 ~
PDF
Aws summits2014 エンタープライズ向けawscdpネットワーク編
PDF
Azure Cosmos DB で始める Java + NoSQL 開発
PDF
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
PDF
Db2をAWS上に構築する際のヒント&TIPS 2020年6月版
PPTX
20170719 wintechq azure_stack
PDF
これから始めるAzure Kubernetes Service入門
PPTX
Azure Database for MySQL PostgreSQLを使って運用の手間を省きませんか?
PDF
AWS Black Belt Tech シリーズ 2016 - WorkSpaces
PDF
AWSのデータベースサービス全体像
PPTX
Azure Search クックブック
PDF
なぜソーシャルゲームはクラウドなのか? ~AWSの成功事例を紐解く~
PPTX
日本語:Mongo dbに於けるシャーディングについて
PPTX
JAWS-UG CLI #22 Amazon Kinesis
PDF
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
PDF
VisualStudio2010ReadyDay Azureセッション資料
PDF
Cloudian: Amazon S3準拠マルチテナント・クラウドストレージ・システム
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
ログ管理のベストプラクティス
これから始める Azure の基礎サービス: IaaS/PaaS
クラウド時代の Web サイト構築 ~ Windows Azure Web サイト概要 ~
Aws summits2014 エンタープライズ向けawscdpネットワーク編
Azure Cosmos DB で始める Java + NoSQL 開発
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
Db2をAWS上に構築する際のヒント&TIPS 2020年6月版
20170719 wintechq azure_stack
これから始めるAzure Kubernetes Service入門
Azure Database for MySQL PostgreSQLを使って運用の手間を省きませんか?
AWS Black Belt Tech シリーズ 2016 - WorkSpaces
AWSのデータベースサービス全体像
Azure Search クックブック
なぜソーシャルゲームはクラウドなのか? ~AWSの成功事例を紐解く~
日本語:Mongo dbに於けるシャーディングについて
JAWS-UG CLI #22 Amazon Kinesis
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
VisualStudio2010ReadyDay Azureセッション資料
Cloudian: Amazon S3準拠マルチテナント・クラウドストレージ・システム
Ad

Similar to 201910 azure seminar (20)

PDF
【CEDEC2018】Azure最新情報+「オトギフロンティア」運用大公開+サーバーレスアーキテクチャー
PDF
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
PPTX
99999999 azure iaas_newportal版
PDF
これからのクラウドネイティブアプリケーションの話をしよう
PPTX
Microsoft Azure build & ignight update summary
PDF
20190705 mas ken_azure_stack
PDF
CloudStack Overview(OSC2012Kansai@Kyoto)
PDF
SAP on Azure Cloud Workshop Material Japanese 20190221
PDF
PHP on Windows Azure
PDF
PHP on Windows Azure
PDF
OSS on Azure で構築するウェブアプリケーション
PPTX
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
PPTX
2014年12月04日 ヒーロー島 Azureスペシャル
PDF
Windows Azure for PHP Developers
PDF
Microsoft Azure 概要 (2015 年 4 月版)
PPTX
誰にも聞けないクラウドの基礎の基礎
PDF
クラウドデザインパターンから始めるクラウドの利点と弱点の理解~提案から設計・開発・保守に活かす!~
PDF
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
PDF
オープンソーステクノロジー対応の App Service と Azure Database Servicesを活用した Webシステムデザイン
PDF
Azureの活用事例
【CEDEC2018】Azure最新情報+「オトギフロンティア」運用大公開+サーバーレスアーキテクチャー
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
99999999 azure iaas_newportal版
これからのクラウドネイティブアプリケーションの話をしよう
Microsoft Azure build & ignight update summary
20190705 mas ken_azure_stack
CloudStack Overview(OSC2012Kansai@Kyoto)
SAP on Azure Cloud Workshop Material Japanese 20190221
PHP on Windows Azure
PHP on Windows Azure
OSS on Azure で構築するウェブアプリケーション
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
2014年12月04日 ヒーロー島 Azureスペシャル
Windows Azure for PHP Developers
Microsoft Azure 概要 (2015 年 4 月版)
誰にも聞けないクラウドの基礎の基礎
クラウドデザインパターンから始めるクラウドの利点と弱点の理解~提案から設計・開発・保守に活かす!~
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
オープンソーステクノロジー対応の App Service と Azure Database Servicesを活用した Webシステムデザイン
Azureの活用事例
Ad

More from SAKURUG co. (10)

PDF
20200515 web analyse_tool
PPTX
202005 log analyse
PPTX
The introduction to_sns_marketing_20200515
PPTX
20200214 the seminar of information security with sample answer
PPTX
20200214 the seminar of information security
PPTX
【資料】【Web開発者向け】クラウドセミナー@渋谷 #2【Azure入門】
PPTX
【ハンズオン手順書】【Web開発者向け】クラウドセミナー@渋谷 #2【Azure入門】
PPTX
The procedure of asp.net at 201908 sakurug seminar
PPTX
The seminar of asp.net at 201908 sakurug
PPTX
Db seminar 20190619
20200515 web analyse_tool
202005 log analyse
The introduction to_sns_marketing_20200515
20200214 the seminar of information security with sample answer
20200214 the seminar of information security
【資料】【Web開発者向け】クラウドセミナー@渋谷 #2【Azure入門】
【ハンズオン手順書】【Web開発者向け】クラウドセミナー@渋谷 #2【Azure入門】
The procedure of asp.net at 201908 sakurug seminar
The seminar of asp.net at 201908 sakurug
Db seminar 20190619

201910 azure seminar