御成門プログラマーの技術日記

Microsoft AzureやAngularなどの技術情報を発信します

EA契約者が使用する画面「Azure EA Portal」の機能、画面を紹介します

Azure EA契約(Enterprise Agreement)をしているユーザーが使用することができるポータル画面「Azure EA Portal」の画面と機能を紹介します。

そもそもEA契約とは?

EA契約とはMicrosoft Azure を使用する契約形態の一つです。この話はとても難しい話ですので今回は割愛します。
一応参考になりそうなページのリンクを貼っておきます。
Azureの4つのライセンス形態と料金 ~Azure CSPを利用するメリット~|Microsoft Azureコラム|東京エレクトロンデバイス

Azure EA ポータルの画面、機能一覧

Azure EA ポータルでは下記のような画面があります。

  • 「管理」→ 加入契約情報や管理者の確認、編集を行う画面
  • 「レポート」→ リソースの使用状況や料金表などを確認、レポート出力できる画面
  • 「通知」→ 最新情報の通知欄
  • 「ヘルプ」→ 公式ページへのリンク

今回はそれぞれの画面の役割と機能について実際の画面を使用しながら一つずつ紹介していこうと思います。

「管理」→ 加入契約情報や管理者の確認、編集を行う画面

加入契約情報や登録している部門・アカウント・サブスクリプションの情報を確認、編集することができます。

加入契約

加入契約している情報と管理者の一覧を確認できます。ここでいう管理者とはEAポータルにアクセスできるユーザーのことで管理者の追加、削除や権限の変更もこの画面から行えます。
※表示されている情報は公開用に編集したものです。

右上のアクティブのチェックボックスが初期値でONになっていますが、OFFにすることで契約期間が終了したときの加入情報を確認することもできます。基本的にEA契約は契約期間が決まっているため、過去の加入契約に紐づくに情報やコストを確認するためにはこの画面で加入契約を切り替えないと確認ができないので注意が必要です。


カレントで選択されている契約番号は画面左上で確認できます。情報を表示するレポートのボタンが使えない場合は契約番号を複数持っていて、カレント契約が選択されていない場合があります。その場合は「管理→加入契約→加入契約のリスト」から表示したい契約を選択しましょう。


こちらで表示されている管理者がAzure EAポータルにアクセスできるユーザーです。この画面から管理者の追加、削除、編集が可能です。

管理者の追加画面。コストの通知頻度の設定や読み取り専用かどうかを設定可能。読み取り専用にするとEAポータル上で設定の追加、変更の操作はできなくなります。

部門

部署を追加することでAzureサービスの使用状況やコストについて、部門ごとに管理することができます。

部署追加画面

アカウント

アカウントの管理を行うことができます。上述したEAポータルにアクセスできるユーザーの「管理者」とは別物であることに注意が必要です。「アカウント」はコストに紐づくグループ分けみたいなもののようです。Microsoftの公式ドキュメントによると事業部、昨日チーム、地理的な場所単位で作られる例が挙げられていました。

アカウント追加画面

サブスクリプション

加入契約に紐づくサブスクリプションの表示、作成を行います。ここで表示されていて有効なサブスクリプションがMicrosoft Azure上でサブスクリプションとして利用可能です。
※サブスクリプション名やサブスクリプションのGUIDはランダムで取得したものに変更しています
自分には権限がなかったのでサブスクリプションの追加画面は載せられませんが恐らく、アカウント所有者として追加されたユーザーのみがサブスクリプションの作成を行えます。

「レポート」→ リソースの使用状況や料金表などを確認、レポート出力できる画面

レポートの画面ではコストの使用状況、サービスの使用量、使用状況のファイル出力、料金シートの表示、Power BIレポートでの出力を行うことができます。

使用状況の概要

使用状況の概況では支払いに関する概要情報が表示されます。

通常のAzureサブスクリプションの考え方と違い、EA契約ですと年払いで先に支払い、残高を超過した分は毎月請求される仕組みの方が多いと思います(パートナー企業によって違うかもしれませんが)。こちらの例ですと2017年8月の期首時点で1,000,000円の残高があり、8月に40,000円使ったので、8月の期末残高は960,000円という見方ができます。残高がなくなるとサービス超過分の金額の部分に反映されます。
画像下の「Azureサービス」の部分は選択された月にサービスごとにどれだけ使用して、単価がどれくらいで、どれだけ料金がかかったかが記されています。

サービス使用量レポート

サービス使用量レポートは検索期間の間に「サービス」の「測定単位ごとにどれだけ使用したか」を出力します。よくAzureの料金計算ツールで使用量を予測で入れて見積もったりすると思いますが、その使用量の実際の結果ですね。

使用状況のダウンロード

月ごとの「残高と料金」、「使用状況の詳細」、「Marketplace の料金」、「料金シート」をCSVファイルでダウンロードできます。私はこちらの機能を使うことが今のところ一番多いですね。料金などで細かい項目とかを知りたいときにExcelファイルに変換して集計して使用することが多いです。最近はAzure Portalのコストマネジメント機能もかなり充実してきたので使用することは減ってきましたが。ダウンロードできるファイルの詳細については後日別記事で紹介したいと思います。
こちらの「使用状況の詳細」画面からEAポータルのAPI「Azure Enterprise REST API」で情報を取ってくるのに必要なAPIキーを生成できます。EAポータルAPIを使用することで自信が作成したアプリケーションからEAポータルで表示される情報を取得することが可能になります(その話については後日別記事で紹介できたらと思います)。

料金シート

Azure EA契約では販売パートナーごとにAzureリソースの料金が定められているため公式ページで公開されている料金とは違う可能性があります。そのため、EA契約を行っている方は自身が使用する正確なリソース料金の単価はこちらの料金シートから確認します。

こちらの「料金シートの単価」 × 「サービス使用量」が「実際に課金されるコスト」ですね。

Power BI レポート

Azure Cost Management コネクタ を使用すると、Azureコストを Power BI でレポート表示できるようになります。

「通知」→ 最新情報の通知欄

Azure EA契約、EAポータル、コスト関連の通知情報が表示されます。

「ヘルプ」→ 公式ページへのリンク

ヘルプ画面のリンクです。下記MS公式ページにリンクされていました。
Azure エンタープライズ ポータルを使い始める | Microsoft Docs
ちなみにEAポータル関連のサポートリクエストはAzureポータルから行うことが可能です。

参考リンク

docs.microsoft.com

Microsoft認定資格の無料の更新評価試験を受けてみた【受験方法・勉強方法・試験方式】

Microsoft認定資格の更新方法が2020年12月15日に変更になりました。
docs.microsoft.com
新しくなった認定資格の更新について情報などまとめましたので是非、ご参考にどうぞ。

MS認定資格更新方法の変更点

変更点は下記の通りです。

  • 変更前:2年間の更新期限切れ前に有料の更新対象資格を受験し、合格する
  • 変更後:1年間の更新期限切れ前に無料の更新アセスメントテストを受験し、合格する

変更前は更新の試験でもテストセンターや厳しい条件での自宅受験が必要でしたが、新しい「更新アセスメント試験」は受験要件などの指定はなく、どこでも気軽に受けることができます。更新期限が1年になった代わりに無料の更新アセスメントで認定資格を更新できるようになったため、更新のハードルとしては下がったのではないでしょうか。ちなみに有効期限についてですが、2021年6月30日までに合格した資格については2年間、以降に合格した資格については1年間となるそうです。

更新アセスメントテストの受け方

認定ダッシュボードから更新対象の資格を確認することができます。 上記のように期限切れのアラートが表示されたり、MS Learnの認定資格一覧に更新ボタンが表示されます。 更新ボタンを押すと更新アセスメントの「更新評価準備画面」に移ります。
準備画面内の下記「更新評価を受ける」ボタンを押すといきなり試験が始まるので注意です。

試験の出題方式、出題方法について

私が今回受けた更新試験は「Microsoft Certified: Azure Administrator Associate」、「Microsoft Certified: Azure Developer Associate」の更新試験を受けてみみましたが、試験の出題方式に関しては大体同じで選択肢式の単一選択回答か、複数選択回答の問題でした。各問題は一度答えると前の問題には戻れないので注意が必要です。試験時間は45分で合格点は試験によって違うようでしたが、全体正解率が70%前後以上のスコアで合格でした。
最後の問題に答えると合格してる場合は合格画面が表示されます。

合格した場合も、不合格の場合も「全体の正答率」と「評価別」の正答率を確認することができます。

更新アセスメントの勉強方法

試験の対象スキルについては上述した「更新評価準備画面」に書かれていたり、更新試験向けのMicrosoft Learnのコレクションも準備画面の下に記述されています。更新試験の勉強方法は試験範囲のMSLearnコレクションをやったり、公式ドキュメントを読んだりしました。MSLearnのコレクションで勉強したことが結構出ていた印象です。

更新アセスメント試験の再受験ポリシーについて

残念ながら不合格だった場合の再受験ポリシーですが、1回目と2回目の間はすぐに受験することができます3回目以降は前回試験より24時間空けないと受験できないので注意が必要です。再受験ポリシーさえ守れば、認定の有効期間内であれば何度でも無料で受け直すことができるので再認定を取りやすい仕組みだと思います。

最後に

今までMSの認定資格は更新の際にお金を払って、再受験が必要であったため、期限付きの資格の受験のしやすさや、更新のハードルがやや高かったと思います。新しい方式での資格更新方法となり、手軽に何度も無料で更新することができるようになったため、さらにMicrosoft認定資格の敷居が下がったのではないでしょうか。反面、更新期限を1年とすることで技術がどんどん進化していくことに対する資格保有者の技術アップデートが頻繁に行えるようになったメリットもあると思います。今回の変更でMicrosoft認定資格の人気がさらに上がってくるのではないかという予想です。

参照ページ

docs.microsoft.com

【Azure Backup】MARSエージェントで「resource not provisioned in service stamp」エラーが発生した場合の解決方法

ある日、Microsoft Azure Recovery Services(MARS)エージェントを使ったバックアップが動かなくなった。
発生したエラーメッセージで検索しても情報がほとんどなかったので解決方法を共有します。

発生した現象

バックアップのジョブが一切発生していない状態

バックアップジョブはある日を境に一切動いていなかった。
失敗のジョブが発生しているわけではないのでAzure Backupの通知機能が動かないので注意。

バックアップを行っているサーバーでエージェントの画面を開くと下記のエラー

何も情報が表示されない... f:id:tt-suzukiit:20200124181525p:plain

resource not provisioned in service stamp

PowershellでMSOnlineBackupコマンドを実行しても同様のエラーになる
PS C:\Windows\system32> get-obpolicy
get-obpolicy : The current operation failed due to an internal service error "Resource not provisioned in service s
". Please retry the operation after some time. If the issue persists, please contact Microsoft support.
発生場所 行:1 文字:1
+ get-obpolicy
+ ~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Get-OBPolicy], DlsException
    + FullyQualifiedErrorId : ResourceNotYetProvisioned,Microsoft.Internal.CloudBackup.Commands.GetCBPolicyCommand

原因と解決方法

原因はバックアップ対象マシンのコンピューター名が変わったことが要因

Azure BackupのMARSエージェントは初回設定時からバックアップ対象マシンのコンピュータ名を変えてしまうとうまく動作しないらしく、「Resource not provisioned in service stamp」エラーはコンピュータ名を変えてしまったときに発生する事象のようです。

エラーが発生したマシンをしらべてみたところ、 うまく動作しなくなった日からコンピュータ名が変更されていることがわかったのでこれが原因だと断定しました。

解決方法

解決方法は2通りある。

  1. コンピュータ名を戻す
  2. 新しいコンピュータ名でAzure Backupに再登録する

私は再登録パターンで対応したところ、
うまく動きました。

Microsoft Ignite The Tour Tokyo 参加メモ【BRK30033 サーバーレスな Azure Event Grid の紹介】

BRK30033 サーバーレスな Azure Event Grid の紹介

CNCF

  • クラウドネイティブを定義する団体
  • CNCG-Serverless
    • そこに属するAzure Functions

Serverlessのプラットフォームとして

  • Zero Server Ops

    • OSアップデートなどの準備、管理コストがかからないこと
    • 自動的なスケーリング
  • No Compute Cost When Idle

    • アイドル時(処理を行っていない時)のコストは0

Azureのサーバーレスプラットフォーム(抜粋)

  • Azure Functions
  • Event Grid

Azure Functionsを使って単純にアプリを作ったら

  • そういうことを実現しようとしたら一つのイベントで複数箇所に接続しないといけない
    • コードボリュームも大きくなり、可読性、保守性が落ちる
  • もしくは複数のFunctionsに接続しないといけない
    • コードボリュームも大きくなり、可読性、保守性が落ちる
  • 一つのFunctionsにコードが集中してしまう。

Azure Event Grid

  • イベントを一元管理し、イベント処理側にルーティングする
    • イベントを受けて送った先を分岐できる
    • イベント受ける側は送るだけでいい
    • リアルタイム、スケーラビリティ、高可用性、重量課金
  • Event Gridを使うと機能別のコードボリュームは小さくなり、可読性と保守性が向上、各機能のスケーラビリティも向上
  • 機能別にマイクロサービス化ができるようになる

Event Gridの設計思想

  • パブリッシャーとサブスクライバーのパターン
  • 再試行パターン
    • 再試行ポリシーだけでは足らない場合
    • 失敗した情報をBlobに突っ込んで失敗時の処理を受け取り、再試行する
    • サブスクライバーごとの設定で再試行のポリシーを設定できる。エラー時ストレージにデータを送る設定ができる
  • クライアントフェールオーバー

    • サービスは絶対落ちるときがある
    • 日常生活から対策することにより問題なくなる
    • 東日本と西日本のEvent Gridを用意しておく
  • Cache戦略やイベントソーシングの実装に

    • どんなにスケールしてもDBの読み書きが遅いことがネックになる
    • 変更した状態を保持することでスループットを向上させる

CloudEvents

  • 言語、ベンダー固有ではなく、汎用的なメッセージ規格
  • Azureでもサポートしている
  • 10/24 1.0リリース
  • 外部の互換性のあるメッセージに飛ばすことができる

Azure Event Grid How To

  • Code SampleからEventGridを検索すると出てくる
    • イベントを可視化してDebugを便利にする Azure Event Grid Viewer
    • SignalRを使った完全非同期ができるようになる

イベントサブスクリプション

  • イベントにサブスクライブするには証明が必要。詳しくは公式ページ

Microsoft Ignite The Tour Tokyo 参加メモ【AFUN70 Azureのコストを削減する】

AFUN70 Azureのコストを削減する

  • セッション資料 aka.ms/afun70

オンプレミスでコストを見積もるとき

  • ハードウェア
  • ラックスペース
  • ソフトウェア
  • その他の隠されたコストがかかる
    • 電力
    • メンテナンス
    • リカバリー
    • バックアップコスト
    • 部品股間
    • 保険

Azure仮想マシンでコストを見積とき

  • 性能によって値段が変わる
  • クラウドにもその他のコスト要因がある
  • これを理解する必要がある

3 今回のセッションの内容

  • コストの見積
  • コストガードレールの設定
  • 実際のコストを確認

料金計算ツール

  • Azureの価格のページの中に料金計算ツールがある
  • アカウントをサインインして使うのがおすすめ
    • 見積を保存できる
  • 参照実装のシナリオがあるのでそこから見積もできる

仮想マシンのリザーブドインスタンス

  • 仮想マシンの場合、長期間使用が決まっている場合リザーブドインスタンスがコスト削減におすすめ

仮想マシンのハイブリッド特典

  • オンプレのライセンスを持っていると仮想マシンを安く使える

クラウドコストの担当者はだれが見るべきか

  • サービスにかかわるすべての社員がかかわるべき
    • 開発者
    • 財務担当者
    • マネージャーなど

クラウドのコストにアーキテクチャが重要になる

  • 例カレーをスパイス一から作ってくるのがIaaS、レトルトを食べるのがPaaS

  • コストに影響する設計上の決定

    • 管理対象ディスク
    • ストレージ階層
    • レプリケーション
    • 地域

application migrate service

  • オンプレミスからクラウドマイグレーションする際のコストを見積もってくれる

Azure TCO計算ツール

  • クラウドに移行してコストが変わるかを確認できる。
  • Azure価格からTCO計算ツール
  • 環境に合わせて情報を入力すると、オンプレミスとクラウドの費用感を比較するレポートが出力される

ロールベースアクセス制御

  • owner権限は何でもできてしまう。
  • コストを見るだけのロールを作って、その人に割り当てるのが重要

リソースタグ

  • 細かい仕分けができる
  • Azureのリソースが何に使われているのか。本番、dev環境なのか
  • どの部署が使っているか

Azureポリシー

  • タグの制限
  • 高価なSKUの制限

Azure Badgets

  • Azure portalのコストマネジメント→badgets
  • 現在のAzureサブスクリプションで動いている。バジェットでしているリソースの状況を確認できる
  • タグでフィルタリング
  • 設定値に月額で達したときにアラートをすることができる

Azureコスト分析

  • 実際にかかったコストを確認するときに使う
  • コストマネジメント→コスト分析
  • リソース、ロケーション、リソースタイプをグルーピングして確認できる

AzureAdvisor

  • Azureを使う上でのベストプラクティスを提供してくれる
  • コストに関するプラクティスも教えてくれる

Azure PowerBI コンテンツパック

  • Azureと連携して情報を確認できる

API

  • 課金APIを使うことで自作アプリと連携

AWSのコストをAzureコストマネジメントで確認できる

コスト削減のヒント

  • Azureの購入オプションを見極める
    • トレーニング用のサブスクリプション
    • Dev/Testサブスクリプション
    • Azure開発/ラボ
    • 優先順位の低い仮想マシンを確認する
    • Azure Hybrid特典を使えたら使う
    • リザーブドインスタンス

Microsoft Ignite The Tour Tokyo 参加メモ【OPS10 最新の運用の基盤を構築する: 監視】

OPS10 最新の運用の基盤を構築する: 監視

  • Azure Exam Fundamental以外は有効期限2年感 クラウド技術の進歩は早いため

  • セッション資料 aks.ms/OPS10

RELIABILITY

  • 今回のセッションは信頼性がテーマ
  • 監視の業務はつらいなとおもっている人が多いのでは
  • 監視は失敗すると信頼性を大きく失ってしまう

信頼性は顧客の視点で定義される

Modern Opsが役に立ちます

  • マイクロサービス化した環境を従来の方法で監視・障害調査するのは困難

    • ツールを入れるのが難しい
    • サービスが細かくなりすぎて原因究明が難しい
  • 従来は想定された障害に対するアラート

  • ModernOpsは想定外の障害に対応可能に、アラートノイズを最化使用してアクション可能に。

Azure Monitor

  • ログの収集、分析をする機能の総称

Application Insight

  • 可用性テスト

    • テストの作成
    • URLのPingテスト(認証を通してテストも設定可)
  • 実装は簡単

    • 多くの言語に対応
  • マップ機能

  • 失敗
    • エラーの内容を解析できる
  • パフォーマンスの分析
  • アクセス元の分析(OSとか)
  • ライブメトリックストリーム

  • ダッシュボード機能を自動で作ってくれる

AzureMonitor for Resource Group(プレビュー)

  • リソースグループ→分析情報(プレビュー)
  • リソースグループに入っているリソースの正常性をまとめて確認できる
  • アプリケーションが動いていないまず、Azureのリソースが動いているかを確認する時に使う。障害の切り分け

Log Analytics

  • ログの情報を貯めている
  • ApplicationInsightでログの情報を可視化してくれる
    • ログ情報をクエリを書いて抽出できる
    • サマライズ機能
    • クエリに対してアラートを設定することも可能
    • レスポンスタイム、一定期間における失敗と成功のサマリ

App Service

  • 問題の診断と解決
  • AppServiceはよくできているのでおすすめ
  • Avilability
  • ベストプラクティスを確認できる

SQL Database

  • Azure SQL Analytics
    • デフォルトだと診断ログがオフになっているので気を付けて
    • 診断設定をOnにすると使える

AKS

  • Monitor For Container
  • コンテナーの監視

    • クラスター、ノード、ポッドの情報などをまとめて監視できる
    • CPUの利用状況など
  • 概要→ログの表示 LogAnaliticsの機能

    • 各ノードのディスクの使用率が90%超えたらアラート出したいとかできる

アクション可能なアラート

  • Azure Debvpsチームの例 aka.ms/devops-journey

Site Reliability Engenner (SRE)

サイト信頼性エンジニアリング

  • ソフトウェアエンジニアに運用設計を依頼したらどうなるかという発送
  • 運用視点のフィードバックにより組織の信頼性が向上

Microsoft Ignite The Tour Tokyo 参加メモ【AFUN40 Azureセキュリティの基礎】

AFUN40 - Azureセキュリティの基礎

Azureのセキュリティ機能についてのわかりやすく紹介してもらえました。

顧客側の過失によるセキュリティリスクが増価する

2020年までに顧客側の過失により発生するクラウドセキュリティの問題は95%に達するだろう
ガートナー
クラウドセキュリティは共有責任

セキュリティのゴール

  • セキュリティ状況の把握とその改善方法の理解
  • 永続的な管理者特権の最小化
  • 影響の大きなデータに対してどうやってアクセス制限をかけるか
  • SQLインジェクションアタックや漏洩の検知
  • ADやAzureテレメトリの不信なアクテビティの検知

セキュリティセンター

  • すべてのリソースに対してセキュリティについての可視化、制御、ガイダンスしてくれる

  • セキュリティスコア

    • 一目でセキュリティ対策ができているか確認できる
  • レコメンデーション

    • 各リソースごとに必要なセキュリティ設定をレコメンドしてくれる
  • 規制コンプライアンス
    国際的なコンプライアンスにカバーしている確認できる コンプライアンスに対して自分のリソースがどれくらい対応しているかを確認できる。

  • どうやってセキュリティの問題を解決するか

    • リソースのセキュリティ権益
      • 何をやってほしいのか書いてある
      • Just In Time Access 特権の権限は必要な時だけ付与するのが現在のセキュリティの常識
      • ボタン1クリックで解決してくれる

特権ID管理(Azure AD P2の機能)

  • RBACの権限付与がちゃんとできているのかを確認する

  • 特権ID管理の画面を開く

    • 自分が持っているロールが表示される
    • 資格のあるロール 特権もっているけど有効になっていないロール
    • アクティブなロール

      • 今使えるロール
    • システム管理者は一時的に特権を与えることができる

      • 特権管理の画面→Azure ADロール→資格の割り当て→与えるロールを選択→ユーザーを選択 これでユーザーには潜在的にロールが与えられたが、アクティブではない。
      • ユーザーは特権ID管理から自分のロールの資格のあるロールでアクティブ化をしてあげる。有効時間を設定してあげる。サインアウトが必要。
      • Azureリソースに対しても一時的な特権の付与ができる

ストレージアカウントのネットワーク制限

例:あるAzureストレージに対して特定の仮想マシンからのみアクセスできるようにしたい

  • 指定したサブネットからのアクセスのみ接続可能とする
  • (仮想ネットワークの設定)仮想ネットワークに紐づけてストレージを指定する
  • (ストレージアカウント側)ファイアウォールと仮想ネットワークで「選択されたネットワーク」で先ほどのサブネットを指定すると、先ほどのサブネットからしかアクセスできないようにすることができる。
  • ストレージエクスプローラーからもアクセスできなくなる

SQL Databaseのセキュリティ機能

どのようにしてSQLDatabaseの安全性を向上するか

  • AzureADでアクセスコントロールする
  • ストレージと同じファイアウォールと仮想ネットワークの制限
  • Transeparent Data Encryption

  • Advanced Dataセキュリティ

    • SQLインジェクションなどをAIを使って検出する
    • インジェクションの検出
    • データが抜かれていないかを確認する
    • SQL Server側のATPみたいなやつ

Azure Sentinel

Azure全体的な視野で異常なアクテビティをどう検知するか

  • 様々なデータソースからデータを集めてきて分析する
  • データコネクター
    Azureに限らないデータを分析する

  • プレイブック
    センチネルで発生したイベントに対してアクションを定義できる
    簡単にいうとLogic App

Microsoft Ignite The Tour Tokyo 参加メモ【APPS20 - クラウド内のデータに関するオプション】

Microsoft Ignite The Tour Tokyoのセッション参加メモです。

www.microsoft.com

APPS20 - クラウド内のデータに関するオプション

クラウド内にデータを保存するときにどういう戦略とるか的なはなしでした。

架空の設定

危険な単一障害点をどうすれば対策できるのか

  • 新規サービスの迅速なプロビジョニング
  • 既存環境への影響を回避
  • 可能な限り開発者へ管理を移譲
  • 運用の手間なく、ストレージを動的にスケール
  • 適切なツールで作業を実施

データ格納戦略、方針

  • データ格納戦略の重要性

    • 旧来の運用プロセスのアップグレードをスムーズに
    • サービスの分割
    • コンテンツの保護、セキュリティの維持
  • データ構造

    • 構造化データ
      製品カタログ

    • 非構造化データ(映像、音楽などのばいなりデータ)

      • データベースに入れるとコスト的に微妙? 製品の写真
    • 半構造化データ
      • スキーマがガチっと決まっているわけではない。JSONなど カート内の情報
  • データの特性

    • データ量
    • スピード アクセスするためのスピード、データの流れる量
    • 多様性 スキーマが複数あるか

Storage

Storageサービスいっぱいある

IaaS
  • Disk
  • File
PaaSより
  • Blobs
    • オブジェクトストレージ
    • バックアップやアーカイブ
    • IoTなどのビッグデータ
    • スケール、どこからでもアクセス可能、低コスト
  • Tables KeyValueStore お値段抑え目、管理を少なくしたい
  • Queue 厳密な順序保証が必須の場合はサービスバスのキュー、トピックを使う

  • WeBサイトの画像をWEBサーバーに置いていると落ちた時に画像が失われる →画像はblobストレージに格納。画像をGeoレプリケーションにする。

  • 不変Blobストレージ

    • 時間ベースで上書きできないようにする
  • HPC Cache

  • 変更フィード

RDB

  • Azure SQL Database

    • Single,elastic pool,managed instance
    • SQL database Serverless
  • アプリケーションシークレットの管理

    • githubのパブリックレポジトリを使ってシークレットを上げてしまうことがある。 →Azure Key Vault
    • Azure Key Vault
      • FIPS 140-2
      • 金融関係でも使われれる
      • プレミアムHSMでバックアップ
      • HTTPリクエスト。アプリケーション設定でキーコンテナの参照

NoSQL

  • CosmosDB
    • MongoDBやCassandraのワイヤプロトコルで接続可能
    • RUリクエストユニット 見積ツールが新しくできた。
    • アクセスをは早くしたいときなどに出番
    • スループットオートパイロットモード

AzureFunctionsでマネージド IDを使い、資格情報を入力せずにAzurePowerShellを動かす方法【Azure Functions, ManagedID】

今回はAzureFuncitons上でManagedIDを使ってユーザーアカウントでログインせずにAzurePowerShellを動かす方法を紹介します。

今回作ったものは「Azure PowerShellを使ってAzureリソースの情報を取得する関数」です。

マネージドID(ManagedIdentity)とは

簡単に言うとAzureリソース自体にID(権限)を持たせてあげることで、
Azureリソースから他のAzureリソースに接続するときにIDとパスワードなどの資格情報で認証する必要がなくなります。

資格情報をコードに埋め込んでしまう恐れやKeyVaultで管理する必要がなくなるので
資格情報を保護することができるのです。

詳しい説明は公式ページを参照ください。

今回使用したAzureリソース

・Azure Functions(ランタイムスタック PowerShell Core(プレビュー))
情報を取得するPowerShellを流す。今回はVMの起動状態を取得するコマンドです。

・Azure VM
情報を取得される側のリソース。

Azure FunctionsにVMの起動ステータスを取得するPowershellコマンドを記述

下記のコードをManaged IDの設定済の状態で使用すると資格情報の入力を行わずにサインインできます。

Connect-AzAccount -Identity

以下VMのステータスを取得するコード全文

using namespace System.Net

# Input bindings are passed in via param block.
param($Request, $TriggerMetadata)

# Write to the Azure Functions log stream.
Write-Host "PowerShell HTTP trigger function processed a request."

# Interact with query parameters or the body of the request.
$name = $Request.Query.name
if (-not $name) {
    $name = $Request.Body.name
}

# Az.Accountsモジュールがインストールされていなかったらインストールする
if(Get-Module -ListAvailable Az.Accounts){
    Connect-AzAccount -Identity
}

# サブスクリプションを選択(本来は直打ちしちゃダメ)
Select-AzSubscription -Subscription "<ここにサブスクリプションIDを記述>"

# VMの起動ステータスを取得するPowerShellを実行
$vm = Get-AzVM -name $name -status
if($vm){
    $status = [HttpStatusCode]::OK
    $body = $vm.PowerState
}else{
    $status = [HttpStatusCode]::BadRequest
    $body = "情報が取得できませんでした。"
}

# Associate values to output bindings by calling 'Push-OutputBinding'.
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
    StatusCode = $status
    body = $body
})

ちなみに現時点ではManagedIDの設定を行っていないのでエラーになります。 f:id:tt-suzukiit:20191029184256p:plain
それでは続いてManagedIDの設定を行います。

ManagedIDの設定を行う

  • Azure Functionsの画面を開き、「プラットフォーム機能」タブ→「ID」を選択 f:id:tt-suzukiit:20191029191508p:plain

  • 「システム割り当て済み」タブ→「状態」をオンにして「保存」を選択 f:id:tt-suzukiit:20191029191519p:plain
    保存完了するとオブジェクトIDがFunctionsに割り当てられる f:id:tt-suzukiit:20191029191535p:plain

  • 「サブスクリプション」→今回VMが置いてあるサブスクリプションを選択→「アクセス制御」→「追加」→「ロールの割り当て」 f:id:tt-suzukiit:20191029191551p:plain

  • Functionsアプリをサブスクリプションの閲覧者に追加する f:id:tt-suzukiit:20191029191623p:plain

  • もう一度Functionsを実行するとVMのステータスが取得できるようになりました。 f:id:tt-suzukiit:20191029191700p:plain

最後に

今回使用したManagedIDを用いることでアプリケーション上に資格情報を持たない構成が可能となります。
実装も簡単ですし、ManagedIDに対応しているAzureリソースに関してはManagedIDを使っていきましょう。

Azure入門者向けの認定資格 AZ-900「Microsoft Azure Fundamental」を紹介します【試験範囲、勉強方法、申し込み方法】

AZ-900受験バウチャー付きのAzure クラウド基礎講座が公開されていたので
今後の自分以外のAzureトレーニング目的での調査も込めてAZ-900試験の概要を知るために受講してきました。 microsoft-events.connpass.com

講座の終わりにそのまま会場で受験させてもらって合格しました。 AZ-900「Microsoft Azure Fundamental」はAzure初学者にとってはおすすめの試験ですので紹介したいと思います。

AZ-900「Microsoft Azure Fundamental」とは

Microsoftの公式ページでは下記のとおり説明されています。 www.microsoft.com

この試験は、 CloudサービスやそれらのサービスがMicrosoft Azureでどのように提供されるのかについての基礎的な知識レベルをデモンストレーションしたい受験者向けです。この試験は、 例えばクラウドベースのソリューションやサービスの売買に関わる人や、クラウドベースのソリューションやサービスの関係者といった技術的な背景を持たない人や、クラウドサービス関連の基礎知識を証明する必要のある技術的な背景を持つ人を受験者として想定しています。一般的なIT知識や経験は役に立ちますが、技術的なIT経験は必須ではありません。

ということで技術者に限らずAzureに携わる営業や経営者の方などにもおすすめの試験です。

どんな内容が出題されるのか

クラウド全般の基礎の基礎の知識から、Azureの設計理念や、各種Azureサービスの概要や特徴などが出題されます。
* 出題範囲は公式ページ参照 www.microsoft.com

勉強方法

Azure クラウド基礎講座を受講する

これからも開催されるかわかりませんが、
Azure クラウド基礎講座を受講するとAZ-900の出題範囲の内容を1日で学ぶことができました。
前提知識を持っていない方でもこの講座を受ければすぐに受かると思います。

Microsoft 公式ドキュメントを読む

出題範囲の中で知らないAzureサービスがあるならばMicrosoftの公式ドキュメントを読んで機能と概要を理解しておきましょう。

Azureを実際に触る

百聞は一見にしかずです。
どんどん触ってAzureに慣れましょう。
Microsoft公式のオンライントレーニングサイトである「Microsoft Learn」を利用するのもおすすめです。
docs.microsoft.com

Azure認定試験を申し込むには

公式ページから申し込みができます。
www.microsoft.com 「この試験の受験予約をする」ボタンから申し込みできます。
f:id:tt-suzukiit:20190919151110p:plain
試験は全国のテストセンターで受験することができます。」

最後に

AZ-900試験を受けることでAzureの基礎知識を身につけましょう。
そして受かったら次のステップに進んでいきましょう。