APPS20 クラウド内のデータ格納に関するオプション
MicrosoftIgniteOsaka
1/23 session2 APPS20 クラウド内のデータ格納に関するオプションのメモです。
Tailwind Tradersが重視していること
- 迅速なプロビジョニング
- 新規サービスによる既存環境への影響を回避
- 可能な限り開発者へ管理を移譲
- 運用の手間なくストレージを動的にスケール
- 適切なツールで作業を実施
データ格納戦略の重要性
旧来の運用プロセスからのスムーズなアップグレード(リフトアンドシフト)
製品やサービス、昨日の迅速な作成・構築(チューニングとかに時間を取られない)
サービスや機能を分割し、管理しやすい粒度に構成
コンテンツの保護、セキュリティの維持
ツールの選定基準
データの構造
- 非構造化データ(Storage)
- 構造化データ(RDB)
- 半構造化データ(NoSQL)
データの特性
- 量
- スピード
- 多様性
Storage
Azure Storage Service
- IaaS
- Disks
- Files
- PaaS
- Blobs
- Tables
- Queues
Blob Storage Service
非構造化データの格納向き
- アプリやWebスケールのデータ
- バックアップ、アーカイブ
- IoT、ゲノム解析などで生成されるビッグデータ
複製可能
暗号化されている(AES256)
証憑保全のために、一度追加したファイルを変更させない。(領収書など変更してはいけないデータの保全)
- Immutable storage(不変ストレージ)を利用する。
RDB
- SQLDatabase
- Azure Synapse Analytics
- MySQL
- PostgreSQL
- MariaDB
SQLDatabase
- Single
- ElasticPool(マルチテナントなど)
- ManagedInstance(リフトアンドシフトなど)
アプリケーションシークレットの管理
- AzureKeyVault
→これはAPPS10にもでてきた
AzureFunctionsやAppServiceからシークレットにアクセスしたい
→KeyVaultは環境変数設定ができる。アプリからは環境変数を読むようにする。
AKSからシークレットにアクセスしたい
→FlexVolumeを利用する
Azure CosmosDB
- MongoDBやCassandraのワイヤープロトコルでアクセス可能(クライアントの接続文字列を変えれば接続できる)
- インデックスは全フィールドに自動設定
- 指定したパーティショニンキーで自動パーティショニング
- 地理冗長(シングルマスター、マルチマスターとも)
注意点として、MongoDBの最新バージョンと必ずしも互換性があるわけではない。
移行する場合、バージョンに問題がないかは確認が必要。
複数リージョンの書き込みを有効にするをチェックすると、マルチリージョンの書き込み/読み込みができるようになる。
見積り
Cosmos RU Calculator
https://cosmos.azure.com/capacitycalculator/
Key takeaways
データ格納戦略の重要性
戦略に基づいた適切なツールの利用
- データ構造や特性
- 増大するデータへの対応