AWS AMI セキュアブート調査

経緯

[まず結論] TPM に対応しているAMIを選択するとセキュアブートが有効になった状態で起動できる。

AWS サービスでゲーミングパソコンを構築しようとあれこれしていたところ、構築した仮想マシンでセキュアブートが無効になっていることを確認した。

★セキュアブートとは…
コンピューター起動時に正規の信頼できるソフトウェア(OSやドライバーなど)だけが実行されるように署名を検証、認証・許可するセキュリティ機能。
Win11 では必須の機能である。

[セキュアブートの役割]
キュアブートは、UEFI が持つ鍵データベース(PK/KEK/db/dbx)を使って、

  • 信頼された署名のブートローダーだけを許可(db)
  • 脆弱・悪意ある署名をブロック(dbx)

することで、ブートキットやマルウェアからシステムを保護できる。

GPU インスタンスを使ってアート生成や機械学習を行う場合、セキュアブートを有効化すると ドライバ署名の整合性チェック が入るため、環境構築の安定性は増すが柔軟性はやや制限される。安定性重視(署名済みモジュールのみ)と 柔軟性重視(カスタムビルドも許容)どちらの運用を優先するかがポイント。

[UEFIとセキュアブート]
セキュアブートは UEFI の機能の一部であり、UEFI モードでなければ利用できない。
つまり、UEFI が土台、セキュアブートはその上に乗るセキュリティ機能である。

・Microsoft の公式ドキュメントでは、セキュアブートは UEFI 仕様の一部であるセキュリティ標準と明記されている。
・UEFI モードでないとセキュアブートは有効化できない。また、Legacy BIOS モードではセキュアブートは使えない

⇒上記は、セキュアブートが UEFI の署名検証機能に依存しているためである。

[UEFI-preferred]
「UEFI-preferred」はUEFIを優先するが、もしUEFIで起動できない場合は自動的にレガシーBIOSモードでの起動にフォールバックする。

ブートモード挙動利点注意点
UEFI常にUEFIモードで起動– セキュアブート対応
– GPTディスク利用可能
– 高速起動
– UEFI非対応環境では起動不可
UEFI-preferredUEFIを優先し、失敗時はレガシーBIOSで起動– UEFI環境ではUEFIのメリットを享受
– 非UEFI環境でも起動可能
– レガシーBIOSにフォールバックするとセキュアブート等の機能は使えない
  • UEFI固定モード
    → セキュリティや最新機能を確実に使いたい場合(例: Windows 11要件を満たす環境)。
  • UEFI-preferredモード
    → AMIやOSイメージを複数環境で使い回す場合。UEFI対応環境ではUEFIで起動し、古い環境ではBIOSで起動できるため柔軟性が高い。

AMI のブートモードの確認方法

・EC2 → AMIs → 作成したAMIを選択
・画面下部の「Details」欄に Boot mode が表示されるか確認(uefi / legacy)。表示がない場合は次の手順でテスト起動して確認する。

[仮想マシン上での確認方法]
Windowsでスタート → msinfo32 を実行

  • BIOS Mode が UEFI であること、Secure Boot State が On になっていることを確認。

    [セキュアブート対応のインスタンスのポイント]

    種類説明
    Nitro System ベースのインスタンスM5、C5、R5、T3、T4g、C6、M6、R6、などの世代は UEFI をサポートしており、セキュアブートが有効化可能。
    Amazon Linux 2023AL2023.1 以降の AMI がセキュアブートに対応。
    Windows ServerWindows Server 2019 / 2022 の EC2 インスタンスで、ブートモードを UEFI セキュアブートに変換可能。
    Red Hat Enterprise Linux (RHEL)AWS Marketplace 提供の RHEL AMI(uefi-preferred 設定済み)でセキュアブートが利用可能。

    AWSでセキュアブートを利用するには、Nitro ベースのインスタンス(M5/C5/R5/T3/T4g/C6/M6/R6 系など)と、UEFI 対応 AMI(Amazon Linux 2023、Windows Server 2019/2022、RHEL Marketplace AMI)を組み合わせる必要がある。これにより、起動時に署名済みソフトウェアのみが許可され、より強固なセキュリティを確保できる。

    [引用元サイト①] [引用元サイト②] [引用元サイト③]

    TPM の必要性

    AWS AMI の文脈でいう TPM は、正確には NitroTPM を指す。これは AWS Nitro System 上で提供される 仮想 TPM 2.0 で、EC2 インスタンスにハードウェア TPM と同等のセキュリティ機能を提供する。

    AWS 公式ブログでも、NitroTPM は TPM 2.0 準拠の仮想 TPM モジュール と説明されている。

    ★TPM(Trusted Platform Module)とは
    TPM は、ハードウェアベースのセキュリティ機能を提供する暗号プロセッサで、以下のような役割がある。鍵やプラットフォーム測定値を安全に保管するハード/仮想モジュール。Windows の一部要件(Windows 11 等)や BitLocker の自動鍵保護で必要になることがある。
    ・OS の外部で暗号鍵を生成・保存
    ・デバイス認証(TPM の固有 RSA キーを利用)
    ・ブートプロセスの整合性チェック(測定値の保存)
    ⇒AWS NitroTPM はこれを 仮想化して EC2 上で利用可能にしたもの

    [参考サイト]

    [NitroTPM が AMI とどう関係するのか]
    AMI を作成するときに TPM サポートを有効にした AMI を作ることで、その AMI から起動した EC2 インスタンスで NitroTPM が利用可能になる。

    これにより以下のメリットがある。

    • Windows 11 の要件(TPM 2.0 必須)を満たせる
    • BitLocker など TPM 依存の暗号化が利用可能
    • セキュアブート(UEFI Secure Boot)と組み合わせて整合性を強化

    [Secure Boot と TPM(vTPM)の違い]

    混同されやすいが別の仕組み。AWS上では「UEFI(BootMode=uefi)+Secure Boot」を有効にできるケースと、さらにvTPM(AWS が提供する仮想 TPM)が必要/推奨される AMI がある、という状況。

    Secure Boot = UEFI ファームウェアがブートローダ/カーネルの署名を検証して未署名コードを止める機能。UEFI サポート(BootMode=uefi)の AMI とインスタンス環境があれば有効化の余地がある。

    TPM 対応のインスタンスは?

    [調査方法(コンソール/CLI 両方)]

    • コンソール(簡単)
      1. EC2 → AMIs → Public images で検索(例: “Windows_Server-2025” や “TPM-Windows_Server-2022″)。
      2. 該当 AMI を選択 → 下部 Details に Boot mode が表示されるか確認。
    • CLI(推奨:確実に情報が取れる)
      1) SSM パラメータから Windows AMI 一覧(ap-northeast-1)
      aws ssm get-parameters-by-path –path “/aws/service/ami-windows-latest” –region ap-northeast-1 –query “Parameters[?contains(Name,’Windows’)].{Name:Name,Value:Value}” –output table

    [CLI のツール準備]
    AWS 上で専用コンソール(Web CLI)を開いて、以下それぞれ実行。

    [①東京リージョンにあるSSMパラメータ上で取り扱っているWindowsサーバーを確認]

    aws ssm get-parameters-by-path --path "/aws/service/ami-windows-latest" --region ap-northeast-1 --query "Parameters[?contains(Name, 'Windows')].[Name,Value]" --output table

    [②AMI の BootMode を確認(複数 ID を並べて確認可)]

    aws ec2 describe-images --image-ids ami-067d81a5a99dc16d6 ami-0beeee0e40db77c63 ami-0eb0bf0c90c9f4e00 --region ap-northeast-1 --query 'Images[].[ImageId,Name,BootMode]' --output table
    • 解釈例
      • BootMode = uefi → UE­FI ベース。テスト起動時に Secure Boot が選べる可能性あり。
      • BootMode フィールドが無い or legacy → Secure Boot は期待できない(別 AMI を検討)。

    [③今起動しているテストインスタンスの describe-instances 出力]

    aws ec2 describe-instances --instance-ids i-0888eeb1b33db9fbc --region ap-northeast-1 --query "Reservations[].Instances[].[InstanceId,InstanceType,Hypervisor,ImageId,PlatformDetails,State.Name]" --output table

    [その他確認コマンド]

    ●指定した複数 AMI のうち BootMode が uefi のものだけ表示

    aws ec2 describe-images --image-ids --region ap-northeast-1 --query "Images[?BootMode=='uefi'].[ImageId,Name,BootMode]" --output table

    ●UEFI をサポートしているインスタンスタイプを確認

    aws ec2 describe-instance-types \
    --filters Name=supported-boot-mode,Values=uefi \
    --query "InstanceTypes[*].[InstanceType]" --output text | sort

    ●公開イメージ(例:Amazon 所有の Windows Server 2022 系)を名前で絞って uefi のみ確認する例

    aws ec2 describe-images --owners amazon --filters "Name=name,Values=Windows_Server-2022" --region ap-northeast-1 --query "Images[?BootMode=='uefi'].[ImageId,Name,BootMode]" --output table

    ●指定した AMI 群の中で BootMode が uefi かつ Name に “Windows_Server” を含むものだけ表示

    aws ec2 describe-images --image-ids ami-067d81a5a99dc16d6 ami-0beeee0e40db77c63 ami-0eb0bf0c90c9f4e00 --region ap-northeast-1 --query "Images[?BootMode=='uefi' && contains(Name, Windows_Server)].[ImageId,Name,BootMode]" --output tablex

    ゲーミングクラウドPC

    AWSのサービスを使って、既存のPCに高付加をかけずマルチタスクでハイスペックなゲーム環境を実現できるか調査してみた。
    調査するにあたり、先人方の記録を参照しながら実施した結果を以下に記載する。

    インスタンスの選択

    [そもそもゲーミング用インスタンスはどれか]

    3つのAIで質問を投下。以下の結果を受領。

    CopilotGeminiChatGPT
    g4dn.xlargeNVIDIA T4 GPU搭載、メモリ16GB、4 vCPU。FF14など中程度のゲームに十分。比較的安価で、推論や中規模グラフィックス処理に適している。NVIDIA T4 Tensor Core GPU
    現在、EC2インスタンスでクラウドゲーミングPCを構築する際に、最も一般的に選択され、実績が多いインスタンスタイプ。
    NVIDIA T4 (G4dn) または AMD Radeon Pro V520 (G4ad) — コスト抑えめで「クラウド上の比較的軽めなゲーム / ゲームストリーミング / グラフィック用途」に向く。
    g4ad
    シリーズ
    AMD GPU搭載。コストは抑えられるがドライバや互換性に注意。比較的安価で推論や中規模グラフィックス処理に適する。上記のとおり上記のとおり
    g5
    シリーズ
    NVIDIA A10G GPU搭載。より高負荷なAAAタイトルやVR用途に適する。G4 系より 最大 3 倍のグラフィックス性能、40% の料金効率改善。高負荷な ML トレーニングやリアルタイムレンダリングに最適。NVIDIA A10G Tensor Core GPU
    G4dnよりも新しい世代のGPUを搭載しておりより高性能を求める場合に適する。
    NVIDIA A10G GPU — より高負荷な 3D 描画やレイトレーシング、重めのゲームにも対応。G4dn 比でグラフィックス性能が大幅アップ。
    G6
    シリーズ
    新世代 GPU (NVIDIA L4) 搭載。グラフィックス & ML / レンダリング両対応。コストと性能のバランス重視。
    G6e
    シリーズ
    最新世代 GPU (NVIDIA L40S) 搭載。GPU メモリ大、レンダリング・高解像度ゲーム・重めのグラフィック用途に最強クラス。

    インスタンスの種類はゲーミングのプレイ時間よりけり。
    ・スポット:中断率は低いが、その可能性は十分にある。
    ・オンデマンド:使用した分コスト発生。スポットよりは高い。

    [補足1:Copilot 料金感 (オンデマンド/東京リージョン)]

    ・G4dn / G4ad:G4dn.xlarge 約 $0.526/時間
    ・G5:G5.xlarge 約 $1.006/時間
    ・G6 (最新世代):G6.xlarge 約 $1.5〜1.7/時間(推定、AWS公式オンデマンド料金表より)

    • 単価: G5 は G4 より 約 2 倍近い料金だが、性能は大幅に向上。
    • 用途:
      コスト重視 → G4 系(推論、軽量レンダリング)
      性能重視 → G5 系(大規模 ML トレーニング、リアルタイム 3D)
    • 割引: リザーブドインスタンスや Savings Plans を使うと 最大 70% 割引可能。
    種類GPU料金感
    G4・G4dn
    → NVIDIA T4 GPU (16GB メモリ)
    ・G4ad
    → AMD Radeon Pro V520 GPU (8GB メモリ)
    ・G4dn.xlarge (4 vCPU, 16GB RAM, 1 GPU)
    → 約 $0.526/時間
    ・G4dn.12xlarge (48 vCPU, 192GB RAM, 4 GPU)
    → 約 $2.176/時間
    ・G4dn.metal (96 vCPU, 384GB RAM, 8 GPU)
    → 約 $4.352/時間
    G5NVIDIA A10G Tensor Core GPU (24GB メモリ/1GPU)
    最大 8 GPU、192 vCPU、7.6TB NVMe SSD、100Gbps ネットワーク帯域幅。
    ・G5.xlarge (4 vCPU, 16GB RAM, 1 GPU)
    → 約 $1.006/時間
    ・G5.12xlarge (48 vCPU, 192GB RAM, 4 GPU)
    → 約 $4.032/時間
    ・G5.48xlarge (192 vCPU, 768GB RAM, 8 GPU)
    → 約 $8.128/時間
    [補足2:ChatGPT]

    ライト/低予算でクラウドゲーミングやストリーミング試したい → G4dn / G4ad
    普通の PC 相当でゲームしたい/重めの 3D ゲームや VR 含む → G5 または G6
    最高画質・高解像度 / レイトレーシング / 将来的な重負荷も想定 → G6e

    [補足3:Gemini]

    ●G4

    特徴詳細ゲーミングへの適合性
    GPUNVIDIA T4 Tensor Core GPU多くのPCゲームをフルHD解像度でプレイするのに十分な性能を提供します。
    強み高い費用対効果。オンデマンド料金がG5と比較して抑えられており、初めてのクラウドゲーミングに最適です。エントリーモデルとして最も人気がある。
    推奨g4dn.xlargeg4dn.2xlargeCPU/メモリのバランスも良く、多くのゲームで十分なリソース。

    ●G4ad (AMD Radeon Pro V520 GPU 搭載)
    特徴: AMDのGPUを搭載したインスタンスです。
    ゲーミングへの適合性: コスト効率に優れますが、NVIDIA GPUを前提としたゲームやソフトウェア(NVIDIAドライバーの設定や最適化など)が多いため、互換性や情報量の多さという点でG4dn/G5に劣ります。

    ●G5

    特徴詳細ゲーミングへの適合性
    GPUNVIDIA A10G Tensor Core GPUG4dnのT4 GPUと比較して、グラフィックス性能が大幅に向上しています。
    強み高性能。より高い解像度や高いフレームレートを求めるゲーマーに適しています。ハイエンドな環境を求める場合に推奨されます。
    推奨g5.xlargeg5.2xlarge高性能GPUを活かすためのCPU/メモリ構成を選択します。

    [検討結果]
    ⇒G4、オンデマンド(安定してきたらリザーブドに切り替え)
    ・G4クラスのスポットインスタンスは人気であるため、取り合いが発生し起動できない場合が多い(日中は特に)
    ・低頻度ではあるが、マルチ対戦などでゲーム中に落ちる可能性があるのはできるだけ避けたい。

    ★料金一覧

    Step1:上限緩和

    ①VPC構築(またはDefaultを使用)

    オハイオになっているため、東京に変更する。

    上記のGクラスのインスタンスはデフォルトのリソースキャパシティでは利用することができない。
    そこで、AWS サポートに上限緩和を依頼する必要がある。

    申請しない場合、以下エラーメッセージが表示される。

    「高性能GPUを搭載したg系EC2インスタンスを利用するが、デフォルトではg系インスタンスのvCPUの上限値(サービスクォータ)が0となっており、インスタンスを起動しようとしてもエラーが出て失敗する。」

    ②GPUインスタンスのクォーター上げ

    EC2を選択。「クォータの表示」を選択。

    クォータ値はいったん8にする。

    以下メール3件を受信。

    ・[Case *******] お客様によりコメントが追加されています。
    ・アマゾン ウェブ サービス: サポートケース (*******) をオープンしました。
    ・RE:[CASE ***********] Quota Increase: EC2 スポットインスタンス

    ⇒3時間後に完了連絡の受領

    AMIからインスタンスを作成

    セキュアブートが有効なインスタンス。以下の2つを選択。

    AMI 名特徴
    TPM-Windows_Server-2025-English-Full-Base-2025.12.10GUI ありの通常版 Windows Server 2025。RDP でデスクトップ操作可能。
    TPM-Windows_Server-2025-English-Core-Base-2025.12.10GUI なしの Server Core 版。軽量・高セキュリティ・低メンテナンス。➡CLI操作のみであるため、今回は該当しない

    両方とも TPM 対応(Trusted Platform Module) AMI であり、

    • BitLocker
    • Credential Guard
    • Key Protector

    などの Windows 2025 のセキュリティ機能を利用可能。Full / Core の違いとは無関係に TPM が有効化されている AMI 。「すべてのインスタンスを表示」をクリック後、画面上部の検索ボックスに「IAM」と入力し表示された候補から「IAM」を選択する。

    [EC2 インスタンスの作成]

    • サービス「EC2」を検索する。
    • 左のメニューから、「イメージ – AMI 」を選択する。
    • 検索フィールドの左部にあるプルダウンから「パブリックイメージ」を選択する。検索フィールドに「TPM-Windows_Server-2025-English-Full-Base-2025.12.10」を入力。検索結果に表示された同名のイメージを選択する。
    • ブートモードが uefi であることを確認し、「AMI からインスタンスを起動」を選択する。
    • 「インスタンスを起動」の画面に遷移。以下条件で起動。
      ・インスタンスタイプ:g4dn.2xlarge
      ・キーペアを作成:「ファイル名:お好み」「キーペアのタイプ:RSA」「キーファイル形式:.pem」
      ➡作成したらファイルのダウンロードが開始する。
      ・サブネット(ネットワーク設定):お好みのアヴェイラビリティゾーン
      ・パブリックIPの自動割り当て:有効化
      ・セキュリティグループ(★省略)
    [AWS 固有インスタントの違いは?]

    AWS の Windows Server 2025 AMI の仕様としては、Full / Core どちらも共通で以下を持つ。

    • Nitro インスタンスのみサポート
    • デフォルトで UEFI ブート(BIOS 版 AMI を除く)
    • デフォルト EBS は gp3
    • AWS.Tools PowerShell モジュール採用

    つまり AWS 側の差分はほぼなく、Windows Server のエディション差がそのまま AMI 名に反映されていると考えて問題ない。

    起動設定でNitro Enclave を有効にする。そのまま起動する。

    [IAMロールを紐づける]

    S3アクセス権(読み取り専用)の割り当てる。インストールするGPUドライバの取得するために必要な手順。
    ロールの作成ウィザードが開き、下記条件を選択していく。

    • 信頼されたエンティティタイプ:AWSのサービス
    • サービスまたはユースケース:EC2
    • ユースケース:EC2

    検索ボックスに「s3read」と入力し、絞り込まれた候補「AmazonS3ReadOnlyAccess」を選択する。

    起動しているインスタンスのサービス画面に遷移。一覧上部の「アクション」をクリックし、「セキュリティ」、「IAM ロールを変更」を選択。上記で作成した IAM ロールを選択する。

    リモートデスクトップ接続の実施

    ※リモートデスクトップソフトウェア(Amazon DCV)でも可能
    Amazon DCV:リモートサーバーでホストされる、グラフィックを多用する 3D アプリケーションに安全に接続するために使用できる、リモート可視化技術

    パソコンにリモートデスクトップ接続ツールがないことに気付いたため、急ぎこさえることに。

    ①ツールのダウンロード

    1Remote – mstsc remote desktop」というMicrosoft社のツールを入手。入手するために、MicrosoftアカウントでMicrosoft Store にサインインする必要がある。

    調べたところ、主流だったWindowsの「リモートデスクトップ接続」がサービス終了(?)のようで、そのための代替品になるらしい。新しいUI により、設定のしやすさや操作性、視認性がかなり向上している。

    ホットキーの紹介。

    ②リモートデスクトップ接続の設定

    画面右上の「+」ボタンから「インポート – *.rdp」を選択する。AWS上でゲームサーバー(EC2)のRDS接続のために作成した .rdp ファイルを選択する。

    選択すると、「インポートは無事に完了し、1個目の項目を追加しました。」とポップアップが表示される。

    画面上に表示されたゲームサーバーにチェックマークいれて、下部の「編集」を選択。パスワードの欄が空白であるため、同様にAWS上でゲームサーバー(EC2)RDS接続を設定した際に生成されたパスワードを貼り付ける。

    これで接続設定の完了。

    接続後、以下の対応を実施。

    タイムゾーンの変更(UTC;09:00) Osaka, Sapporo, Tokyo
    Time & language を選択Language & region を選択。Add a Language を選択。日本語を選択。
    ⇒すべてチェック。インストール開始。
    パスワードを変更

    Parsec をインストール

    ①Parsec のサイトにアクセス。

    ブラウザで Parsec を検索。ホームページ(英語)にアクセス。(画像はGoogle 翻訳をしたもの)
    「Windows 64 ビット版をダウンロード」を選択する。

    ②ダウンロードしたパッケージをインストール。

    「Virtual Display Driver」のまま Next を選択する。

    ③仮想環境のアクセス権限の範囲を選択する。

    要約(日本語)
    Parsec のインストール方法として「ユーザーごと」と「PC全体」の2種類があり、
    Per User(ユーザーごと):Windows にログインするまで Parsec は起動せず、各ユーザーが別々のアカウントを使える。
    ・Per Computer(PC 全体):全ユーザーで同じ Parsec アカウントを使用し、Windows ログイン前から利用可能。ただし、このPCを使う誰もが同じアカウントで接続できてしまうため、注意が必要。

    「Per User」のまま接続を実施する。

    ④ Parsec のサインインを実施。

    アカウントを持っていないため、「Sign Up」を選択する。

    MFA認証をすすめられる。(スキップ可能)
    まずスマートフォンなどにアプリストアから「Google Authentication」をインストールする。画面上のQRコードを読み取ると、MFA認証用の数字が表示されるようになる。以降、Parsecにサインインする度に前述で設定したMFA認証をする必要がある。

    設定を完了すると「Start using Parsec !」とサイトに表示される。

    仮想サーバーにソフトウェアを準備

    [NVIDIAを導入する]

    リンク先の選択肢として、以下4つがある。

    ・NVIDIA ドライバーが付属する AMI を使用する
    ・NVIDIA パブリックドライバーのインストール
    ・NVIDIA GRID ドライバー (G6、Gr6、G6e、G6f、Gr6f、G5、G4dn、および G3 インスタンス)のインストール
    ・NVIDIA ゲームドライバー (G6、G6e、G5、および G4dn インスタンス)のインストール

    ⇒ ゲーミング用サーバーを選択

    ダウンロードフォルダを展開した、アプリケーションファイルを実行する。

    ここまでで以下の環境を構築できました。

    • ゲーム用仮想サーバーの構築
    • 専用回線のルート確保
    • グラフィックドライバーのインストール
    • 日本語環境に変更

    以下、参考にしたサイト。

    [ゲーミング環境の構築方法] [ゲーミング環境の構築方法2]

    [Parsec 設定1] [Parsec 設定2]

    結論:ここまでのお気持ち

    ここまで構築して、「パソコンを買い替える際に本技術を利用すればよい」と行きついた。

    ・現行のパソコンリソースを捨ててまでの使用感(PC負荷・性能面)を得られるわけではなかった。
    ・上記理由に並び追加コストが発生するというのはナンセンス。(現行のパソコンを売ったとしても大した金額にならない模様)

    上記により、本件はいったんここでクローズ。
    ただ、将来的に買い替える機会を見越して、もう少し本記事の解像度を上げておこうとは思う。

    IT 用語まとめ

    1. IT・ネットワーク関連

    単語説明
    TCP/IPインターネットを含む多くのネットワークで標準的に利用される通信プロトコルのセット。
    SMB (Server Message Block)主にWindows環境のLANで、ファイルやプリンタ共有に使用される通信プロトコル。
    BGP (Border Gateway Protocol)インターネットのような異なるネットワーク間 (AS: 自律システム) で経路情報を交換するためのルーティングプロトコル。
    ICMP通信状態の確認(ping等)やエラー通知に使用されるプロトコル。
    MQTTIoTデバイス向けの軽量な通信プロトコル。
    キャリアアグリゲーション複数の異なる周波数帯を束ねて通信速度を向上させる技術。
    LPWA省電力・広範囲を特徴とするIoT向けの無線ネットワーク技術。
    DHCPネットワーク接続に必要なIPアドレス等を自動的に割り当てるプロトコル。
    イーサネット / Macsec有線LANの規格。Macsecはイーサネット通信を暗号化し機密性や完全性を定義する。
    リンクアグリゲーション複数の物理回線を1つの論理回線としてまとめ、帯域拡大や冗長化を図る技術。
    フルメッシュ全てのノードが他の全てのノードと直接接続されるネットワーク構成。
    Ingress / エグレス通信の方向を表す概念の一つで、ある機器やシステム、ネットワークにとって、外部からそこへ流れ込む通信のこと。エグレスは逆の通信。
    アップストリーム / ダウンストリームアップは基準リポジトリやサーバ側へ向かう流れ。ダウンはサーバからクライアントへの流れ。
    DNSカットオーバーDNSレコードを切り替えてサービスを新環境へ移行する作業。
    アドバタイズネットワーク上で自身の情報や経路を周囲に知らせる信号を送ること。
    VIF仮想インターフェース(Virtual Interface)。
    プロキシ / リバースプロキシプロキシはクライアントの代理。リバースプロキシはサーバの代理として通信を仲介する。ユーザーからのリクエストを受け取り、Webサーバーに転送して応答を返す。
    Proxy Protocolプロキシや負荷分散装置を経由しても、接続元のIPアドレス情報を伝えるための仕組み。
    接続指向のプロトコル通信の前に 相手との接続を確立してからデータを送る方式。
    (代表例:TCP)
    特徴:データの順序保証、再送制御、信頼性が高い
    ハブ&スポーク中心拠点(ハブ)から各拠点(スポーク)へ配送する物流方式。航空・物流・ネットワーク設計などで使われる。
    オーソライザー「認可を行う仕組み」。API やクラウドで、ユーザーがその操作をしてよいかどうかを判断するコンポーネント。
    バイパス本来の経路・処理を回避して、別ルートで目的を達成すること。ITでは、セキュリティ機能やネットワーク機器を迂回する意味で使われる。

    2. システム開発・ソフトウェア・データ

    単語説明
    RESTAPIの設計スタイル、HTTP:APIの通信プロトコル。
    Webアーキテクチャのスタイルの1つであり、Web上でリソースを表現し、アクセスするための設計原則の集合体。RESTは、HTTPプロトコルに基づいており、Webの性質に合わせたシンプルな設計が特徴。
    ETL抽出(Extract)・変換(Transform)・格納(Load)の略。データを統合するプロセス。
    CMSWebコンテンツ(テキスト、画像等)を統合的に管理・配信するシステム。
    JenkinsCI/CD(継続的インテグレーション/デリバリー)を実現する自動化サーバ。
    GitHub Webhook特定のイベント(プッシュ等)発生時にGitHubから外部へ通知を送る仕組み。
    リポジトリソースコードやデータの貯蔵庫。
    リファクタリング外部的な挙動を変えずに、内部のソースコードをきれいに整理・改善すること。
    リビジョン修正や改訂の版、またはその通し番号。
    マルチスレッド1つのプロセス内で複数の処理(スレッド)を並行して実行する仕組み。
    スクラム / スラム開発チームで協力して短期間の反復(スプリント)を繰り返すアジャイル開発手法。
    ハッカソンハック(hack)とマラソン(marathon)を組み合わせた造語。短期間に集中してアプリケーションやサービスを開発し、成果を競うイベント。
    カナリアリリース新機能を一部のユーザーに限定公開し、安全を確認しながら順次展開する手法。
    プロダクト環境 / ステージング環境プロダクトは本番環境。ステージングは本番に近い確認用環境。
    エミュレータ別の装置やOSの動作をソフトウェアで模倣するツール。
    メモリリーク / ガベージコレクションメモリリークは解放漏れ。ガベージコレクションは不要メモリを自動回収する処理。
    プレフィックス文字列やデータの先頭に付加される要素。
    ネストプログラム等の構造が「入れ子」になっている状態。
    ファンアウト / ファンインファンアウトは1つの処理から多数を起動すること。ファンインはその結果を集約すること。
    プロファイル(Profile)文脈によって意味が変わるが、一般的には、設定情報の集合(例:ブラウザのユーザープロファイル、AWS のプロファイル)
    人物・システムの特徴情報(例:ユーザープロファイル、性能プロファイル)
    ITでは「設定のまとまり」を指すことが多い。
    アサーションプログラム中に書く 「この条件は必ず真であるべき」という宣言。実行時に false になるとエラーを発生させ、バグを早期発見できる。
    空間データ位置情報を含むデータ。

    3. クラウド・インフラ・仮想化

    単語説明
    IaaS / PaaS / SaaSクラウドの提供形態。インフラ(I)、プラットフォーム(P)、ソフトウェア(S)をサービスとして提供。
    アプライアンス / 仮想アプライアンス特定の用途に特化した機器。仮想版はサーバー上で動作するソフトウェアパッケージ。
    ライブマイグレーション仮想マシンを稼働させたまま、別の物理サーバへ移動させる技術。
    スケールアウト / スケールアップ水平スケール(台数を増やす)と垂直スケール(個々の性能を上げる)。
    オフロード特定の処理を別の装置に任せて、メインの負荷を軽減すること。
    コロケーション通信事業者の施設内に自前の機器を設置して運用すること。
    エクイニクス世界的なデータセンター・相互接続サービスの大手プロバイダー名。
    AWS Lookout for Vision深層学習を用いて画像内の欠陥や異常を自動検出するAWSのサービス。
    APP studioアプリケーション開発環境を指す名称(例:SAPやAWSのサービス)。
    フリートひとまとまりとして管理される計算資源(インスタンス等)のグループ。
    ガベージコレクションサイクルプログラミング言語(Java、C# など)で、不要になったメモリ領域を自動的に回収する一連の処理のこと。メモリリークを防ぎ、プログラムの安定動作に役立つ。

    4. セキュリティ

    単語説明
    IPsecパケットの暗号化や改ざん検知を行い、セキュアな通信を実現するプロトコル。
    SSL / TLS証明書通信の暗号化と、通信相手の信頼性を証明するためのディジタル証明書。
    TPMマザーボード上のセキュリティチップ。鍵生成やハッシュ計算などを行う。
    ハードニングシステムの脆弱性を減らし、セキュリティを堅牢にすること。
    フォレンジック犯罪捜査などのために、コンピュータ内の証拠を収集・分析する技術。
    エクスプロイト脆弱性を利用して不正攻撃を行うためのプログラム。
    ランサムウェアデータを暗号化して身代金を要求する悪意のあるソフトウェア。
    リモートワイプ紛失した端末のデータを、遠隔操作で消去すること。
    ディープパケットインスペクションパケットのデータの中身まで詳細に解析して制御する技術。
    UAC (User Account Control)Windowsで許可なく変更が行われないよう、実行前に確認を求める機能。
    HPE(Hewlett Packard Enterprise)企業向けサーバー・ストレージ・ネットワーク機器を提供する IT 企業。
    OEM(Original Equipment Manufacturer)他社ブランド製品を製造する企業、またはその仕組み。

    5. ビジネス・マネジメント・手法

    単語説明
    WBSプロジェクトの作業を成果物単位で階層的に分解した構成図。
    ERP企業全体の経営資源(人・モノ・金・情報)を統合管理し、効率化を図る手法・システム。
    SFA営業活動をICTで支援・効率化する仕組み(営業支援システム)。
    CRM / コンシューマー顧客関係管理。コンシューマーは一般消費者。
    インベントリ / CMDBIT資産の目録。CMDBはそれらを管理するデータベース。
    バランススコアカード(BSC)「財務・顧客・業務・学習」の4視点から戦略を評価する手法。
    ベンチマーキング優れた企業の事例と比較し、自社とのギャップを分析する手法。
    RTO / RPO目標復旧時間(いつまでに)と、目標復旧時点(どの時点のデータまで)。
    営業利益 / 経常利益営業利益は本業の利益。経常利益は営業利益に本業以外の収益費用を加えたもの。
    ・営業利益:売上高-売上原価-販売費及び一般管理費
    ・経常利益:営業利益+営業外収益-営業外費用
    コミットメント責任を持って引き受けること、あるいは深い関与。
    アセット資産。IT資産や知的財産など。

    6. その他(技術・一般用語)

    単語説明
    IoT様々なモノがインターネットにつながり、情報の収集や制御を行う仕組み。
    ブロックチェーンノード(=コンピュータ)に、トランザクションデータ(=取引データ)をブロックという単位でまとめて記録し、同じブロック情報を分散して管理する技術。データをブロック単位で分散管理し、改ざんを困難にする技術。
    スマートシティICTを用いて都市のインフラを効率化し、生活の質を高める都市構想。
    スロットリング過負荷を防ぐため、意図的に性能を制限すること。
    フェールバック障害時に切り替えた予備系から、復旧した元の主系に処理を戻すこと。
    シームレス継ぎ目がなく、ユーザーが違いを意識せずに利用できる状態。
    ヒューリスティック経験則や直感に基づき、短時間で「正解に近い答え」を導き出す手法。
    サージ急激な増加(電圧の急上昇やアクセスの急増など)。
    レガシー旧式のシステムや技術、あるいは過去から引き継いだ負の遺産。
    スタイルシートWebページの見た目(レイアウト、装飾)を定義するもの。
    MPEG動画データの圧縮方式の規格。
    アクティビティトラッカ歩数や心拍数などの活動量を記録する機器。
    トラックバック他のブログ記事へリンクを張った際に、相手に通知を送る仕組み。
    チャージバックモデルITサービスやクラウド利用のコストを、利用した部門に按分して請求する会計モデル。各部門が使った分だけ支払うため、コスト意識が高まる。

    一般的な開発について

    開発の流れ

    [アプリケーションを作る時]
    「要件(して欲しい事)」があり、それを実現するための作り方や体制、仕組みなどを決める。この時、「要件定義」「アーキテクチャ選定」のような言葉が使われる。上記から作るものが決まり、機能の数や種類がわかった上で、それをどう作るかという具体的なところに向かう。
    これをいわば「設計」フェーズという。

    ●全体設計
    規模が大きい場合は色々な人が同時に作る事になる。設計の仕方、作り方を細かく取り決めたりして、全体設計には多大なコストがかかる。
    ※「なら早く作り始めたほうが良い」となるものの、品質を担保する為には全体設計をした方が良いため、一概に判断するのは難しい。

    ⇒設計 → 実装 → テスト → 納品、となる。

    [意識すべきこと]
    ・何かが起きた時に、その対処をどうするか、という事を事前に考えておく必要がある。
    ・問題が起こるのであれば逆に問題を早く起こして、早く対処すればいい、という考え方もある。
    ・問題を先延ばしにしない。失敗を評価する。

    一般的なシステム開発の進め方(プロセスモデル)

    ●Vモデル(①~⑩の流れ)
    ①要求分析←→⑩受入テスト
    ②要件定義←→⑨システムテスト
    ③基本設計←→⑧結合テスト
    ④詳細設計←→⑦単体テスト
    ⑤コーディング←→⑥コードレビュー

    ●Wモデル
    従来のVモデルをさらに進化させた手法。 一言でいうと、「開発(設計)とテストを、プロジェクトの初期段階から並行して進めるモデル」である。

    [開発プロセスのフレームワーク]

    ウォーターフォール工程を水のように表した方式で、上流から下流へと一方方向に進む。その仕組み上、下流の工程で発見した上流の漏れを戻って含める(上流へ戻る)ということはできまない。
    アジャイル要求から開発・テストまでの流れを何度も繰り返す。積極的に発注者とやりとりを行うので、成果物のブレは少ないが、全体を一気に開発する、などはウォーターフォールが適している場合もある。
    スクラムアジャイルの手法の 1 つで、アジャイルの流れを周期的に繰り返し、振り返りや評価を含めつつ進める。(プランニング、デイリースクラム、スプリントなど)

    ●テスト駆動開発(TestDrivenDevelopment:TDD)
    設計に基づいて製品を開発する(プロダクトの開発)ではなく、まずは設計に基づいて製品の仕様を満たす条件を確認するテストを先に作成するという手法。

    ・品質を高める為にリファクタリングによって振る舞いを変えずにプログラムの整形を行う。これを何度も繰り返す事で納品へと進む。

    DevOps

    名の通り「開発(Dev)」と「運用(Ops)」を組み合わせた言葉。今まで対立構造になりやすかった開発チームと運用チームのライフサイクルを一緒にし、協力関係にする事でよりビジネス価値を高めやすい開発と運用を行う為の技術や行動の総称を指す。

    [対立構造について]
    ・開発チーム:新機能の追加やパッチによる頻繁な更新を良しとする
    ・運用チーム:安定的な稼働を求め、安易に新機能の追加や更新を良しとしない

    ※非常に技術の範囲が広い上、求められる知見も広くなるため、厳密に DevOps はここからここまで、と言いにくいのが現状。

    [始め方]

    ・まず今まで開発、運用と分かれていたチームは統合する。
    ・開発時には運用考慮をした実装、環境の構築を行う。
    ・運用時は得られた知見や分析結果をリアルタイムで開発メンバー含めて共有できるようにする。

    [日々改善活動]

    • 運用面
      情報をリアルタイムで共有する為の Slack 活用や、Bot ツールによる運用サポート。
      問題発生時のアラート通知、SNS 通知、自動アクション、監視・分析ツールとその支援。
    • 開発面
      インフラ環境、ビルドやデプロイの各種自動化やダウンタイムをゼロにする仕組みの構築。
      運用を安定化する為のシステム設計、レプリケーション機能の構築、冗長化構成の実現、自動バックアップや復旧の自動化。

    「Continuous Integration/Continuous Delivery」の略称では「継続的インテグレーション」「継続的デリバリー」ともいう。

    ●CI(継続的インテグレーション)
    具体的にはアプリケーションやインフラ環境のコードに関わる部分のテストを自動化し、常にリリース可能な状態にする。

    ●CD(継続的デリバリー)
    リリース可能にするだけではなく、リリースまで行うケースもある。CI と CD はやる事や目的はほぼ同一で、何処までやるかだけが違う。

    [基本的な機能]

    ジョブ機能定形作業を自動化した小さな単位=ジョブとする。
    トリガー機能ジョブはただ実行されるだけではなく、トリガーを設定することで「前のジョブが完了次第実行」「指定の時間が来たら定期的に実行」など、起動条件を詳細に指定できる。
    パイプライン機能上記の機能を一連の流れ(パイプライン)とすることで、呼び出すときの記述が容易になり動きの可視化ができる。

    [手動 or 自動]
    ・CI/CD ツールを実行をするには「手動」か「自動」か選べる。
    ・継続的な価値提供、という目線で考えた時、イベントトリガーを用いて自動実行することが多い。
    ・CI/CD 共に手順が複雑になっている場合はビルドパイプラインを構築し、順番に処理させる事でビルドを自動化するとよい。

    ツール紹介

    Jenkinsカスタマイズ性が高く、さまざまなシチュエーションに応えられるその機能性が評価されていた。インターネットにつながっている環境だと CircleCI や GitHub Actionsのほうが扱いやすい、かつサーバーの管理も不要なため、少なくとも AWS をベースとしたシステムにおいては導入しないことが多い。
    CircleCISaaS 型の CI/CD ツール、というよりは CI/CD サービス。環境構築のコストも低く、手軽に導入できる。スケーリングが自動でされ、無料枠も用意されている。
    GitHub ActionsGitHub で提供している CI ツール。無料枠もある。ランナーという実行環境が提供されており、このランナーは自分で用意することもできる。ワークフローの実行回数が多いとランナー利用料が発生するため、実行数の多いプロジェクトの場合は自身で用意したほうが低コスト。

    AWS無料利用枠でWordPressは運用できるか

    結論

    • サービスとして運用できるものではない。
       ➡読み込みが長い+WordPress上の画像ファイル破損。
    • パケット通信のやりとりで問題が発生しており、先の問題は個人努力では解決が難しい。

    ※ただし、WordPress専用のインスタンスなどに変更すれば可能。

    作業環境

    パブリックサブネットに作成した下記インスタンスに対し、TeratermでSSH接続しておこなう。
    ※踏み台は挟んでいないシンプルな構成
    ※マルチAZ運用も視野に入れてVPCを作成したが、それ以前の問題だった・・・

    インスタンス

    Amazon Linux 2 Kernel 5.10 AMI 2.0.20230418.0 x86_64 HVM gp2

    セキュリティグループ

    インバウンド

    • SSH (Port22
    • HTTP (Port80)
    • HTTPS (Port443)
    • すべての ICMP – IPv4 (Ping疎通用)

    アウトバウンド

    • すべてのトラフィック

    ネットワークACL

    インバウンド/アウトバウンド

    • Allow ルール番号:100 SSH (Port22
    • Allow ルール番号:200 HTTP (Port80)
    • Allow ルール番号:300 HTTPS (Port443)
    • Allow ルール番号:400 すべての ICMP – IPv4 (Ping疎通用)
    • Deny すべてのトラフィック

    設定するソフトウェア

    • Apache:Apache/2.4.56
    • PHP:7.4.33:Ver 8.0.33 for Linux on x86_64
    • MySQL:Ver 8.0.33 for Linux on x86_64
    • WordPress

    問題にぶつかるまで

    (‘Д’)ソフトウェアのインストールは省略します。(他サイトで多く記載のある方法のため)
       ※MySQLは yum local installで問題なくできました♪
       ※MariaDBも削除はしています

          まずは必要なソフトウェアはインストール完了!

    WordPressまでインストールしてIPからサイトにアクセスするとページは表示される。
    一旦は問題なく表示されているが、再起動しても大丈夫だろうか・・・(停止→起動)


    (‘_’) 30秒後
    無事に表示されては、、、いなかった。右上の不審なアイコンがあるが、反応しない。
    ※テーマを変えた場合は表示されるハチドリの画像などはファイル破損のアイコンが表示された

    トラブル対応開始!

    以下、事象切り分けを含めて確認したこと。

    ①どの段階から発生しているのか区分けする

    【1】別で新規インスタンスを構築し、同様にソフトウェアをインストール。
     (複雑な設定をしていなければ、セキュリティ面は同じものをアタッチ)

    【2】 MySQLインストール完了まで、各ソフトウェアインストール完了のたびサイトにアクセス!(Apacheの画面が表示される)

    【3】 WordPressのインストール完了➡問題なし
      インスタンスの停止→起動   ➡事象発生

    ➡WordPress処理で問題があることを確認

    ②デフォルト環境でセキュリティ面を中心にためしてみる

    デフォルト環境はセキュリティ面がイン・アウトバウンド共にオープンなため通信プロトコルで弾かれてしまうことはないはず…
    デフォルト環境でインスタンスを新規で作成した後、同様の作業を実施…

    ➡結果変わらず・・・(:3」∠)イツモコウダヨ・・・

    ➡環境、セキュリティ、または別リソースによる事象でもない。

    ③MySQLが怪しい

    事象が発生してから検索を続けていた哀れ、カクヤ。
    ただ調べても「WordPressのプラグインで爆速!」…まずコンソールに入れない。。。
    そして何故かWordPressのオフィシャルサイトからも、垢がないと言われる始末。

    ただ、よく考えたらMySQL上の処理の問題である。
    ApacheもPHPも最新版だから、MySQL以外にありえないんだよっ!( ゚Д゚)迫真

    ◆リソース値を確認

     …というわけでまずはメモリの使用率を確認していく。
    〇grep Mem /proc/meminfo

    MemTotal: 975596 kB 搭載しているメモリの総量
    MemFree: 179400 kB 空きメモリ量
    MemAvailable: 322064 kB キャッシュなどを解放することで利用可能なメモリ量

    〇grep Swap /proc/meminfo
     
    SwapCached: 0 kB
    SwapTotal: 0 kB
    SwapFree: 0 kB

    〇CloudWatchでCPU使用率を確認 ➡ 使用率 1.7% とひっ迫はしておらず、余裕はある様子。
     ※2.0が上限値であれば負荷が高いということになるが…

    〇topコマンドでリソースの変動を確認してみるが、過負荷は確認できない。

    ◆クエリキャッシュ機能
    MySQLのコンフィグなどプライベートで触ることがなければ、業務上なんてもっての外!
    / etc / httpd / conf / にて、httpd ドットコンフファイルを参照するが……クエリキャッシュの記載がない( ゚Д゚)

    調べていくと初期設定では記載されていないため、素人丸出しで下記を貼り付け。

    #wait_timeout = 120
    long_query_time = 1
    query_cache_limit=8M
    query_cache_type=1
    query_cache_size=64M
    innodb_buffer_pool_size=16M
    #innodb_log_file_size=128M
    #tmp_table_size=64M
    #max_connections = 2500
    #max_user_connections = 2500
    #innodb_flush_method=O_DIRECT
    #key_buffer_size=64M

    これで良し。設定を反映させるためにMySQLを再起動すると…

    <省略>
    2023-04-24T05:14:13.904756Z 0 [ERROR] [MY-000067] [Server] unknown variable 'query_cache_limit=8M'.
    2023-04-24T05:14:13.904816Z 0 [ERROR] [MY-010119] [Server] Aborting
    2023-04-24T05:14:15.430367Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.33)  MySQL Community Server - GPL.

    要約すると、「query_cache_limit=8M」なんか知りませんよ、とのことです。
    泣く泣く「query_cache_limit=8M」をコメントアウトすると他の項目が次の標的になりました。
    MySQL8ではクエリキャッシュ機能のサポートが終了しているようで、これまた赤っ恥(*ノωノ)

    ◆MySQLの旧バージョンをインストールしてみる
    ならばタイムトラベルのように、クエリキャッシュ機能があった時に戻ればよい。
    MYSQLの公式(https://dev.mysql.com/downloads/repo/yum/)から旧版をインストール。

    すると、「ERROR 403: Forbidden.」または 「Error: Nothing to do」とレスポンスあり。
    状況として、旧版のMySQLがインストールできない。(個々に関しては別個調査が必要?)
    (スクリーンショットでも取っておくべきでした)
    wgetコマンドで実行しても結果には変化なく、調べた以上に術がMariaDBへの変更以外余儀なくされた。

    ◆MariaDBに切り替える
    「sudo yum install -y mariadb mariadb-client」で意外なことにMariaDBはインストール完了
    下記のようにインストール済みであることを確認できる。

    mysql --version
    
    mysql  Ver 15.1 Distrib 5.5.68-MariaDB, for Linux (x86_64) using readline 5.1

    「sudo service mysqld restart」でMySQLをいったん再起動すると・・・

    Redirecting to /bin/systemctl restart mysqld.service
    Failed to restart mysqld.service: Unit not found.

    上記エラーに対して、ネットで検索していると下記のサイトにあたった。
    <参考サイト:https://terakoya.sejuku.net/question/detail/16854 >

    同一の事象であり、記載通りの対応をしたところ下記エラーより私の方も解消しなかった。
    サイトでは「SQLite」に乗り換えては?と記載があったが、問題がどんどん引き延ばされている感じが否めない。

    Failed to restart mariadb.service: Unit not found.

    ➡CPUの問題でもなさそう。MySQL8の機能拡張はできず、代替となるDBの用意が望めない

    ④ApacheとMySQLのログを確認してみる

    • Apache:cd /var/log/ access_log , error_log
    • PHP:/var/log/php-fpm/error_log
    • MySQL:cd /var/log/mysqld.log

    ➡ログには本件のエラーを示すような出力はされていなかった。

    ⑤試しに「Index.html」を表示させる

    WordPressがダメな時、一般的な「Index.html」が表示できるかどうかを試してみる。
    これで遅延が発生すれば、WordPressが問題という考え自体が覆る。。。

    ➡数コンマ零ミリの速さで表示された。やはりWordPressでの処理がスポット。

    運用に見切りをつけた判断

    ここまで調査をしていると今までちらほらと目についてきた情報に信憑性が増してきた。
    察しの良い方、またはメモリ使用率の段階で気が付き鼻で笑われているかもしれない。

    単にサーバーのスペック面で運用に向いていないのではないだろうか。
    CPU使用率に目を付けた時に参考にしたサイトでは、MySQLのクエリキャッシュを使えるようにしたら何とか早くなったが、CPUの使用率が爆上がりしたというファンキーな旧情報。
    (参考:https://linuc.org/study/knowledge/529/)

    オンラインスクール講師に確認して、実現性の低さを提示され、
    「Lightsail,AMIMOTO AMI,Bitnami」の使用を提案されたこと。

    また、冷静に考えれば原動力としたUdemyなどの講座はあくまで仕組みや操作・原理を伝授するものであり、それを運用に繋げて解釈したのは少々浅かったかもしれない。。。

    さっそくWiresharkでの分析結果を見てみる

    実際にwiresharkを使用したのは今回が初めてでした。
    そのため、今回は付焼刃感満載の手際と解釈で確認を進めていきます。

    今回、EC2インスタンスのIPは「52.194.245.9」です。
    Wireshark上段のブランクスペースに、「ip.src == 52.194.245.9」と入力します。
    すると、解析結果が指定したIPがやり取りした通信のみ表示されます。
    結果、エラーがいくつか発生。

    鉛色(黒?)のラインが「Bad TCP」で赤のラインが「TCP RST」、RSTはリセットの略語です。
    今回着目すべき点は、「Bad TCP」、または前後の処理で何をしているか、になります。

    ざっとですが見た感じ、二回(2セット×2回)「Bad TCP」が発生しているようです。
    タイムフローに沿って並べて各処理について、理解を深めていきます。
    (★注意:前述のように付け焼刃なため、解釈に誤りが混じっている可能性があります)
    (★注意:参考程度に参照願います)

    ◆前提知識
    SEQ:シーケンス番号。データ送信元が受信先に送る番号。送信元が発行したオーダ番号と類義。
    ACK:アック番号。データ受信先が送信元に送る番号。受信先が発行した番号と類義。

    解析結果への理解

    <参考サイト:https://milestone-of-se.nesuke.com/knowhow/wireshark/wireshark-tcp-error/ >

    ◆1回目の「Bad TCP」

    行番号:28
     Time:0.284209
     通信:AWS[52.194.245.9]→自宅端末
     メッセージ:[TCP Previous segment not captured] 443 → 51235 [PSH, ACK] Seq=8645 Ack=1118 Win=61824 Len=1420 [TCP segment of a reassembled PDU]

     意味
    ポート443 → 51235にて、
    ●[TCP Previous segment not captured]
    パケットの Seq# (シーケンス番号) を見る限り、このパケットよりも一つ前に本来あるべきパケットが Wireshark からは見られない。

    ●TCP segment of a reassembled PDU
    ・TCPレベルでパケットをMSS(最大セグメントサイズ)で分割した
    ・PDU:データ通信において、あるプロトコル(通信規約)が扱うひとまとまりのデータの送受信単位のこと

    ➡途中でパケットの通信が途絶えてしまったことを意味する。
     (要約:シーケンス 8645ね~♪……何か忘れていないか?)

    行番号:29
     Time:0.284209
     通信:AWS[52.194.245.9]→自宅端末
     メッセージ:[TCP Out-Of-Order] 443 → 51235 [ACK] Seq=7225 Ack=1118 Win=61824 Len=1420 [TCP segment of a reassembled PDU]

     意味:[TCP Out-Of-Order]
    Seq# が進んでおらず、かつ一番高い Seq# のパケットを受信してから 3 ms 以内にそれよりも低い Seq# のパケットにマークされている。
    可能性として、NW 経路が(負荷分散などにより)異なるために本当に順番が入れ替わった。
    または、Dup ACK を3回受信する前、かつ 3ms 以内にその ACK で要求しているパケットを受信した (再送されたのか遅れて来たのかは不明)

    ➡ACK1118内の複数シーケンスにて、Seq 8645が先に来ている。Seq 7225が遅れてしまっている状態。
     (要約:ケビン(シーケンス 7225)がいないぞ!)←映画、ホームアローン参照

    行番号:34
     Time:0.284349
     通信:自宅端末→AWS[52.194.245.9]
     メッセージ:51235 → 443 [ACK] Seq=1118 Ack=7225 Win=262656 Len=0 SLE=8645 SRE=10065

     意味:ポート51235 → 443にて、遅延していたSeq 7225を送っている。

    (要約:ケビン(シーケンス 7225)!無事でよかったわ)←映画、ホームアローン参照

    ◆2回目の「Bad TCP」

    行番号:73
     Time:5.292659
     通信:自宅端末→AWS[52.194.245.9]
     メッセージ:[TCP ACKed unseen segment] 51235 → 443 [ACK] Seq=1118 Ack=58149 Win=262656 Len=0

     意味:[TCP ACKed unseen segment]
    ポート51235 → 443にて、
    直前までのパケットが見えていない(ロスしている)にも関わらず、「パケットを受信したよ!」という ACK だけ返っている状態。

    (要約:58149をキャッチ!あれ・・・?どこに置けばいいの?キョロキョロ…)

    行番号:74
     Time:5.292669
     通信:AWS[52.194.245.9]→自宅端末
     メッセージ:443 → 51235 [FIN, ACK] Seq=58148 Ack=1118 Win=61824 Len=0

     意味:Seq 58148が今届いた。

    (要約:シーケンス番号58148「遅れてごめんなさい!」  シーケンス番号58149「・・・」)

    行番号:75
     Time:5.292687
     通信:自宅端末→AWS[52.194.245.9]
     メッセージ:[TCP Dup ACK 73#1] 51235 → 443 [ACK] Seq=1118 Ack=58149 Win=262656 Len=0
     
    意味:[TCP Dup ACK 73#1]
    Ack# (応答確認番号)のパケット (#1回目) が観測されたことを意味する。
    これを何度も送る場合、 Seq# = 58149 のパケットが受信できていないため、再送要求をしている、と考えられる。

    (要約:「シーケンス番号58149はどこじゃあ、我!」
         シーケンス番号58149「呼び出されちゃった!なんか唐突に怖い!」)

    行番号:76
     Time:20.061821
     通信:AWS[52.194.245.9]→自宅端末
     メッセージ:Encrypted Alert

     意味:パケットキャプチャ時に Encrypted Alert と表示される場合がある。これは ”Content Type:21 = Alert” によるものらしい。
    TCP FIN の直前にある場合は大抵、TLS コネクションの終了を意味する『close_notify』だと思われる(暗号化されていて見えない)。

    (要約:シーケンス番号58149「ここにいます~!(あどけない走り)」 )
    (要約:迷子のシーケンスを確認しました!)

    おしまいに

    解析結果としてはエラーであるため、面倒極まりないですが日本固有の柔軟なサブカル性をあてて表現してみると、不思議と、何故か愛着が湧いてきました(笑)
    閑話休題、パケット通信で遅延が発生していることはわかりました。
    では、こちらを解消しようとすると通信各所にWiresharkなどの解析ツールを導入したりと、
    マクロな対応になったりと、個人の努力では難しいようでした。
    調べるならおそらく、行75~76と思われます。ここで15秒かかっているのでかなり臭います。
    そのため、一旦はこの課題をクローズします。

    知識不足もありましょうし、時間があれば根掘り葉掘り調べてみてもいいですが・・・
    その前に転職したい。

    ここまでお付き合いいただきありがとうございました。

    SQL学習記録

    基礎知識

    ・RDB(リレーショナル(連携・結合)データベース)
    ・RDBS:RDSを管理する
    ⇒結合条件:何を軸として、何を結合させるか

    複数組み合わせてDBとなる。番号を指定する。

    [用語]

    主キー内容が重複することはない。外←主
    外部キー他のDB(テーブル)と連携
    エイリアス列に対し、別途名前を付けられる(DEPT NO→部署番号)
    UnicodeUTF8 国際規定(3バイトで表現)
    Sjis日本用(2バイトで表現)。Sjisで作成した文章はUTF8で表示できない
    サプレス抑圧、抑制
    リレーションテーブルを結びつける

    SQL について

    ・SQL:問い合わせ言語
    アプリ上からの指示、Actionが多い。(例:Google 検索指示)
    (定期的)自動更新される。

    1:テーブルを作成
    2:コマンドで指定

    結果(テーブル)挿入される

    [SQL コンソール画面]

    ->入力が続いている状態
    ;最後、必ずつけて締める

    [JSON 構文]
    ⇒複数のテーブルを連結させるために、Fromで複数のテーブルを指定
    ⇒(,)でテーブルを区切る
    JOINでも可能だが、JOINとUsingで結合条件を指定する。

    [コマンド]

    \cエラーを出さずにコマンドの終了
    *テーブル全体を表示する。(列名に使用する)
    !=ノットイコール
    and , or , not
    ワイルドカード「_」、「%」
    use “テーブル名”テーブルをひらく
    -u ユーザ名 -p-p 入力後、パスワード
    ~ order by 列1 列2列1を優先に列1,列2共に並び変えられる
    %A%:検索Aから始まる
    between範囲指定

    Select 文

    ※LIKE演算子:検索系

    単一関数

    ※select文は2つの表を対象にできる

    select CEIL(-14.8)-14
    select floor(-14.8)-15
    select mod(8,3)2
    select power(4,3)4の3乗
    select ROUND ( m , n )戻り値
    select TRUNCATE切り捨て値
    select SQRT(16);4 平方根

    文字関数
    select LENGTH(‘文字列’);char の長さ(文字列)をバイト数に戻す(空白を含めて何バイトか)
    ※win = shift JIS:1文字に対するデータ量
    select INSTR(‘char1′,’char2’);char1に対してchar2を調べる。
    霊:INSTR(‘田中 一’,’中’)→2
    select SUBSTR(‘文字列’,n,m);n番目からm文字の長さを抜き出す。
    例:SUBSTR(‘char’,2,3);→har
    select UPPER小文字→大文字
    select LOWER大文字→小文字
    select CONCAT(‘char1′,’char2’);文を合体。
    例:CONCAT(‘TOM’,’CAT’);→TOMCAT
    select RPAD(‘char1′,n,’char2’);char1にn桁になるようにchar2を右に追加
    RPAD(‘12345′,’8′,’$’)→12345$$$
    select LPAD(‘char1′,n,’char2’);char1にn桁になるようにchar2を左に追加
    LPAD(‘12345′,’8′,’$’)→$$$12345
    select TRIM(both from ‘ KEN ‘)ブランクが消える。
    LEADING:左、TRAIRING:右、BOTH:両方
    select REPLACE(‘char1′,’n’,’char2′);char1内のnをchar2に変換する
    > ANY(select 列 from 表 where 条件);※ANY いづれかよりも大きい(最も小さなものより大きい)
    後者の答えを前者に返す

    LIKE演算子

    where:グループ関数と併用不可
    ※Having:グループしたものに条件付け

    select ~where 列 between A and BA以上B以下
    select ~where 列 not between A and B[A以上B以下]以外
    select ~ where 列 in (‘A’,’B’,’C’,’D’)A,B,C,Dを取り出す
    select ~ where 列 LIKE ‘J%’;列内のJから始まるもの
    select ~ where 列 LIKE ‘____s’;列から最後「s」で終わるもの
    select ~ where 列 LIKE ‘%K%’;Kを含むもの検索
    select ~ where 列 not LIKE ‘%K%’;
    select ~ where 列 LIKE ‘%K%’;

    日付関数
    select date_format (列,’%d日%m月%y年’)from テーブル;年月日の表示(~日、~月、~年)
    select now現在の日時
    select CURDATE日程のみ
    select DATE_ADD(CURDATE(),Interval 2 MONTH)DATE_ADD:2カ月後を表示
    DATE_SUB:2か月前を表示
    Interval ‘3 2’ YEAR_MONTH3年2か月
    select 列, IFNULL (列,0) from テーブル;指定した列内のNULLを0にする
    select NULL IF (列,0) from テーブル;指定した列内の0はNULLになる

    グループ関数

    平均や合計などの集計時に使用。

    select AVG(列) from テーブル;平均
    select COUNT(列) from テーブル;列内の行数を数える。
    select COUNT (distinct 列)~重複するものを除く
    select MAX (列)~列内で一番高い(低い)値。MAX or MIN
    select sum (列)~合計
    select 列,列, MAX(列) from emp group by 列,列group by:列内の~ごとに
    1つのグループとして反映させられる。
    集合演算子

    UNION ALL:重複を含む
    UNION:重複を除く

    例:select deptno from dept union all select deptno from emp;

    表の結合:等価結合

    ・自然結合:重複する列を除く
    ・列内の細分化(?):group by

    select 列名 from 表1,表2
    where 表1.列名 = 表2.列名
    ※表1,2=別名
    select 列名 from 表1 JOIN 表2 USING(列);列:共通
    select 列 from 表 1 Natural JOIN 表2;自然結合
    select 列 from 表 1 cross JOIN 表2;直積結合
    select 列 from 表 1 JOIN 表2 ON 結合条件ON句
    select 列 from 表 1 Left outer JOIN 表2 on 結合条件;外部結合。(※Left or Right)
    (,)Where とJOIN ON について

    select e.ename , d, dname ,d.deptno …(★1)

    ★1:以下、同じ結果
    ・from dept D join emp E where e.deptno = d.deptno;
    ・from dept D ,empE

    select e.ename , e.sal, d.dname , g.grade …(★2)

    ★2
    ・from emp E, dept D ,salagradeG where 条件1 and 条件2
    ・from emp E, join dept D on 条件1 join salagradeG on 条件2

    ⇒「テーブル名」指定、「結合条件1」「結合条件2」
    ⇒「テーブル名」「結合条件1」、「テーブル名」「結合条件2」
    ※読み、追加しやすい


    (,)区切り⇒古い書き方
    JOIN:標準⇒結合条件:ON句
    OK句の後にwhere可能

    テーブル上操作

    [テーブル作成例]

    Create table SALESMAN (empno integer(4),name char(10)~);
    ※integer:数字数
    Desc テーブル名:テーブルの状況確認

    [データの変更(行の削除)]

    DELETE from 表名 where 削除対象の行の抽出する条件
    sal = 600 ;など

    ・まとめて項目削除
    →~where 項目名 in (項目1,項目2,項目3);

    ※表の削除
    DROP TABLE:やり直し可
    TRUNCATE TABLE:やり直し不可

    [副問い合わせ]

    後文の応えを前文に出力
    ・select DNAME from dept where Deptno = (select Deptno from emp where ENAME = “ADAMS”)
    ・select ename , sal from emp where sal > (select AVG(sal) from emp);
    ※where が sal を指定

    select ename , job from emp where job = (select job from emp where ename = ‘ALLEN’);
    ⇒JOBを絞ってenameを導く

    DEPT表からEMP表のADAMSが所属するDNAMEを表示
    ⇒ADAMのDNAMEが知りたい
    select dname from dept
    where deptno =
    (select deptno from emp where ename = ‘ADAMS’); ※条件

    ※deptno:何と関連付けるか

    [データ操作(指定して変更)言語]

    ・INSERT:行の追加
    ・VALUES:値の指定

    例:
    INSERT INTO 表名(列名1,列名2…)values(値1,値2,…);
    ⇒どの列に何を追加するか
    →Insert into 表名 values (追加内容);
    ⇒行の追加。指定されていない列はNULLが入る

    [UPDATE文 + where 句]

    例:UPDATE EMP SET JOB = ‘SAKESMAN’ where ENAM = ‘GRANT’;
    ⇒’ENAME’がGRANTはJOBをSALESMANに変える

    UPDATE 表名 SET 列名1=値1 , 列名2=値2
    where 対象とする行の条件

    例:update EMP set sal = sal *1,5 where ENAME = ‘KENNEDAY’;

    [トランザクション関係]

    ・自動コミット:トランザクション処理を自動的に行う

    START TRANSACTION:トランザクション開始(実行しないと反映されない)

    Set Autocommit=0:自動コミット無効
    Set Autocommit=1:自動コミット有効

    ※トランザクション確定:COMMIT
    ※トランザクション取り消し:ROLL BACK
    ⇒COMMIT後にROLLBACKはできない

    「セーブポイント」を作成してt戻れるように
    savepoint 命名⇒Roll back 命名

    CCNA まとめ

    以下にCCNAレベルの学習内容を記載する。

    レイヤーモデル

    ※太字=TCP/IP 4階層モデル(現在の主流)
    ※論理アドレス=IPアドレス , 物理アドレス=MACアドレス

    OSI参照モデル説明
    [レイヤー:7]
    アプリケーション
    (Web)アプリケーション間のやり取り(Chrome,Outlook)
    [レイヤー:6]
    プレゼンテーション
    データの形式(文字の送り方)を取り決め、正常に表示させる(.txt , .jpeg…)
    [レイヤー:5]
    セッション
    アプリケーション間の通信路(セッション)の確立から終了まで。
    ※UTM
    [レイヤー:4]
    トランスポート
    プログラム間の通信、通信の制御。送り出したデータを宛先のコンピュータのアプリケーションに届けること。
    コネクション(セッションでデータ転送を行うための論理的な回線のこと)
    セッション(通信の開始から終了まで管理する1つの単位)
    ※ファイアウォール
    [レイヤー:3]
    ネットワーク
    インターネットワークでの通信。異なるネットワーク間でデータの転送を行うとき。
    ○ルータ
    ネットワーク同士の中継を行う機能。ネットワークAに流れるデータを、異なるネットワークBを介して転送することが可能。正しいネットワークへデータを流すためにIPアドレスで判断する。これをルーティング機能と言う。
    ○レイヤ3スイッチ
    レイヤ2スイッチとルータを組み合わせた機能。ネットワークが大きい場合はレイヤL3スイッチを、なるべくコストを抑えたいときはレイヤL2スイッチが利用されている。
    [レイヤー:2]
    データリンク
    同一ネットワーク上での通信、ハードウェア仕様など
    1つのNWでデータを正しく宛先のノードに転送するため
    ②同じネットワーク内のコンピュータを識別し、特定のコンピュータへデータを送信
    ○レイヤ2スイッチ(LANスイッチ)
    リピータハブのように複数の機器同士をポートでつなぐだけでなく、制御機能がある。ほかの機器には送らず、特定の機器にだけ情報を転送することが可能。Macアドレス・IPアドレス・ポート番号で構成された特定の情報を「フレーム」と言う。
    ○ブリッジ
    データの中継を担います。Macアドレスで適切な情報を判断するフィルタリング機能があり、不必要に転送された情報は届きません。
    [レイヤー:1] 物理ケーブルなど
    ①データを電気信号に変換する
    ○リピータハブ
    複数のポートが搭載されており、コンピュータをつなげる。1つのポートで受け取った情報はハブを介してほかの機器へ転送する。1つのポートに限らず、どこの機器からでも情報を受け取ることが可能。

    インフラ部分

    基礎知識

    [遠隔操作]
    ・Telnet:パスワード情報を含むすべてのデータを暗号化せずに送信する
    ・SSH(Secure Shell):パスワード情報を含むすべてのデータを暗号化してから送信する

    ●AS(Autonomous System:自律システム)
    同じルーティング・ポリシーの下で動作するルータの集合体のことであり、各ASでは独自の規則やポリシーを持っている。
    ※インターネットを1つの巨大なIPネットワークととらえた場合、現在のインターネットは複数のAS(Autonomous System:自律システム)の集合体といえる。

    通信部分(接続)

    ●イーサネット(規格:IEEE 802.3)
    有線LANの通信規格の一つ。TCP/IPモデルのリンク層に対応した規格。イーサネットとLANケーブルはほぼ同義と考えても問題ない。

    [表記方法]

    ※通信の際にMACアドレスが必要
    ※BASE=BASE band

    ・もしもイーサネットがなければ、ケーブルの形と機器の差し込み口が統一されず、ケーブルを差せない。
    ・イーサネットが登場したことで、メーカーのことなる機器同士でも接続できるようになった。

    [イーサネットのフォーマット]

    宛先MACアドレス(6byte)/送信元MACアドレス(6byte)/タイプ(2byte)/データ/FCS(4byte)

    ●CSMA/CD
    イーサネットの通信を制御する方法。早いもの勝ち形式

    CS(Carrier Sense)ケーブル上の信号が空であることを確認する(繰り返し確認する)
    MA(Multiple Access)ケーブルの空きを確認でき次第、データを転送する
    コリジョン上述、ケーブル内のデータ送信が衝突すること
    バックオフコリジョン発生時、ランダムな待ち時間の後、データを送信する

    ●ツイストペアケーブル(LANケーブル)
    STP(Sheielded Twisted Pair):シールド加工を施したケーブル。ノイズが多く発生する工場や研究所などで使用される。
    ※UTP(Unshielded Twisted Pair):シールド加工なし

    • コネクタ:ケーブルの末端に取り付けられているもの
    • カテゴリ:通信速度や周波数の品質を示す。カテゴリの数字が高いほど高品質(CAT5~CAT8)

    ●光ファイバーケーブル

    シングルコアモードファイバ(SMF)
    【長距離に最適】
    一つのモードしか通らない光ケーブル。光信号に歪みや分散がなく、高品質で安定した通信が可能。
    マルチモードファイバ(MMF)
    【近距離に最適】
    信号の伝搬に歪みが生じやすく、伝送損失が大きい。安価である。

    アクセスポイント

    無線クライアント同士を接続したり、有線LANと接続したりするための機器。

    [アクセスポイントの識別]

    ●SSID(Servicce Set ID)
    無線LANの識別子があらかじめ設定され、ビーコンを定期的に発信してSSIDを通知する。(※ビーコン:信号)
    検出したSSIDのリストから接続したいアクセスポイントを選んでアソシエーションを確立する。

    • アソシエーション:接続を行うためのプロセスを指す。
    WLC(無線LANコントローラ)

    アクセスポイントの設定、管理を実施。
    ●自立型アクセスポイント:一台のAPごとに設定、管理することが必要。管理の不可が大きい。
    ●集中管理型:複数のアクセスポイントを一括で管理、設定を行う。

    ローミングクライアントが移動した先の電波状況に応じて自動的にアクセスポイントを切り替える機能(同じESSID内のみ可能)
    チャネル他の電波の干渉を防ぐ仕組み
    セルアクセスポイントから送られる電波が届く範囲のこと
    オーバーラップ異なるチャネルのセル同士を10~15%の範囲で重ねる(重複)させること
    変調データ(デジタル信号)や音声を別の電気信号に加工しなおす処理
    オープン認証認証処理を行っていない誰でもアソシエーションが可能になる。セキュリティの手続きはアソシエーション後に実施する。

    [モード(LANの利用形態)]

    • インフラストラクチャモード
      無線クライアントがアクセスポイントを経由することによって通信を行う方式。
    • アドホックモード
      無線クライアント同士が直接通信する方式。アクセスポイントは不要であり、電波の届く範囲に存在すれば手軽に利用できる。例として無線クライアントからプリンタなどに直接データを送るなど。

    [接続形態]

    • BSS(Basic Service Set)
      一台のアクセスポイントの配下に構成されている無線クライアントとのセットを示す。
      ※BSSID:BSSの識別子
    • ESS(Extented Service Set)
      複数のBSSで構成されているネットワーク自体を指す。
      ※ESSID:ESSの識別子

    [通信制御]

    • CSMA/CA
      CS(Carrier Sence):データの送信を開始する前に他の無線クライアントが通信を行っていないか電波状態を確認する。
      (使用中:待機 / 未使用:開始)
    • 多重アクセス(Multiple Acess)
      複数の無線クライアントで同じ電波を共有しているとき、他の無線クライアントが通信していなければデータを送信できる。
    • 衝突回避(Collision Avoidance)
      他の無線クライアントの通信終了を検出した時、通信開始前にたランダムな時間だけ待機。

    ルーター

    ルーター

    複数のネットワークを相互に接続する機器。

    ●コンバージェンス
    ネットワーク上のすべてのルータが、ルーティングテーブルを最新の状態に更新し終えた安定状態。

    ●メトリック
    宛先ネットワークまでの距離を計算し、その距離が最も小さいルートを最適であると判断する基準。

    ルーティング

    送信元のコンピュータから宛先のコンピュータまで、パケットをどのような経路で送信するかを制御すること論理アドレスを見て、データを次にどこに転送するか

    ●ルーティングプロトコル
    ネットワーク上の経路選択を行うルータ間の通信に用いられるプロトコル(通信規約)の一つで、経路情報を交換する。
    以下の役割を持つ。
    ・リモートネットワークの検出
    ・宛先ネットワークへの最適ルートの選択
    ・ルート情報を最新の状態で維持する
    ・トポロジの変更に応じてルーティングテーブルを更新する

    IGP
    (Interior Gateway Protocol)
    使用されるプロトコルには、「RIP」「OSPF」「IS-IS」「IGRP/EIGRP(Cisco Systems社独自のプロトコル)」などが存在する。RIPやIGRPは比較的小規模なネットワークに適している。また、中規模以上のネットワークには、OSPF、IS-IS、EIGRPなどがより適している。
    EGP
    (Exterior Gateway Protocol)
    旧版のプロトコル。
    BGP
    (Border Gateway Protocol)
    AS間の経路交換のために作られたプロトコル。BGPの経路情報には、あて先に到達するまでに経由したAS番号のリスト(ASパス)が含まれており、通常、ASパスの短いものを最短ルートとして使用するが、パス属性の操作により柔軟な経路制御を行うことができる。
    • ディスタンスベクター(プロトコル:RIP , IGRP)
      宛先までの距離(distance)と方向(vector)を認識する。
      ・RIP(Routing Information Protocol)
      メトリックとして、「ホップ数」を使用して、最適なルートを選択する。動作がシンプルでCPUやメモリの消費が少ない。耐コンバージェンスは低い。(※ホップ数:ネットワークへ到達するまでに経由するルータの数)
    • リンクステート
      各ルータで自分自身が持っているインターフェース情報(LSA)を交換し、大きなネットワークの地図を作成する。その中から最適なルートを選択する。
      ・OSPF(Open Shortest Path First)
      「コスト」というメトリックを使用してルータから宛先ネットワークに到達するまでのリンク(回線)の帯域幅を基にして自動的に算出する。コンバージェンスは速い。
    • IGRP/EIGRP(Cisco Systems社独自のプロトコル)
      CISCO製品のみを対象とする。メトリックは「帯域幅」と「遅延」。基本的に距離と方向を認識し、最適ルートを選択するが、コンバージェンスと処理効率は大幅に改善される。特徴として、「DUAL」というアルゴリズムから大規模ネットワークでも非常に高速なコンバージェンスを実現する。

    ルーティングテーブル

    ネットワークのルート情報が記載されている。

    登録情報出力インターフェース、宛先ネットワークアドレス、ネクストホップアドレス
    ネクストホップ宛先のネットワークへ経由する隣接ルータ
    デフォルトルート
    (※ラストリゾートゲートウェイ)
    ルーティングテーブルに該当する宛先ネットワークが存在しないときに使用される特別なルート。パケットが破棄されるのを防ぐことができる。ネットワークは「0.0.0.0/0」

    [ルーティングの種類](IPネットワークにおいて経路情報を管理する手法)
    ●直接接続ルート:ルータにIPアドレスを設定すると自動的に登録される

    種類説明メリット / デメリット
    スタティックルーティング管理者が手動でルート情報を設定する。
    経路情報を各ルータ内に手動で設定する手法で、この経路情報は基本的にルーティング・テーブルより消えることがない。
    [メリット]
    ・管理者が意図したルーティングをすばやく登録
    ・意図しないルーティングが登録されない
    ・ルータやネットワークに負荷がかからない
    [デメリット]
    ・管理者に高負荷。拡張性が低い
    ・トポロジに変更があっても自動的に更新されない
    ダイナミックルーティングルーティングプロトコルを利用して情報を交換し、自動でルート情報を登録する。
    ルーティングプロトコルによって、自動的に登録・更新されるルート情報を使用したパケット転送。
    [メリット]
    ・ルート情報を自動的に登録
    ・トポロジに変更があると、自動的にルーティングテーブルが変更される
    ・拡張性が高い+C7
    [デメリット]
    ・ルーティングプロトコルの知識が必要
    ・ルータやネットワークに高負荷
    ・意図しないルートが登録される可能性がある
    ・スタティックルートに比べるとセキュリティが心配
    Cisco機器

    [Cisco機器への操作]
    ●コンソール接続
    コンソールポートとPCを専用ケーブルに直接ケーブル接続する。
    ・コンソールケーブル(別名:ロールオーバーケーブル)を使用する
    ・ターミナルソフト:フリーソフトのTera TermやPuTTY
    ●VTY接続
    機器に仮想的に用意したVTYポートに、離れた場所からネットワークを介してTelnetまたはSSHで接続する。

    • Cisco IOSのモード
      ・ユーザEXECモード:ルータにログインして最初に表示されるもの
      ※[enable]で特権EXECモードへ移行。[disable]でユーザEXECモードに戻る。
      ・特権EXECモード:操作に制限がなくなる。プロンプトは「#」。

    [さまざまなコンフィギュレーションモード]
    ●グローバルコンフィギュレーションモード:機器全体にかかわる設定を行うモード
    (※特権EXECモードで「configure terminal」で切り替え)
    ・インターフェイスコンフィギュレーションモード:インターフェイスの設定を変更する
    ・ルータコンフィギュレーションモード:ルーティングプロトコルを対象に変更する

    [パスワード設定]

    コンソールパスワードコンソールポート(ライン)に対するパスワード
    VTYパスワードVTYに対するパスワード。論理ポートであり、複数のポートを作成して使用することができる。ポートの数だけ同時にTelnet接続を受け入れられる。
    イネーブルパスワードユーザEXECモードから特権EXECモードへ移行する際に使用するパスワード。

    スイッチングハブ

    [ルーターとハブの違い]

    ハブ(回線増やす)複数のケーブルを接続して集約するための機器。使用する目的は、あくまでも接続できる機器を増やすことにあります。
    ルーター(交通整備)異なるネットワーク同士を接続することを目的とした機器で、複数の端末をインターネットに接続する際に使用するもの。ハブだけ用意しても、ルーターがなければインターネット通信を行うことはできません。ただし、ルーターのなかには複数のLANポートを搭載している機器も多くあります。そのようなルーターは、ハブとして兼用することも可能。
    リピータハブ(単にハブと呼ぶこともある)データを受信すると、同一のリピータハブに接続されたすべての端末にデータを送信する。送信先に指定された端末以外はデータを無視することで、送信先にのみデータが届く仕組み。ただし、特定の端末同士の通信中は、他の端末による通信ができない。
    [ネットワークハブ以外のハブ]

    ●USBハブ
    デバイスに備わるUSBポートを増設して複数のUSB機器の接続を可能にする機器は、USBハブと呼ばれる。USBポートの数が少ないパソコンでも、たくさんの周辺機器を接続できる。電源の供給方法によって、パソコンから直接電源供給を受ける「バスパワータイプ」と、ACアダプタから電源供給を受ける「セルフパワータイプ」の2つに分けられる。

    • バスパワータイプ
      消費電力が大きな機器の接続には向きませんが、コンパクトな製品が多く、持ち運びがしやすい。
    • セルフパワータイプ
      使用場所が限られるものの、消費電力が大きい機器も接続して使える。

    ●ドッキングステーション
    USBだけでなく、映像出力端子やSDカードスロットなど、さまざまな接続端子を備えている。製品によってはLANポートを搭載している場合もあり、USBハブよりも幅広い機器の接続を集約することが可能。

    スイッチ

    (レイヤ2スイッチ,スイッチングハブ)データの転送処理を行う集線装置。

    [スイッチとハブの違い]
    ハブは信号を受信したポート以外の全ポートに送り出しますが、スイッチはデータリンク層から宛先のMACアドレスを取得して自分の持つMACアドレステーブルに反映する。

    バッファリング機能ストア(滞留)アンドフォワード(転送処理)機能を可能にすること。
    ●ストアアンドフォワード
    スイッチングハブの機能のひとつで、エラーやトラフィックによって受け取ったデータを正常に送信先の端末に送信できなかった場合、一時的にスイッチングハブにデータを蓄えておき、後にあらためて送信する機能。受信フレームの全体を一度バッファに蓄積させ、フレームの末尾にあるFCSでエラーチェックをする。 異常がなければ、転送(フォワード)処理をする。
    ※バッファ:データを転送するときに一時的にデータを格納する場所
    全二重通信データの送受信を同時に行うこと。(※半二重送信:送受信を切り替えて行う)
    MACアドレステーブルスイッチのポート配下に接続されているホストのMACアドレスが記録される。該当しなかったホストではNICで情報削除する。
    ※フラッディング:ACアドレステーブルに情報がない場合、全体に送信する
    [スイッチの種類]
    ネットワークスイッチコントローラとして機能し、ネットワークデバイスが互いに効率的に通信できるようにする。
    イーサネットスイッチイーサネットによるネットワークを構築する際に使用するスイッチ型のハブ(集線装置)のこと。「スイッチングハブ」とも呼ばれる。複数の端末が同時にデータを伝送した場合、パケット内の送付先MACアドレスを読み取り、データの伝送先を切り替えることによって、データの衝突を防ぐ。送信先の端末にのみデータを振り分けるため、ネットワークの伝送処理能力を高めることができ、またセキュリティも向上する。

    通信技術

    基礎知識

    LAN(Local Area)限られた地域内で使用するネットワーク。
    WAN(Wide Area)(※回線は通信事業者:NTT,KDDI)遠方のLANとLANをつなぐもの(社内ネットワーク)。
    リンク(回線)ノード同士をつなぐもの
    ユニキャストコンピュータネットワークにおいて、単一の送信相手を指定して、データを送信すること。
    マルチキャスト一つのネットワーク内に存在する複数端末に同じデータを送信する。
    ユニキャストアドレス送り先が1つのIPアドレスやMACアドレス。
    ISPプロバイダ
    AS(Autonomous System)膨大なネットワークを分けて管理する。(ISP>AS)

    ●無線LAN
    [無線LANの周波数]
    ・2.4GHz:障壁物の影響を受けにくい。他の電波からの干渉を受けやすい
    ・  5GHz:通信が安定しており、高速な通信規格。障壁物の影響を受けやすい。

    [無線クライアント(無線LANアダプタを装着したコンピュータ)]
    ※複数の無線クライアントが同時に通信しているわけではない。
     一時的にデータを送信できるのは一台だけで、他の無線クライアントはデータを保留して待機する⇒半二重

    パケット(=データ)

    ネットワークを介した通信では,送るべきデータを細かく区切ったうえで,その固まりを一つひとつ送る。ただし,単純に区切って送ればいいというわけではない。データを区切ったうえで,通信のやりとりに必要となるさまざまな制御情報を加えて一つの固まりにしなければならない。データの固まりは,正式には「PDU」(プロトコル・データ・ユニット)と呼ばれる。つまり、フレームもパケットもPDUの呼び名。

    ●シーケンス番号
    送られてくるデータのデータ配列を示す番号。(※データ列をセグメントに分割して送信するため)
    ⇒シーケンス番号を確認することで、パケットの順番や欠落の有無を確認できる。

    ・bps(bit per second):1秒間に何ビットのデータが転送されるか。

    カプセル化技術
    カプセル化コンピュータ間でデータを転送する際に使用される処理。データの前にヘッダとして取り付けて下位の層に渡す。
    ※トレーラ:データの後ろにエラーチェック用の値として取り付ける
    非カプセル化カプセル化の逆からの処理。付けられていたヘッダを外していきながら送信処理をする。
    フォワーディング機器やソフトウェアなどが別の機器から受信したデータを指定された別の機器などへ、手を加えずにそのまま送信する動作。
    フラッディングハブ(スイッチ)に接続しているポート全てにパケットが送ること。
    ブロードキャスト

    通信・ネットワークの分野ではネットワークに参加するすべての機器に同時に信号やデータを送信すること。同じネットワーク内にいる全員に同じデータを送る。

    ●ブロードキャストドメイン
    ブロードキャストが届く範囲。広すぎると通信効率が非常に悪くなる。

    トポロジ

    機器とネットワークのつなぎ方。そのネットワーク内でネットワーク機器や端末がどのような位置関係で接続されているかを表わすレイアウト。トポロジには、バス型やスター型、リング型などがある。

    バス型トポロジ一本のバス(ケーブル)上に各ノードを繋げる
    スター型トポロジ(※ハブアンドスポーク)集中装置を中心に各ノードを接続する
    メッシュ型トポロジ複数ノード同士を繋げ合わせる ※拠点同士を繋げるWANで使用されることがある
    ・フルメッシュ:リンクが切れても、他のノードを通じて接続できる。
    ・バーシャルメッシュ:使用頻度の高いもの間のみつなぐ(※コスト削減)

    ハードウェアVPN接続

    構成するのは以下の2つのコンポーネント。
    ・ソフトウェアVPN接続
    単一のデバイスを暗号化できる。
    ・ハードウェアVPN
    複数のデバイス(コンピューター、タブレット、スマートフォンなど)を一度に保護できます。

    仮想プライベートゲートウェイ
    (Virtual Private Gateway)
    VPN接続においてのAmazon VPC側に配置するVPNコンセントレータ。複数のカスタマーゲートウェイからのVPN接続を受け付けることが可能。
    カスタマーゲートウェイ
    (Customer Gateway)
    VPN 接続においてのユーザ側に配置されるVPN装置。

    プロトコル(通信規約)

    データの形式ややり取りする順番、エラー対処の方法といった規格・手順など、どのように通信を行うのか。

    ●ARP(Address Resolution Protocol)
    宛先IPアドレスの情報を基にして宛先MACアドレスを調べるためのプロトコル。IPアドレスとMACアドレスの関連性をARPテーブルに記録する。
    (ARPリクエスト / ARPリプライ)

    ●DHCP(Dyanmic Host Configuration Protocol)
    ユーザのコンピュータにIPアドレスなどの情報を自動的に割り当てる。
    [DHCPの割り当て方について]
    クライアント端末がDHCP ACKを受け取ると、DHCPサーバから提案されたIPアドレスを自分のIPアドレスとして設定する。

    ●HTTPS・HTTP
    ウェブブラウザにホームページの内容を表示させるための通信プロトコル。

    HTTPレスポンス
    100番台情報。続きの情報があることを伝える
    200番台成功。Webサーバソフトがリクエストうぃ処理できたことを伝える
    300番台リダイレクト。別のURLにリクエストし直すように要求する
    400番台クライアントエラー。リクエストに問題があったため、処理できなかった
    500番台サーバーエラー。サーバー側に問題があったため、処理ができなかった

    ●TCP/IP(一般的)
    TCP(Transmission Control Protocol)とIP(Internet Protocol)を組み合わせた通信プロトコル。 また、TCPとIPを含む、インターネット広く標準的に使用されているプロトコル群全体の総称。
    [スリーウェイハンドシェイク(コネクションの確立)]
    IPネットワーク上でTCPによる接続(コネクション)を確立するための手順。パケットの送受信を3回行うことからこのように呼ばれる。

    ●コネクション型(信頼性)
    受信側の環境を確認して、データの送信をする。応答がなければ再送する。
    [プロトコル]
    TCP(Transmission Control Protocol):アプリケーション層のプログラムからデータを受け取ると、そのデータにTCPヘッダを付与して、TCPセグメントを作成する。

    [処理の流れ]

    アプリケーションから大きなサイズのデータを受け取ると、MSSのサイズに分割して複数のTCPセグメントを送信する。

    • MSS(Maximum Segment Size):1つのTCPセグメントで送信することができる最大のサイズ。
      ※ACK:確認応答。受信側は必ず確認応答を返すことになっている。
    • 順序制御:分割された複数のセグメントを順番通りに送信する。
    • 再送制御:ある一定時間、受け取り側から応答がなかった場合、再度送信を実施する。
    • ウィンドウ制御(フロー制御):TCPヘッダにある、ウィンドウサイズを利用する。
      受け手側が確認応答を返す際、ウィンドウサイズに自身のバッファ量を伝える。

    ●コネクションレス型(迅速性)
    [プロトコル]
    UDP(User Datagram Protocol):相手の状態を確認せずにデータをいきなり送信する。(効率性>信頼性)
    リアルタイムに適している。
    ※UDPデータグラム:UDPヘッダが付加されたデータのこと

    ●近隣探索プロトコル
    [近隣探索の方法]
    隣接するノードを発見するためのプロトコル。

    [自動設定 / レイヤ2アドレス解決]
    • 自動設定
      IPv6 アドレス自動設定。
      ・ステートフル
      DHCPv6サーバからIPv6アドレスを割り当ててもらう方法
      ・ステートレス
      ルータに設定したIIPv6アドレスの情報を基に、近隣探索機能を使ってクライアントに自動でIPv6アドレスを設定する方法。

      ※ステートレスアドレス自動設定(SLAAC)ではICMPv6の情報メッセージを使用する
      ⇒DHCPv6サーバを使用しなくてもクライアントにIPv6アドレスを自動的に割り当てることができる
    • レイヤ2アドレス解決
      ・NSメッセージ:ARPリクエスト
      ・NAメッセージ:ARPリプライ
      ●要請ノードマルチキャストアドレス
      レイヤ2アドレス解決時に使用する。同じサブネット上にある複数のホストに対し、IPアドレスの下位24ビットを参照し、ネットワークに余計な負荷をかけずに効率的にアドレス解決を行う。

    ポート

    ネットワークからパソコンに接続する際の入口扉みたいなもの。

    ●telnet
    ネットワークを経由して他のコンピュータ(主にサーバ)に接続し、遠隔操作するための仕組み。

    ●SSH
    通信内容が暗号化されるtelnetっぽいやつ。

    • SSHクライアント
      SSHで接続する元のコンピュータ(とか、そのときに使うソフトやプログラム)
    • SSHサーバー
      SSHで接続される側のコンピューター。

    ●ポート番号
    アプリケーションを識別するための16ビットの数値。

    ●ウェルノウンポート(0~1023番)
    主要なアプリケーションを識別するために予約された番号。「よく知られた」
    ※レジスタードポート(1024~49151)
    ※ダイナミックポート(49152~65535)

    [ポート一覧表]
    ポート番号プロトコル
    TCP 20FTP (データ)
    TCP 21FTP (制御)
    TCP 22SSH
    TCP 23Telnet
    TCP 25SMTP
    UDP 53DNS
    UDP 67DHCP(サーバ)
    UDP 68DHCP(クライアント)
    TCP 80HTTP
    TCP 110POP3
    UDP 123NTP
    TCP 443HTTPS
    ポート3389番(TCP)RDP
    WELL KNOWN PORT NUMBERS 0~1023

    IP通信

    [IPアドレス レンジ確認]

    IP(IPv4 , IPv6):IPv6(128b)>IPv4(すでに枯渇している)
    「0.0.0.0/0」(IPv4アドレス) ::/0(IPv6アドレス)

    IPヘッダネットワーク間でデータの転送をするために必要(たくさんのフィールド(領域)で構成されている)
    TTL(Time To Live)パケットの生存期間。パケットが到着しない場合、生存期間を過ぎると破棄。パケットのループを回避できる。
    [IPv4 , IPv6の違い]

    IPv4ではアドレスを32bitの番号で表わしていましたが、IPv6では128bitで表わすことになっている。IPv4の表記法はあくまで人間が扱うためのものですから、入力されたネットワーク側ではこれを2進数に戻して使う。また、この10進数に置き換えて表記する方法は、結局いろいろ不便なところもあるので、IPv6では廃止された。IPv6では元の2進数のアドレスを16進数を使って表記するよう、決まりが変更されている。

    [通信アドレスの種類]
    ユニキャストアドレス1対1の通信で使用する。
    ・グローバルユニキャストアドレス=グローバルアドレス
    ・リンクローカルユニキャストアドレス:同じサブネット内にて通信可能
    ・ユニークローカルユニキャストアドレス:企業や家庭内のみで使用される
    マルチキャストアドレス特定のグループに対する通信の宛先となるアドレス。一対多の通信で使用する。
    エニー(any)キャストアドレス複数のノード(サーバやネットワーク)に同じユニキャストアドレスを付与し、ルーティング上、一番近いノードに転送する
    [ICMP]

    IP通信におけるデータ転送のエラー通知や制御メッセージの通知などに使用される。

    0:エコー応答(可能)8:エコー要求
    3:宛先到達不能11:時間超過

    ※ICMPv6:IPv6で使用されるICMP。ICMPv6のメッセージは以下のに分かれる

    ・エラーメッセージ:パケットを処理する際に検出したエラー通知

    タイプ[1]:宛先到達不能タイプ[3]:時間経過

    ・情報メッセージ:TCP/IP通信を行うために必要な情報の交換、ネットワーク診断機能など

    タイプ[128]:エコー要求タイプ[134]:ルータ広告
    タイプ[129]:エコー応答タイプ[135]:近隣要請
    タイプ[133]:ルータ要請タイプ[136]:近隣広告

    IPアドレス

    1オクテッド=8bit ×4 ⇒32bit  ネットワーク[1で表現](場所、範囲) , ホスト部[32bit](名前)で構成されている。
    ※8bitづつ4つの固まりに分割し、そのそれぞれを10進数で表記する方法が考案された

    ●プレフィックス表記
    IPアドレスとサブネットマスクを同時に表現する表記方法。
    192.168.1.0/24⇒先頭から24bitまで(255.255.255.0)がネットワーク部分(24/32bit)

    NATグローバルIPアドレスをプライベートアドレスに変換する機能(1対1)
    NAPTポート番号を変更、利用することで、1つのグローバルIPアドレスと複数のプライベートIPアドレスを紐付けられる。複数プライベートIPアドレスを一つのグローバルIPアドレス上で使用することができる。
    アドレスクラス

    決定する境界。

    クラスAアドレス第1オクテッド:ネットワーク部 , 第2~第4オクテッド:ホスト部
    クラスBアドレス第1 , 2オクテッド:ネットワーク部 , 第3 , 4オクテッド:ホスト部
    クラスCアドレス第1~3オクテッド:ネットワーク部 , 第4オクテッド:ホスト部
    クラスDアドレスマルチキャスト用のアドレス

    ・クラスフルアドレス:上記クラスに基づいたアドレス
    ・クラスレスアドレス:管理者によって柔軟にクラスを変えることができる

    (ネットワーク部が大きいと、IPアドレスの無駄遣いになる)

    [IPアドレスの最大「255.255.255.255」]

    [なぜ 「255」であるか?]
    IPv4は 32ビットのアドレスを8ビットごとに10進数で分かち書きするため。表記ルールには他の方法もあるので、0~4294967295 かもしれない。8ビットってことは、00000000~11111111 (0~11111111)という2進数、これを10進数で表記すれば0~255、ということになる。
    ⇒表記は10進数。2進数にすると、「0」「1」と表現できる

    IPアドレスの構造

    ・ネットワークアドレス:ホスト部が0で構成されている
    ・ブロードキャストアドレス:ホスト部が1で構成されている。同じネットワークのホスト内に一斉にデータを送る。

    リミテッドブロードキャストアドレス全オクテッドが1で構成されている。自分が所属しているネットワーク上すべてのホストに対して通信を行う。
    ダイレクトブロードキャストアドレス自分が所属していないネットワーク上のホストすべてに送信

    サブネット

    [サブネット化]
    一つのネットワークを複数に分割すること。

    • サブネット部
      サブネット識別のため(ホスト部の一部を拝借する)
      ⇒サブネット部でネットワーク内の何個目のサブネットであるか判別できる
      (最初のサブネット) 172.16.0.0
      (2番目のサブネット)  172.16.1.0
      (3番目のサブネット)  172.16.2.0
      (256番目のサブネット)  172.16.255.0
    • サブネットマスク
      [参考サイト]
      ネットワークとホスト部の境目がサブネットマスク。IPアドレスを、ネットワーク部分とホスト部分に識別するための数値のこと。コンピューターが同じLANにいるかを判断する際に利用される。
      (所感)サブネットマスクはサブネットアドレスを示すためのもの
      ※サブネットマスクを2進数にすると、どこまでがネットワーク部であるか、ビット数がわかる

    セキュリティ規格

    WEP決められた長さのカギ(40~104ビット)をアクセスポイントとクライアントの両方に設定し、同じ鍵であることを確認。
    ※暗号化:RC4アルゴリズム
    [構成] IV(初期ベクトル:乱数)+WEP
    WPATKIPを使用した暗号化アルゴリズム
    [構成] IV(初期ベクトル:乱数)+WEP+一時鍵(通信の度、更新される)
    ⇒MIC:データ部分に付与され、通信の完全性を保証する。
    ●WPA2
    暗号化方式にCCMP(暗号化アルゴリズム、AESを使用してデータを保護する)を採用(※CBC-MAC:メッセージの完全性を保証)
    ●WPA3
    SAEという新しいかぎ交換の仕組みを実装

    進数計算

    Microsoft PL-900

    Power Platform

    組織チームのメンバーはサービスの直感的なローコード / ノーコード セットを使用して独自のソリューションを構築できる。構築プロセスを簡略化するのに役立つ。Power Apps、Power Automate、Power BI、Power Pages の 4 つの主要製品で構成されている。

    [公式:Power Platform]

    ★開発コーディングについて…
    ・ノーコード:ソースコードを全く書かない
    ・ローコード:最小限のソースコードで開発を行う手法

    Azure サービスを Power Platform と共に使用すると、レガシシステムを最新化したり、プロセスを自動化したり、高度な分析ソリューションを作成したりできる

    ●管理センター

    Microsoft Power Platform 管理センターPower Apps、Power Automate、Microsoft DataverseなどPower Platform全体の管理を行うポータル。環境の作成、セキュリティロールの管理、データ管理などを行う。
    Microsoft 365 管理センターMicrosoft 365アプリやサービス(例: Outlook、Power Appsなど)のライセンス管理、ユーザー管理、セキュリティ設定を行うためのポータル。ユーザーにPower Appsのライセンスを割り当てられる。
    一般データ保護規則(GDPR)
    欧州連合(EU)の個人データ保護に関する法律であり、EU内で個人データの収集と処理を行う組織に対して適用される。
    ユーザーから個人情報へアクセスするための利用条件の同意を得る
    ユーザーが未成年かを識別し、未成年の場合はブロックする

    ◇ビジネスバリュー

    [情報を展開する]
    従業員の期待の変化ミレニアル世代や Z 世代に時代が遷移する中、各組織はそれら世代の能力を有効活用するためによりカスタムかつ合理化され、コラボレーションに対応したデジタル エクスペリエンスを提供できる必要がある。すなわち移り変わりゆく世代ユーザに触れてもらうようなリソースを提供する必要がある。
    カスタムアプリケーション開発のコスト上昇開発するための初期コストだけでなく、メンテナンス コストも考慮すること。
    より俊敏性を高める必要性ビジネス戦略とニーズがすばやく変化するため、組織は変化するニーズに基づいてソリューションを(マイナーリリースなど)迅速に構築できる必要があります。
    開発を効率的にスケーリングする必要性開発プロセスの一部に市民開発者 (パワー ユーザー) を責任ある方法で組み込むことにより、組織全体の成長を可能にするハイブリッドな開発チームを組織できます。

    Power Platform 環境

    [情報を展開する]

    環境を複数作成し、開発用テスト用(SandBox)、および実稼働用環境を 1 つずつ設定することで、ソリューション開発やデータ ストレージの管理を効果的に行うことができる。

    ★環境とは…
    テストと本番の環境を別々に管理することでアプリやデータを安全に展開することができる
    エンドユーザーに地理的に近い環境を配置することで高速な応答時間を実現できる
    Microsoft Azure AD テナント環境はそれぞれ、Azure AD テナントに作成。テナント内のユーザーだけが、環境内のリソースにアクセスできる。環境は地理的な場所 (米国など) にバインドされる。
    Dataverse データベース環境ごとに1 つプロビジョニング。Microsoft Dataverse 環境を使用すると、そのデータベースに関連付けられたユーザー アクセス、セキュリティ設定、およびストレージを管理できる。データベースは、その地理的場所にあるデータセンター内に作成される。その環境で作成したすべての項目 (接続、ゲートウェイ、Power Automate を使用しているフローなどを含む) も、その環境の場所にバインドされる。

    既定値 環境
    初期設定として用意されている環境。特定の組織やプロジェクトに依存しない、より汎用的な用途で使われる。ライセンスを持つユーザーは、IT管理者からアプリ作成の特別な権限を付与されていなくても、この環境で自由にアプリを作成・編集できる。

    ※ドメイン 環境:Power Apps の機能を実証する

    マネージド環境
    【環境制御】
    ・Power Platform を大規模に管理するためのプレミアムな機能が揃ったスイート。
    ・少ない手間で環境を細かく制御したり、稼働状況に関して高度な分析情報を得たりできる。
    ・管理者がマネージド環境を有効にすると、管理者が構成する他の機能が使用可能になる
    ※Power Platform の環境はすべて、マネージド環境にできる

    共有を制限ユーザーによるキャンバスアプリの共有範囲管理者が制限できる。 たとえば、ユーザーがキャンバスアプリを組織全体で共有しないように制限できる。(キャンバスアプリ:定常業務をアプリ化したもの)
    週ごとの使用分析情報分析結果がメールボックスに毎週配信される。分析には、上位のアプリ、影響の大きいメーカー、安全にクリーンアップできる非アクティブなリソースの詳細などの情報が含まれる。
    データポリシーデータを共有できる消費者コネクタを定義することで、データの管理方法を組織全体で統一させる。また、重要なビジネスデータがソーシャル メディア サイトなどのコネクタに誤って公開されるのを防ぐこともできる。
    Power Platform のパイプライン作成した環境を必要な数だけ関連付けて、パイプラインを管理または実行するユーザーとアクセスを共有できる。
    ソリューションチェッカーソリューションの高度な静的分析チェックを、一連のベスト プラクティス ルールに従って実行して、問題となり得るパターンを特定できる。

    トリガー

    [情報を展開する]
    ポーリングトリガー定期的に指定された情報源をチェックして、新しいデータや変更がないかを確認
    プッシュトリガー情報源から即時に通知を受け取り、ワークフローを起動する。

    アクセス制御

    [情報を展開する]

    ●ポリシー

    テナントレベルPower Platformの全体的なセキュリティポリシーを管理できる。すべてのユーザーや環境に適用される広範なポリシー。これにより、顧客データの共有制限やデータソースへのアクセスを制限することができ、テナント全体でセキュリティを強化できる。
    環境レベルPower Platformの特定の環境内でデータのアクセス制御やセキュリティポリシーを設定できる機能。特定の環境内でのユーザーのデータ共有やデータソースへのアクセスを細かく制御することができる。ユーザーは管理者によって明示的に許可されたデータソースにのみ接続できるように設定できる。
    データ損失防止 (DLP) ユーザーが意図せず組織のデータを公開することを防ぐガードレール。環境レベルまたはテナント レベルで定義することができ、保護と生産性のバランスが適切に取れた実用的なポリシーを柔軟に策定することができる。

    ●アクセス制御

    ロールベースユーザーの役割ごとに全体的な権限を付与
    レコードベース個々のレコードに対して権限を付与する
    フィールドベース一定の属性(フィールド)へのアクセスを制御するための機能
    アプリケーションベースアプリ全体のアクセス権を管理する

    ・組織内のコネクタの使用を管理および制御する際に役立つ。 コネクタは以下のように分類できる。

    1. ビジネス: ビジネス用データをホストするコネクタ
    2. 非ビジネス: 個人用のデータをホストするコネクタ
    3. ブロック済み: 1 つまたは複数の環境での使用を制限するコネクタ

    データ保護(暗号化)

    [情報を展開する]

    【暗号化】
    ユーザーのデバイスMicrosoft データセンター間で転送されるデータは、業界標準のトランスポート層セキュリティ(TLS)を使用してすべてのパブリックエンドポイントが保護される。
    ・顧客エンドポイントからサーバーへの API アクセスも同様に保護される
    ・現時点では、サーバーのエンドポイントにアクセスするには TLS 1.2 (またはそれ以上) が必要

    ★TLS…
    キュリティを強化したブラウザーとサーバー間の接続を効果的に確立し、デスクトップとデータセンター間のデータの機密性と整合性を確保する。

    連携機能

    [情報を展開する]
    Microsoft AppSourceビジネス向けのソリューションと拡張機能のマーケットプレイス。多様な業界やビジネスニーズに対応した機能が掲載されており、Microsoftの各種プラットフォームやサービス(Power BI、PowerApps、Dynamics 365など)と連携できる製品が多数ある。
    Microsoft Azure MarketplacePower BIに加えて、他の企業が提供するサービスを統合し、より高度なビジネスソリューションを構築したい場合に最適なプラットフォーム。
    Microsoft Store個人向けのアプリやゲームのダウンロードに特化。ビジネスソリューションはない。

    Microsoft Teamsとの連携

    [情報を展開する]
    ★Teamsとは…
    他のユーザーとの共同作業、会議の開催、プロジェクトの管理などを実行できる中心的な場所を提供するコラボレーションツール。

    Teams の主な利点の 1 つは、その拡張性と適応性。これは、組織でユーザーのニーズに基づく Teams 用カスタムアプリケーションを構築することが可能になることを意味する。

    Power Platformは、ローコードの属性を活かしてTeams対応アプリを迅速に構築するための革新的なゲートウェイになる。そのためすべての Power Platform コンポーネントは、Microsoft Teams で使用できる。

    ※後述のコネクタにより、すべての Power Platform ソリューションは、Teams などの Microsoft 365 アプリと統合できる。この統合により、ユーザーは Teams 内で Power Apps を使用したり、Teams 内のアクションやイベントから Power Automate を実行したりできる。

    【承認状況確認】
    Microsoft Teams には、承認とその状態を表示する承認アプリがある。

    Power BITeams ワークスペースでのレポート機能がサポートされ、対話型の Power BI コンテンツの共有や、Teams のチャネルまたはチャットを使った他のユーザーとの共同作業が可能になる。パッケージ化された Power BI アプリコンテンツをアプリとして配布したり、Power BI でテンプレートアプリを作成したりすることができる
    Power Appsアプリ開発者はTeams 内でアプリやワークフローを作成および編集するために必要なリソース類を統合されたプラットフォームの中で実行できる。これにより、メンバーは、複数のアプリやサービスを切り替えることなくアプリを迅速に公開し、チーム メンバーと共有することが可能になる。ユーザーがインシデントを報告する必要がある場合、Microsoft Teams を使用しながらインシデントを報告することができる
    Power Automate繰り返しの作業タスクを自動化するフローを Teams 環境内で直接作成できる
    Copilot Studio会話型エージェントの作成、管理、および公開を Teams 内から簡単に実行できる
    Dataverse for TeamsDataverse for Teams は、組み込みローコード データ プラットフォームであり、ユーザーは Power Apps および Power Automate を使用して、Microsoft Teams でカスタム アプリ、ボット、フローを直接構築できる

    Power Apps
    【アプリ開発】

    ノーコード/ローコードアプリ開発プラットフォームで、Excel の式の概念を活用してアプリを構築できる。高度な機能を活用してカスタマイズでき、紙ベースのプロセスをデジタル化し、Microsoft Dataverseオンライン/オンプレミスのデータソースと連携し、数百のコネクタを使ってデータ統合が可能。

    [公式:Power Apps] [リソース詳細:Power Apps]

    すべてのデバイスで動作する Web アプリケーションやモバイルアプリケーションを作成できる
    ・アクセス制御とセキュリティ機能を管理するためのセキュリティロールがある
    オンラインとオフラインの両方で動作するアプリの作成をサポート

    【その他構成要素】

    式(Expressions)アプリケーション内での計算やデータ操作を行うための機能
    数式フィールドの条件に基づいた動的な表示を設定するために使用されるコンポーネント
    データゲートウェイオンプレミスのSQL ServerデータベースやSharePointサイトなど、クラウドではないデータソースのサービスとクラウドサービスとの間でデータを転送する
    Power Apps Maker Portalアプリケーションを作成し、環境に関連付けられた Dataverse インスタンスを管理する
    アクセシビリティ チェッカーPower Appsで作成したアプリが多くの人に使いやすいかどうかを確認するためのツール

    レコードレベルの権限

    [情報を展開する]
    Create (作成) 新しいレコードを作成する権限
    Read (読取)レコードを読む権限
    Write (書き込み)既存のレコードを更新する権限
    Delete (削除)レコードを削除する権限
    Append (追加)現在のレコードを他のレコードに関連付ける権限
    Assign (アサイン)レコードの所有権を他のユーザーに移譲する権限
    Share (共有)レコードに対するアクセスを他のユーザーに共有する権限

    2つのアプリ構成

    [情報を展開する]

    【作成判断基準:どちらのアプリで作成するか】
    データソースは何か
    ユーザーインターフェースはカスタマイズが必要か

    【2つのアプリの違い】
    ソリューション構築時にユーザーの操作を考慮したアプリ設計が求められ、「キャンバスアプリ」と「モデル駆動型アプリ」の2つのタイプがある。

    キャンバスモデル駆動型
    各アプリの違い画面レイアウトを自由に設計できるDataverseのデータモデルに基づき、UIの多くが自動的に生成される。
    ※主にデータ管理やデータ操作に特化しており、Dataverseのデータベースを前提に構築
    データソースDataverse駆動ではないDataverse駆動
    アプリの目的タスクまたはスクリーン向けバックオフィス/プロセス向け
    UIカスタム UIレスポンシブ/一貫性のある UI
    デバイス統合ユーザーのパーソナル化
    簡単に埋め込み可能データ リレーションシップの操作
    UI のセキュリティ トリミング

    キャンバスアプリ

    [情報を展開する]

    電話や紙のフォームを使った煩雑なプロセスMicrosoft Power Apps のキャンバスアプリで特定の業務タスクをスムーズに実行できる独自アプリを構築できる。組織の業務に合わせたアプリを作成できる。
    以前のバージョンを復元できる機能もある

    Power Pagesに組み込むことができない

    ●コレクション機能
    アプリ内にデータを一時的に保存するために使用できる。 ユーザーがアプリを再度開くと、コレクションは失われる。

    【特徴】

    自由なレイアウト開発者がドラッグ&ドロップで画面デザインやUIを自由にカスタマイズできる
    さまざまなデータソースに接続Excel、SharePoint、SQL Serverなど、複数のデータソースに対応

    Excel や SharePoint のデータからアプリを作成したり、Figma のデザインを Power Apps に変換可能
    埋め込み先:Teams、SharePoint、モデル駆動型アプリ

    ・Power Fx 数式を使用して、画面の視覚要素と、データの取得や表示などのアクションを制御する。フォーム処理と物体検出のための AI コントロールを含めることができる。

    【環境】
    ・ブラウザーやモバイルデバイスで実行できる
    ・キャンバスアプリを複数ユーザーで作成する際、作成環境は作成者の言語に合わせて表示される
    ・モバイルデバイスでキャンバスアプリを使用する際、日付や数字のフォーマットエンドユーザーのデバイスに合わせて表示される

    ●Power Apps Studio
    Power Apps のアプリ開発に使用する Web インターフェイスであり、アプリを構築するためのインストール不要のプラットフォーム。ブラウザーからログインすることで、簡単にアクセスできる。

    【コントロール】

    閲覧画面(Browse Screen)データソースからのレコードの一覧を表示するために使用される。ユーザーはここで目的のレコードを探し、選択して情報を表示できる。
    詳細画面(Details Screen)閲覧画面で選択されたレコードの詳細情報を表示するために使用される。詳細情報の閲覧に適している。
    編集と作成の画面(Edit and Create Screen)新しいレコードを作成したり、既存のレコードを編集したりするために使用される。

    【構築の流れ】

    ①アプリの形式を選択
    (モバイル or タブレットPC)
    ※後からの変更は不可
    ②データと接続
    (1,000以上のコネクタを活用)
    データ接続を設定し、1,000以上のコネクタを活用して外部データと統合する。
    ③画面設計
    (ギャラリーで一覧表示、フォームで詳細編集)
    ・ギャラリーコントロール:データ表示としてレコード一覧を表示
    ・フォーム:単一を詳細編集
    ④入力コントロール追加
    (テキスト入力、ボタン、ドロップダウンなど)
    テキスト入力、ボタン、ドロップダウンなどの入力コントロールを追加し、アプリの操作性を向上させる。
    ⑤高度な機能利用
    (カメラ、バーコードスキャナー、AI機能)
    カメラやバーコードスキャナーなどのハードウェア連携や、AIを活用した名刺リーダー・物体検出などを導入可能。
    ⑥関数活用
    (Excelのような式でデータ処理)
    データ処理やアニメーションの追加が可能。Excelのような関数を活用し、複雑なコード不要で柔軟な設計ができる。
    ⑦レスポンシブデザイン適用
    (画面サイズに応じて調整)
    アプリのレイアウトはレスポンシブデザインを採用し、異なるデバイスに適応させることができる。
    ⑧Copilotの利用
    (AIがアプリ設計を支援)
    Copilotを活用して、AIがアプリ設計をサポートし迅速な構築を実現。

    モデル駆動型アプリ

    [情報を展開する]

    Microsoft Dataverseとの構成が基本であり、データ管理の効率化と業務プロセスの改善に優れたアプリ。サイトマップを使ってエンティティ、ビュー、ダッシュボードなどを整理し、ユーザーが必要な情報やタスクに簡単にできるようにする。

    ・ExcelへのエクスポートやPower BI 統合によるデータ分析レポート作成が可能。
    複数の外部データソースとの統合に制限があり、ExcelやSharePointとの連携を重視する場面ではキャンバスアプリの方が適している

    【特徴】

    標準化されたインターフェースデータとプロセスに基づいた設計に最適
    Microsoft Dataverseとの統合が強力Dataverseをデータソースとして使い、複雑なビジネスプロセスやワークフローを自動化
    データ管理重視顧客管理やサプライチェーン管理など、データ管理が中心のシステムに最適

    【主なコンポーネント】

    ●データコンポーネント
    どのデータをアプリに基づいて、コンポーネントの作成、または編集するが、デザイナーを使用するかを決定する。

    テーブルデータを記録するアイテムで、テーブルは複数のレコード(顧客)を一括して表示できる。標準テーブルが多数用意されており、カスタマイズ可能。必要に応じてカスタムテーブルをいちから作成できる。
    ●アカウントテーブル:顧客、ベンダー、従業員などのエンティティに関する情報を格納するために使用されるテーブル。
    テーブル内のデータの種類を定義する要素であり、入力や選択できるデータの種類を決める。データ型には、テキスト、数値、日付と時刻、通貨、ルックアップ(他のテーブルとの関係を作成)など。
    リレーションシップ複数のテーブル間の関係性を定義。主な種類には、1:N(一対多)、N:1(多対一)、N:N(多対多)がある。
    例えば、ルックアップ列を追加すると、2つのテーブル間に新しい 1:N のリレーションシップが作成され、それをフォームに追加することでデータの関連付けを簡単に行える。
    選択肢事前に定義されたオプションの中からユーザーが選択できるコントロールを表示。各オプションには数値とラベルを設定可能で、単一または複数の値を選択できる柔軟な設計になっている。

    ●UIコンポーネント
    アプリのユーザーがデータを確認したり操作するための画面やインターフェース。

    サイトマップアプリのナビゲーションを指定する
    エリア (Area):サイトマップの最上位の要素で、主要なセクションやカテゴリーを表す。
    グループ (Group):エリア内で関連するサブエリアをまとめるための要素。エリア内の中間的なカテゴリーやセクションを定義する。
    サブエリア (Subarea):サイトマップの具体的なアイテムやページを指し、リソースへのリンクを示す。
    フォーム単一のレコードを編集・詳細表示する
    ※レコード:データベースのテーブルを構成する単位の一つで、一行分のデータを指す。
    ビュー特定のテーブルの行の一覧がアプリケーションでどのように表示されるかを定義する

    ※サイトマップのサブエリア
    テーブル/ダッシュボード/カスタム ページを表示するために使用できる。 1 つのグループに複数のサブエリアを追加できる。

    ●フォームコンポーネント
    エンドユーザーにデータを入力・表示するインターフェースを提供するもの。

    メイン(Main)一般的なフォームであり、エンティティの各レコードに対する主要なインターフェース。多くのケースで使用され、レコードの新規作成や編集に適する。
    簡易作成(Quick Create)新しいレコードを迅速に作成するための簡易的なフォーム。関連レコードを迅速に追加する際などに適する。
    簡易表示(Quick View)一つのエンティティから別のエンティティへの参照で使用される。関連するエンティティのデータをメインフォームで簡単に表示できる。
    カード(Card)モバイルデバイス用に設計されたフォームであり、小さい画面での利用に適している。

    ●ロジックコンポーネント
    データの処理や検証、特定のビジネスルールに基づくアクションの実行。

    ビジネスプロセスフロー従業員が順番にタスクを進められるようにプロセスを可視化し、ユーザーが統一された対応をできるようにする。
    ビジネスルールフォームの入力を制御し、特定の条件に基づいてフィールドの表示非表示、必須化などを設定できる

    【アプリ内のビュー変更方法】
    フィルターの設定
    ビュー内で表示されるデータフィルタリングする条件を設定。特定の属性や値に基づいてデータを制限する。

    2.ソート順の設定
    ビュー内のデータを特定のフィールドに基づいて昇順または降順に並べ替える。
    フィルターやソートを変更するツールとして、以下の3つのツールが使用できる。

    Power Appsサイト
    【ビュー変更 GUI】
    モデル駆動型アプリの作成、編集、公開のための主要なインターフェイス。ビューを作成または変更するためのGUIを提供し、データをどのように表示するかを定義できる。
    ソリューションエクスプローラーモデル駆動型アプリの構造コンポーネントを閲覧および編集するためのツール。ここでビューのプロパティを調整し、フィルター、ソート、および表示されるフィールドなどを変更できる。
    アプリデザイナー
    【アプリ構成編集】
    モデル駆動型アプリに含まれるテーブル、ビュー、フォームなどの構成要素を編集・管理できるツール。開発者やカスタマイザーがノーコードでアプリの設計を行うために用いられる。ビューを追加、削除、変更できるだけでなく、ビューの表示順序やソートの基準なども簡単に設定できる。ダッシュボードやグラフを活用し、業務パフォーマンスを把握しやすい。

    【アプリ作成手順】

    1. Power Appsにサインし、環境を選択
    2. ソリューションを作成してテーブルを追加
    3. モデル駆動型アプリの作成
    4. アプリにページを追加(コンポーネントとしてのページを設定)
    5. アプリを保存
    6. アプリを公開

    Power Automate
    【プロセス自動化】

    複数のアプリケーションやサービスを統合して自動化するためのワークフローを作成する。コミュニケーション、データの収集、意思決定の承認など、繰り返される業務プロセスの自動化を支援。

    [公式:Power Automate] [リソース詳細:Power Automate]

    ※個々のユーザー向けの自動化だけでなく、エンタープライズレベルのプロセス自動化も提供。
    そのシンプルなインターフェイスによって、あらゆるレベルの技術的スキルを持つユーザー (初心者から熟練の開発者まで) が作業タスクを自動化できる。

    機能

    [情報を展開する]
    トリガー何がフローを開始するかを定義する
    アクションフローが何を行うかを決める(フローで実行される個々のタスク)
    変数データを一時的に保存しておくために使用する
    条件特定の条件が満たされた場合に異なるアクションを実行する機能
    ループリストやコレクションの各項目に対して繰り返し処理を行う

    【トリガーのオプション】

    変更があった場合データが変更されたときに実行される
    スケジュールに従う1 日の特定の時刻に、繰り返しでトリガーされるフローを設定できる
    ボタンを押すときオンデマンドでのフローの「実行」を制御できるトリガー方法

    【その他機能】

    ●[アクション アイテム] メニュー
    Power Automate ポータルの [アクション アイテム] メニューから承認などフェーズ状況を確認できる。

    ●ビジネスイベント
    企業システムやアプリケーション内で発生する重要なアクション(イベント)をリアルタイムで検出し、それに応じた処理をトリガーする仕組み。

    ●プロセス マイニング
    既存の Microsoft プラットフォームやエコシステムと連携して、エンドツーエンドのソリューションを提供する。記録システムからイベントデータを抽出し、さまざまなプロセスを視覚化する。プロセスマイニングレポートのカスタマイズ、プロセスの比較、非効率の根本原因の特定、および KPI の監視が可能になる。

    ワークフロー

    [情報を展開する]

    ・組み込みテンプレートのフローを追加したりアクションを削除することができる
    ・ドラッグ&ドロップでコードを書かずGUIのみでフローを作成することができる

    【ワークフローの種類】
    以下の「ビジネス、クラウド、デスクトップ」の3種類がある。

    ビジネスプロセスフローこれらのフローはモデル駆動型アプリで使用される。一連の決められたタスクを順番に対応するような業務プロセスを段階的に到達まで、ガイドするためのフロー。
    クラウドフロー最も使用されるフロー。トリガーされると、クラウドフローは、コネクタを使用してさまざまなサービスとやり取りをする。
    指定した日付と時刻(スケジュール)に自動的に開始できる
    ・DataverseやSharePointなどでデータが作成・変更されたときにフローを自動実行できる。
    ※⇒API呼び出しに基づいてアクションを実行する
    自動フロー:特定のイベントがトリガーとなり実行される。
    インスタントフロー:手動で即座に実行されるフロー。
    予定フロー:定期的に決まった日時に実行されるフロー、タスク。
    デスクトップフロー
    (別称:RPA)
    アプリケーションWeb サイトに対するユーザーの操作をシミュレートを目的とする。フローはデスクトップ用 Power Automate によって構築される。(社内業務やローカル環境に最適)
    ※⇒既に記録されているステップを順番に再生する(マクロみたい)

    ※クラウドフローの変更
    「Power Automate ポータル」、「Power Automate モバイル アプリ」、「Power Apps Studio」を使用して変更できる。

    【テスト】

    フローチェッカーテスト機能
    主な目的フローのエラーや問題点を特定し、改善提案フローの動作を実際にテストする
    使用時の状況フローを実行する前、または問題が発生した場合にフロー内の問題を特定するために使用するフローを実行してその動作を確認したい場合、特に変更や新しいフローを作成した後にその動作をテストするために使用する
    提供する情報エラーや警告とその理由、そして修正の提案フローが実際にどのように動作するか、どのアクションがトリガーされるか、どの条件が満たされるか等の実行結果の情報

    アプリケーション

    [情報を展開する]
    Power Automate ポータル
    【フロー管理】
    作成者にとって単一のアクセスポイントとなり、Power Automate フローの設計・作成、および作成したフロー管理監視を簡単に実行できる。
    Maker Portal : Power Automate で使用できるすべての要素にアクセスできる
    Power Automate Mobile
    【携帯デバイスからアクセス】
    外出時に Power Automate の機能にアクセスできる。Android デバイスと iOS デバイス両方で利用でき、最適化されている。
    デスクトップ用 Power Automate
    【ローカル自動化】
    デスクトップで繰り返されるすべてのプロセスを自動化できるようにする。本フローは基本的に、ワークステーションで単純または複雑なルールベースのタスクを実行するすべての人が対象。
    Windowsオペレーティングシステムにインストールする必要がある

    【Power Automate Mobileでできること】
    Power Automate モバイルアプリケーションでは以下のことができる。

    インスタント フローを実行作成したインスタントフローはここで使用することができる。フローを選択すると実行される
    活動を管理する承認が必要な項目と通知に簡単にアクセスできる
    新しいフローを作成アプリケーション内から直接新しいクラウド フローを作成できる
    既存のフローを管理作成したクラウドフローを簡単に監視でき、変更を加えられる

    Microsoft 365との連携

    [情報を展開する]

    【例1】
    エンドユーザーが 1 日に受信するメールは 100 通を超える。こうした受信メールの多くにファイルが添付されており、添付ファイルは SharePoint サイトや OneDriveフォルダーなど、どこかに保存する。
    ➡Power Platform のPower Automate フローにて、、、
    添付ファイル付きの受信メールがないか受信トレイを監視する。添付ファイルが検出されると、SharePoint 内の適切な顧客フォルダーが特定され、添付ファイルはそこに自動的に保存できる。

    【例2】
    Microsoft Excel へのデータの取り込みは一般的に、さまざまなアプリケーションから Excel にデータをコピーして貼り付ける手動のプロセス。
    ➡Power Platform にある個人生産性自動化ツールにて、対象のデータを取り込んで Excel に入力するプロセスをエンド ユーザーが自動化できる。Power Automate デスクトップ フローで、ユーザーに代わってキー入力とマウスのクリックを模倣する。これで、何分もかかっていたデータ入力タスクが数秒で完了し、ユーザーは空いた時間で他の項目を処理できるようになる。

    Power BI
    【分析】

    データの分析と視覚化を行うビジネス分析サービス。データ分析のプロセスを簡素化し、レポートとダッシュボードを構成するデータの可視化を通じて、視覚的にわかりやすく対話的な分析情報へ変換・共有できる。データの接続、整理、モデル化、視覚化、共有が容易に行える。

    [公式:Power BI] [リソース詳細:Power BI]

    【その他要素】

    サブスクライブPower BIでダッシュボードやレポートの最新情報を自動的にメールで受け取るための機能。
    使用状況メトリック作成したレポートやダッシュボードが実際にどれくらい閲覧されているかを見るためのツール。
    クエリエディター複数のテーブルにまたがるデータを統合して分析可能な形に整える。
    Q&A 機能自然言語で質問を入力することで、Power BIに取り込んだデータを基に適切なグラフや表などの視覚的な回答を得ることができる機能。
    自然言語コーディング不要で直感的に操作できる。非技術者でも簡単にデータの可視化が可能。また、Q&Aビジュアルは、ダッシュボードやレポートに追加することができ、ユーザーが自分の言葉でデータを探索することを支援する。
    Phone ビューPower BI モバイル アプリでレンダリングされるビュー。複数のページを含めることができるのはレポートのみ。Power BI Desktop または Power BI モバイル アプリを使用してダッシュボードを作成することはできない。

    コンポーネント

    [情報を展開する]

    Power BI は以下の 3 つの主要コンポーネントで構成されている。
    ※Power BI DesktopとPower BIの両サービスは相互補完的であり、連携して利用する

    Power BI Desktop(Windows向けデスクトップアプリ)ローカル環境でデータのモデリング、計算列、変換、レポート作成を行う。
    Power BI サービス(オンラインSaaS)作成レポートをクラウド上で共有・公開し、組織内外でアクセスできるようにする。基本的なレポート作成と編集が可能だが高度なデータ変換や計算列の作成などはできない
    モバイル Power BI アプリ(スマートフォンやタブレット向け)

    【データコネクタ一覧確認:[Power BI Desktop]】
    「データの取得(Get Data)」メニューを使用することで、利用可能なすべてのデータコネクタ(Excel、SQL Server、SharePoint、Web API など)を一覧で確認できる。

    【ストレージモード:[Power BI Desktop]】
    テーブルのストレージ モードを指定でき、ストレージ モードを使用すると、Power BI Desktop でレポートのテーブル データをメモリ内にキャッシュするかどうかを制御できる。

    インポートモードデータソースからデータを取り込んでPower BI Desktopに保存する。データ量がそれほど多くない、または高速なパフォーマンスが必要な場合に適する。
    DirectQueryモードデータは元のデータソースにそのまま残る。レポートやダッシュボードを見る人が何かをクリックするたびに、Power BIはリアルタイムでそのデータソースに問い合わせる。大量のデータを扱う、または常に最新のデータが必要な場合に最適。
    デュアルモードこのモードは上記の2つを組み合わせたもので、インポートとDirectQueryの両方の利点を活かすことができる。

    構成要素

    [情報を展開する]

    〇容量(キャパシティ)

    コンテンツをホスト・配信するためのリソースを 容量(キャパシティ) と呼ぶ。
    共有キャパシティ(Microsoft の他の顧客と共有) ※既定
    専用キャパシティ(特定の顧客専用、サブスクリプションが必要)

    〇ワークスペース

    Power BI の ダッシュボード、レポート、データセット、データフロー管理するためのコンテナ
    ●マイ ワークスペース(個人専用)
    個人用で、所有者のみがアクセス可能。ダッシュボードやレポートを共有できる

    ワークスペース(共同作業・共有用)
    チームメンバーと共同作業を行う場所ダッシュボードデータセットを共有でき、メンバーの大半には Power BI Pro ライセンス が必要。また、ワークスペースは 組織の Power BI アプリの作成・管理 にも利用される。アプリはダッシュボードやレポートのコレクションで、閲覧者は編集できない。アプリの利用には Pro ライセンスが必須ではない。

    ワークスペースからアプリを発行する
    Power BIのダッシュボードやレポートを安全にチームメンバーと共有することが可能。アプリを発行すると、アクセス権を持つユーザーだけがダッシュボードやレポートにアクセスできる。また、アクセス権限を管理することで、機密情報を含むデータが適切に保護される。

    〇セマンティックモデル

    レポート作成と視覚化の準備ができたデータソース。Power BI では、さまざまなセマンティックモデルに接続・インポートでき、データを一元管理できる。セマンティックモデルは データフローからのデータ取得も可能。

    ワークスペースで共有
    セマンティックモデルは ワークスペースに関連付けられる ほか、複数のワークスペースで共有可能。ワークスペースを開くと、関連セマンティック モデルが セマンティック モデル タブ に一覧表示される。例えば、OneDrive の Excel ブックや、オンプレミス SSAS モデル、Salesforce データなど、さまざまなデータ ソースが統合可能。

    共有セマンティックモデル
    標準化されたセマンティックモデルを確立し、再利用することで、信頼できる唯一の情報源」 を構築できる。組織のデータモデラーが最適なセマンティックモデルを作成・共有し、レポート作成者はそのデータを利用して精度の高いレポートを作成できる。Power BI のレポート作成により、組織の意思決定をサポートする一貫したデータ活用が可能になる。

    〇レポート

    折れ線グラフやマップなど視覚的な分析情報をまとめたページで構成される。データセットと接続し、レポートを新規作成、インポート、または自動生成できる。

    ・ダッシュボードが最初に表示され、ダッシュボードのタイルをクリックすると、関連する レポートへアクセスできる。

    ワークスペースから、関連するレポートがリスト表示でき、各レポートは 1 つのデータセット に基づいている。レポートを選択すると、詳細を確認できる。

    【レポートの操作モード】
    レポートには 2 つの表示モード がある。
    ●閲覧表示(既定):レポートの閲覧のみが可能
    ●編集表示(編集権限がある場合):レポートの構成や見た目を変更できる

    〇ダッシュボード

    タイルウィジェットを含む単一のキャンバス で、データセットの視覚エフェクトをまとめて表示できる。各タイルはレポートや Q&A からピン留めされた視覚エフェクトを示し、レポートページ全体を 1 つのタイルとして追加することも可能。

    所有者 は、基になるデータセットやレポートを編集可能
    共有されたダッシュボード閲覧・操作可能だが、変更保存不可

    ピン留め(Pin)
    Power BI サービスで共有されたレポートの中から、自分のダッシュボードに特定のビジュアル(グラフやカードなど)を追加する。

    その他構成要素

    [情報を展開する]

    〇データセット

    ストリーミングデータセットプッシュデータセット
    リアルタイムデータをPower BIのダッシュボードに表示するために最適。
    速度: 非常に高速。データは瞬時に反映。
    用途: リアルタイムのデータモニタリング
    保存: データは一時的にしか保存されず、過去のデータを後から見れない
    速度: 高速だが、ストリーミングに劣る
    用途: リアルタイムとバッチ処理両方で使用可能
    保存: データはPower BIサービスに保存され、後から参照することができる

    〇集計機能

    大量のデータを要約し、簡単にアクセスできる形に変換する。
    ・大量のデータを処理するのに向いている
    ・テーブルのサイズを小さくすることでパフォーマンスを向上させる

    〇フィルター

    詳細は参照先サイトにて
    【主なフィルター】

    自動フィルターレポートのビジュアル間の連動や選択操作によって自動的に適用
    手動フィルターレポートのビジュアル間の連動や選択操作によって自動的に適用
    ドリルダウン フィルター階層構造を持つデータ(例:年 → 月 → 日)を段階的に掘り下げて分析できる機能

    〇テンプレートアプリ

    レポート、ダッシュボード、データセットなどを含むアプリとしてパッケージ化されており、外部ユーザーが自分のPower BIテナント内でインストールし、接続情報やフィルターなどを設定して自社向けに活用することが可能ほぼコード不要で Power BI アプリを構築し、顧客向けに展開できる。すぐに利用可能なコンテンツを作成し、自身で公開可能。

    【顧客向けの利便性】
    顧客は 自分のアカウントに接続して使用可能 で、専門家がビジネスユーザー向けに 簡単にデータへアクセスできる環境を提供できる。

    異なるデータの統合

    [情報を展開する]

    Power BI のデータ変換クリーニング概要

    • データの統合の課題
      異なるデータソースを扱う際、フォーマットが統一されておらず、他のデータと適切に表示できない場合がある。IoT データは CRM より構造化されていないことが多く、不要なデータが含まれる場合があるため、データの クリーニングと変換 が必要になる。

    【Power BI Desktop でのデータ処理】
    データの準備には Power BI Desktop を使用し、以下の 3 つのビューで管理する。
    レポートビュー:クエリを作成し、視覚化を設定・共有可能
    データビュー:データモデルに基づき、メジャーの追加やリレーションシップの管理が可能
    モデルビュー:データ間の関係をグラフィカルに表し、管理・変更が可能

    分析情報機能

    [情報を展開する]

    Power BI は AI を活用した複数の分析情報機能を提供している。

    レポートデータの異常や傾向をレポート上で特定
    ビジュアルデータポイントの変動を分析・説明
    ダッシュボード タイルデータをインタラクティブに可視化
    データセットのクイックデータセットの分析情報を自動生成
    Power Query の AI InsightsAzure の機械学習モデルを活用してデータ分析

    〇通知

    レポートやビジュアルを操作すると、自動で分析情報が実行される。異常傾向を検出すると通知が表示され、ユーザーは 確認または無視を選択できる。

    【メリット】
    ・重要な 売上や業務の変化を見逃さない
    ・最新性や重要度の高い「上位の分析情報」が提供される
    ・レポート操作中に アラートを受け取れる

    ●Insights ペイン
    レポートやビジュアルの分析情報を詳しく確認する場合、Insights ペインから、さらに詳しい情報を得ることができる。

    Insights ペイン情報の種類

    異常予想とは異なるデータの急激なる変化(例:通常72°Fの温度が100°Fに急上昇)
    傾向時系列データにおけるパターン(例:売上が4月全体で増加)
    KPI 分析設定した目標値に対する現状の評価(例:売上目標120万に対し現在100万)

    ●異常の分析情報
    時系列データの 予期しない急上昇や急降下 を検出し、異常としてマークされる。Power BI は 異常と相関するデータの変動を分析し、強い影響を持つ要因をリストアップします。

    重大な異常異常スコアが高く、通常の範囲から大きく逸脱
    最近の異常メジャー内で最新の異常
    異常の要約複数の異常をまとめて表示

    〇傾向

    データを平滑化・補間・サンプリング して傾向の統計的有意性を分析し、季節性や外れ値などのノイズを除去する。傾向が検出されると、Power BI は 傾向に影響を与えたカテゴリを特定 し、それぞれの 相対的な貢献度をランク付け する。
    【主要な 4 つの傾向】

    長い傾向最も長期間続くパターン
    急こう配の傾向最も急な増加または減少
    最近の傾向直近に発生した変化
    傾向の反転以前と逆方向の変化

    〇KPI分析

    Power BI は 予想より高い・低い値を持つカテゴリを特定 し、説明を提示する。

    ターゲット付きKPI分析設定された目標値に対する現在の値の差異 を分析し、区分ごとに高低を判定。目標値との差異を Z スコアに基づきランク付け。
    ターゲットなしKPI分析値自体を評価し、他のセグメントと比較して高低を判定。値自体の Z スコア に基づきランク付け。

    セキュリティ要素

    [情報を展開する]

    ●行レベルのセキュリティ (RLS)
    特定のユーザーデータアクセスを制限できる。 フィルターでは行レベルでデータ アクセスが制限され、ロール内でフィルターを定義することができる。

    Power Pages
    【Webサイト作成】

    Microsoft Dataverse に格納された同じ共有ビジネスデータを使用して、外部向け ビジネスWeb サイトをユーザーが迅速に設計、構成、公開・作成できる。ブラウザーやデバイスを問わず、シームレスに動作する。

    [公式:Power Pages] [リソース詳細:Power Pages]

    ・豊富でカスタマイズ可能なテンプレート、再考されたデザインスタジオによる流動的なビジュアルエクスペリエンス、独自のビジネス ニーズに合ったサイトを迅速に構築するための統合学習ハブが用意されている。

    PCI DSS(Payment Card Industry Data Security Standard)準拠の支払い処理をサポートしており、StripeやPayPalなどの支払いゲートウェイと連携することで、安全な決済を実現できる。

    ・Power Pages サイトにはフォームを含めることができる。外部ユーザーは、これらのフォームを使用して Dataverse データにアクセスし、Dataverse テーブル内の行を作成、表示、編集できる。

    主要機能・カスタマイズ可能なテンプレートで簡単にサイト作成
    ・デザインスタジオ による視覚的なエクスペリエンス
    ・学習ハブ でガイド付き体験型学習を提供
    ・Microsoft Dataverse のデータを活用し、他の Power Platform ツールと連携可能
    技術基盤ブートストラップ に基づく設計で、モバイル対応・レスポンシブデザイン を実現。
    異なるデバイス向けに 個別のサイトを構築する必要がなく、最適なユーザーエクスペリエンスを提供。

    コンポーネント

    [情報を展開する]
    フォームDataverseから1つのレコード(顧客情報や注文情報など)を表示、編集するためのコンポーネント。フォームを使うことで、データの詳細な情報を表示したり、ユーザーがそのデータを編集できるようにします。
    リストDataverseから複数のレコードを一度に表示するためのコンポーネント。リストを使用すると、複数のエントリを一目で確認でき、詳細な操作(フィルタリング、ソートなど)も可能。

    サイトテンプレート

    [情報を展開する]

    ウェブサイトを作成する際の基盤となるテンプレート。これにより、開発者やデザイナーは時間と労力を大幅に節約でき、また一貫したデザインと機能を維持することができる。

    【サイトテンプレート】

    空白のページ特定の事前設定されたレイアウトや機能がなく、すべての要素をゼロから作成する場合に使用。自由度が高く、任意の内容や機能を追加できますが、その分、設定や構築には高いスキルが要求される。
    シナリオベース特定のビジネスシナリオや目的に合わせたポータルを素早く作成するためのテンプレート。例えば、製品の販売、イベントの登録、調査の実施など、特定のタスクや目的に特化している。
    サイト設計Power Pagesにおいてヘッダー・フッター・ナビゲーション・セクションレイアウトなど、一般的なウェブサイト構築に必要な基本構造やデザイン要素をあらかじめ提供。

    【Dynamics 365 Power Pages サイト テンプレート】

    パートナー情報の共有、連絡先の管理、タスクの割り当てなど、パートナーとのコミュニケーションをスムーズにするための機能が備わってる。
    コミュニティブログ投稿やフォーラム、Q&Aセクションなど、コミュニティとのインタラクションを重視したポータルを作成するのに適している。

    その他テンプレート

    【テンプレートの初期構成】

    ホームページサイトの入口となるページで、全体の概要や主要なリンクを提供
    検索結果ページユーザーがサイト内で情報を検索した際に、その結果を表示する
    お問い合わせページユーザーが質問やフィードバックを送信するためのフォーム

    デザインスタジオ

    [情報を展開する]

    Power Pages のサイト構築ツール。ページの作成・編集、Dataverse への接続セキュリティ設定を簡単に行える。各機能はワークスペースに分かれている。ページの作成、テーマやレイアウトのカスタマイズ、データフォームの構成、サイトのプレビュー、そして公開操作までを一貫して行える統合ツール

    【主要な 4 つのワークスペース】

    ページWeb ページの作成・編集・並べ替え
    スタイル設定サイトのデザインや操作性をカスタマイズ
    データMicrosoft Dataverse のデータ管理・変更
    設定サイトの管理全般

    サイト作成手順

    [情報を展開する]

    手順1:Power Pagesに移動する
    手順2:Microsoft Dataverse環境を選択する
    手順3:テンプレートを選択する
    手順4:デフォルトのサイト名とWebアドレスを入力する

    サポートツール

    上の製品に加えて、Power Platform で作成したソリューションを強化する他のツールがある。

    Microsoft Copilot Studio
    【AIコンパニオン】

    チャットインターフェースを通じて人間の会話をシミュレート し、顧客の問題に対する 迅速な回答と調整 を提供する。ノーコード環境でコパイロット(AI ボット)を作成・編集 できるツール。トピックの作成・管理により、自然な会話フローを設計 できる。

    [公式:Copilot]

    • 問題に関連するキーワードを認識 し、適切な回答を返す
    • 顧客の質問に継続的に対応 し、解決策を最適化

    ※Copilot Studioで作成されたチャットボットは、以下プラットフォームにデプロイできる。
     ⇒「Facebook / Microsoft Teams / Azure Bot Framework
     ⇒Copilot Studioのチャットボットは、Microsoft Teamsに直接統合されている

    ●作成キャンバス(Authoring canvas)
    Copilot Studioでのトピックの設計と編集を行うための視覚的なインターフェイス。ユーザーは、作成キャンパス上で会話のフローを視覚的に構築し、チャットボットの応答やアクションを設定できる。

    主要機能

    [情報を展開する]
    トピック管理ユーザーとボットの対話を制御するための基本的なユニット。
    ユーザーの入力に対応するトリガーフレーズや会話ノードを設定。
    自然言語理解(NLP)AIがユーザーの意図を解析し、適切な回答を提供
    エンティティ認識電話番号や住所などの情報を特定。【例】学生エンティティであれば、属性(学年、学部…)
    ユーザー入力から情報を抽出できるが、認証機能は有していない
    アクションの実行Microsoft Power Automate を利用して業務プロセスを自動化
    生成 AI複雑な質問に対応する高度な会話エクスペリエンスを提供
    公開機能WebサイトやMicrosoft Teams、Facebookなど複数のチャネルで展開可能
    認証機能Microsoft Entra ID や OAuth2 プロバイダーを利用したサインイン対応

    トピック

    [情報を展開する]

    ユーザーとボットとの対話を制御するための基本的なユニット
    コパイロットの応答を決定するダイアログツリーであり、ユーザーの質問に対する会話の流れを設計する。システムには あいさつ、会話のエスカレート、終了などの標準トピック が含まれている。

    ●フォールバックトピック
    ユーザーの入力をチャットボットが理解できない場合に適切な応答を補完する。

    【トピックの構成要素】
    ・トリガーフレーズ:ユーザーが入力する可能性のある言葉(例:「いつ営業していますか?」)
    ・会話パス:入力に応じた応答ルートを定義する要素

    【主な会話ノード】
    ・メッセージを表示:ユーザーに情報提供
    ・質問をする:入力を求め、回答を保存
    ・アクションを呼び出す:Power Automate で外部サービスと連携
    ・別のトピックにリダイレクト:関連する会話へ誘導

    アプリの作成の簡素化

    [情報を展開する]

    ●Copilot in Power Apps
    作成するアプリを記述すれば、AIがユーザーの代わりにアプリを設計する自然言語処理を使用してアプリ内ガイダンスを受け取り、ニーズに最も近いアプリを簡単かつ効率的に構築することができる。

    新しいアプリケーションを作成する場合、AI アシスタントは Power Apps ホーム画面に表示される。収集して追跡する必要がある情報の種類を AI アシスタントに伝えると、アシスタントは Dataverse テーブルを生成し、そのテーブルを使用してキャンバスアプリを作成する。

    クラウドフローデザイナー

    [情報を展開する]

    自分の自然言語を複数の会話ステップで使用して、ワークフローの合理化に役立つ自動化を作成できる。設計を簡略化し、以下の処理を実行する。

    1. フローおよび製品に関する質問に答える
    2. ユーザーが指定したシナリオ プロンプトに基づいてフローを作成する
    3. ユーザーの代わりに接続を設定する
    4. プロンプトに基づいて、必要なパラメーターをフロー内で適用する
    5. アクションの更新や置換などの変更をフローに加える

    【併用:Power Automate】

    コパイロットの機能であるクラウド フロー デザイナーを使用すると、Power Automate フローの構築を簡単に始めることができる。

    コネクタ
    【パイプライン】

    クラウドのアプリ、データ、およびデバイスに接続し、データソースと Power Platform の間の入出力が可能になる。情報とコマンドが移動する際に通過するブリッジのようなもの。ソリューションにデータと増分機能を取り込むために一般的に使用される。コネクタは、Power Apps、Power Automate フロー、Logic Apps で使用される。

    [公式:コネクタ] [リソース詳細:コネクタ]

    Power Platform はさまざまなデータ ソースで使用できる 900 以上のコネクタを備えている
     一般的なコネクタの例:Salesforce、Office 365、Twitter、Dropbox、Google サービスなど
    ※データソースとの対話処理を簡単に行うための、一連の機能も含まれている

    【データコネクタは Power Platform 全体で使用】
    ・Power Apps:アプリをデータに接続するためにコネクタを使用
    ・Power Automate:トリガーやアクションに必要なデータ ソースに接続するために使用。
    ・アプリを SQL データベースや Microsoft Dataverse などのデータ ソースに接続するために使用。

    キャンバスアプリのコネクタ】
    種類によってデータソースに接続する以外の以下役割をもつ。

    アクションコネクタが提供する機能の一つで、外部サービスやデータソースに対して特定の操作を実行するために使用される。
    テーブルコネクタが提供する機能の一つで、データソース内の特定のテーブルにアクセスし、そのデータを表示・更新できるようにする。

    構成要素

    [情報を展開する]
    トリガーPower Automate でのみ使用され、開始するフローを要求する。テーブル内に新しい行を作成したり、メールを受信するといったアクションに基づいて設定することができる。ワークフローをいつ実行するかを指定するには、必ずトリガーを作成する必要がある
    アクションPower Automate および Power Apps で使用される。アクションはユーザーまたはトリガーから要求され、データソースとの対話を何らかの関数によって行うことができる。たとえば、アクションとしてワークフローまたはアプリにメールを送信したり、データ ソースに新しい行を書き込んだりすることができる。

    【データソースとの対話処理】
    [例] Office 365 Outlook
    コネクタに組み込まれたアクションにより、添付ファイルのダウンロード、メールの送信、イベントの管理といったメールボックスの操作を行うことができる。

    データソースのタイプ

    [情報を展開する]
    表形式構造化された表形式のデータが返される。Power Apps は、ギャラリー、フォーム、およびその他のコントロールを通じてこれらのテーブルを直接読み取って表示することができる。さらに、データ ソースでサポートされている場合は、Power Apps でデータの作成、編集、およびこれらのデータ ソースからデータを削除できる。
    ※例:Microsoft Dataverse、SharePoint、および SQL Server
    関数ベース関数を使用してデータ ソースと対話する。データのテーブルを返すために使用できるが、メールの送信、アクセス許可の更新、またはカレンダー イベントの作成など、より広範囲のアクションを提供する。
    ※例:Office 365 ユーザー、Project Online、Azure Blob Storage

    コネクタの種類

    [情報を展開する]
    事前構築済みコネクタPower Platform(Power AppsやPower Automateなど)を使って、Microsoft 365、SharePoint、Dynamics 365など一般的なアプリケーションやデータソースに接続するために使う。特別なカスタマイズや開発が不要で、すぐに使えるもの。
    プレミアコネクタ使用するには、アプリとユーザーの追加のライセンスの取得が必要。また、適切なスタンドアロンプランを利用している必要がある。プレミアムコネクタの主な利点は、多数のサービスに接続できること。大部分のプレミアムコネクタは、Salesforce、DocuSign、Survey Monkey、Amazon などの外部アプリケーションに対応している。プレミアムコネクタは、プレミアムスタンプで識別できる。
    カスタムコネクタ
    (APIエンドポイント認証)
    標準のコネクタが提供されていない独自のAPIやサービスと接続するために使う。開発者がAPIエンドポイントを指定し、認証やコールをカスタマイズして、独自のコネクタを作成する必要がある。特定のビジネスシステムや、サードパーティ製のソリューションに接続する際に役立つ。
    カスタム コネクタを作成する利点は、Power AppsPower Automate や Azure Logic Apps などのさまざまなプラットフォームで使用できること。カスタム コネクタを作成するには 2 種類の方法がある。
    ・空のカスタム コネクタの使用
    ・OpenAPI 定義を使用する

    コンポーネント

    [情報を展開する]

    各コネクタは、アクショントリガーに分類される一連の操作を提供。 基盤となるサービスに接続すると、アプリやワークフロー内でこれらの操作を簡単に活用できる。

    ●アクション
    ユーザーによって指示された変更。 たとえば、アクションを使用して Microsoft Azure SQL データベース内のデータの検索、書き込み、更新、または削除を実行する。

    ●トリガー
    いくつかのコネクタは、特定のイベントが発生したときにアプリに通知できるトリガーを提供している。たとえば、FTP コネクタには OnUpdatedFile トリガーがある。このトリガーをリッスンし、トリガーが起動するたびにアクションを実行するロジック アプリまたはフローのいずれかを構築できる。

    【トリガーの種類】

    ポーリング トリガー指定された頻度でサービスを呼び出して、新しいデータをチェックする。新しいデータが利用可能になると、データを入力としてワークフロー インスタンスを新規に実行。
    プッシュトリガーイベントの発生を待機する。このイベントが発生すると、ワークフロー インスタンスが新たに実行される。プッシュ タイプのトリガーのサポートは、今後のリリースで追加される。

    [引用元サイト]

    AI Builder
    【AI機能の追加】

    ユーザーや開発者は、作成および使用するワークフローや Power Apps に AI 機能を追加できる。ワークフローやアプリにインテリジェンスを容易に追加し、結果を予測して、コードを記述せずにビジネスのパフォーマンスを向上させることができる、ターンキーソリューション。

    Microsoft Power Platform の AI 機能 で、ビジネスプロセスの最適化と自動化 を支援する。Power Apps や Power Automate と連携し、データからインサイトを得ることが可能。

    ・画像の認識や形状の検出、テキストの読み取りなどの機能が含まれている

    対応可能なユースケースについて

    【主な特長】

    • コーディング不要 で AI を活用可能
    • カスタム AI モデル を作成し、業務に合わせて調整
    • 事前構築済み AI モデル を利用し、一般的なビジネス課題を解決

    AI Builder モデルの種類

    [情報を展開する]

    以下分類により、「企業は迅速な導入」か「高度なカスタマイズ」のどちらかを選択でき、最適な AI 活用が実現できる。

    事前構築済みモデルデータ収集やトレーニングなしで、アプリやフローにすぐにインテリジェンスを追加可能。(言語検出モデルなどすぐに利用可能)
    カスタムモデル特定の ビジネス要件に合わせた AI ソリューション を構築でき、一から設計可能。

    モデルのライフサイクル

    [情報を展開する]
    1. 下書き(Draft):モデルの初期状態。データのインポートや構成が可能。
    2. トレーニング(一時的):トレーニング処理が実行中。
    3. トレーニング済み(Trained):トレーニングが完了し、モデルの精度をテスト可能。
    4. 公開済み(Published):他のPower Platform製品でモデルが利用可能な状態。
    5. 非公開(一時的):公開状態から戻す操作中。

    AIハブ

    [情報を展開する]

    AI 関連の機能にアクセスできる集中管理領域 で、以下の 3 つの主要エリアを提供する。
    ・ドキュメント自動化:ドキュメント処理を効率化する自動化ソリューション
    プロンプト:詳細なコンテキスト取得やプロンプト作成に活用
    ・AI モデル:ビジネス要件に応じたカスタムモデルを定義

    Dataverse
    拡張データ管理】

    拡張可能データサービスおよびアプリプラットフォームであり、ユーザーは複数のソースからのデータを組織で安全に格納および管理できる。データのセキュリティを保護する、データを検証するなど、生産性を高めるための要素もある。(※クラウドのみ対応)

    [公式:Dataverse]

    ●Dataverseコネクタ
    Power Automateでデータを管理および操作するためのコネクタで、プロジェクト管理やタスクの期限データを保持するのに最適。

    ●Dataverse のデータレイヤー
    リレーションシップやビジネスルールを定義し、複雑な式なしで必要なビジネス成果を実現できる。

    【設計】
    ビジネスデータの中央リポジトリとして設計されている。セキュリティ、ロジック、データ、およびストレージが、一元的に管理される場所に組み込まれる。サーバー上でのスタンドアロン用途としては設計されていないため、アクセスと使用にはインターネット接続が必要となる。グローバルに使用できるが、潜在的なデータの所在地に従って各地域で展開される。
    ※Common Data Model の定義とスキーマに基づいている。

    性能概要

    [情報を展開する]
    セキュリティ
    【Microsoft Entra】
    Microsoft Entra を使用して認証を行うことで、条件付きアクセスと多要素認証を可能にする。また、行レベルや列レベルでの承認をサポートしており、豊富な監査機能を提供する。
    ロジック
    【データルール】
    データレベルでビジネス ロジック簡単に適用できる。ユーザーがどのようにデータを操作するかに関係なく、同じルールが適用される。 これらのルールは、重複データ検出、ビジネス ルール、ワークフローなどに関連付けることができる。
    データ
    【検証・分析】
    データを処理するための制御を提供しており、データの検出、モデル化、検証、レポートを行うことができる。 この制御により、データがどのように使用されるかに関係なく、データは適切に表示される。
    ストレージ
    【Azure Cloud】
    Dataverse は、Azure 上でデータを管理するため、物理的な場所やデータ量に関する心配は不要。自動的にスケーリングし、必要なリソースを確保する。「インスタンスごとの上限」ではなく、組織全体で保有している Power Platformのストレージ容量(Dataverse 容量・ファイル容量・ログ容量など)に応じて柔軟に拡張可能。Microsoftのライセンス体系により、利用可能な容量は増減するが、特定の「インスタンスあたりの最大容量」といった固定上限はない。
    統合
    【多数接続方法】
    さまざまな方法で接続してビジネスニーズをサポートする。API、Webhook、イベント、データ エクスポートにより、データの入出力の柔軟性が高まる。

    【スケーラビリティ】
    大規模なデータ セットや複雑なデータ モデルをサポートできる。テーブルには何百万もの項目を保持することができ、Microsoft Dataverse データベースの各インスタンスのストレージは、それぞれ 4 テラバイトまで拡張できる。

    サービス機能

    [情報を展開する]

    ビジネス(データ)ルール
    【データルール】
    データの入力に使用されるフォームに関係なく、ルールを適用したり、値を設定したり、データを検証したりするための、強力な手段。データの精度を高めたり、アプリケーション開発を簡素化したり、エンドユーザーに表示されるフォームを合理化したりする場合にも効果的。
    データフロー
    【データ処理プロセス】
    Dataverse 環境、Power BI ワークスペース、または組織の Azure Data Lake Storage アカウントに対して、データの取り込み、変換、読み込みを行う。(Power Query を使用して作成される。)
    ・データフローは手動または、スケジュールで自動的にトリガーして実行できる。
    ・データフローでは結果のエンティティがクラウドベースのストレージに保存され、他のサービスも操作することができる。
    Common Data Model
    【データ形式の統一】
    データを構造化して、ビジネスアプリケーションに統合し、ユーザーの使いやすさと一貫性を確保する
    そのデータのクエリおよび分析を行い、再利用して、同じ形式を使用する他の企業やアプリと相互運用ができる
    ・独自のデータ型とタグを作成し、共有できる。
    ・利用可能なテーブル定義を使用するだけで、すべてのサービスが同じデータにアクセスすることができる。

    構成リソース

    [情報を展開する]
    テーブルDataverse のデータはテーブルに格納される。テーブルは一連の行と列。テーブルの各列には、名前、場所、年齢、日付、給与など、特定のタイプのデータが格納される。
    インスタンス取引先企業、取引先担当者、活動など、一般的なビジネスシナリオをカバーする標準テーブル基本セットが含まれている。この基本セットに含まれる標準的なビジネステーブルを使用することで、ソリューションの構築を始めるために必要な時間を節約することができる。また、組織の固有のニーズに合わせてカスタム テーブルを作成して、データを入力することもできる。
    インスタンスで使用できるデータの量は、関連付けられているライセンスの数と種類に基づいて決まる。
    ライセンスライセンスされたすべてのユーザー間でプールされるため、作成したソリューションごとに、必要に応じてストレージを割り当てることができる。標準ライセンスで提供される容量よりも多くのストレージが必要な場合は、追加のストレージを購入できる。

    【テーブルの種類】

    標準Microsoft Dataverseに含まれる既成のテーブルで、アカウント、部署、連絡先、タスク、ユーザーなどが含まれている。標準テーブルのほとんどはカスタマイズできる。
    アクティビティ予定、タスク、電子メール、電話など、アクティビティベースのデータを管理するための特別なテーブル
    仮想Dataverse外の外部ソースからデータを取得するためのテーブル
    エラスティック数千万行を超える大規模なデータセットを格納するためのテーブル
    カスタムカスタム テーブルは、管理されていないソリューションからインポートされた管理されていないテーブル、または Dataverse 環境で直接作成された新しいテーブル。

    アクセスセキュリティ

    [情報を展開する]

    【セキュリティモデル】

    セキュリティモデル説明適用対象
    ロールベースのセキュリティユーザーやチームにセキュリティロールを割り当てて、操作権限(CRUDなど)を制御テーブル・レコード単位
    フィールドレベルのセキュリティ特定のに対して、読み取り・作成・更新の権限を細かく設定列(フィールド)単位
    レコードレベルのセキュリティレコードの所有者や共有設定に基づいてアクセスを制御個別レコード単位
    アプリケーションベースのセキュリティ特定アプリに対するアクセス権を制御。アプリごとに専用ロールを設定可能。API 用ユーザーも管理可アプリ・API アクセス単位
    チームベースのセキュリティチームにロールを割り当て、チームメンバーに権限を付与チーム単位
    部署(Business Unit)ベースのセキュリティ組織階層に基づいてアクセス範囲を制限(部署、部署配下、組織全体など)組織構造単位
    アクセスチーム(Access Teams)一時的なレコード共有に使われる柔軟なチーム構成レコード単位の例外処理
    Microsoft Entra ID(旧Azure AD)との連携セキュリティグループと連携してユーザー管理やロール割り当てを効率化ユーザー・グループ管理

    明確なメリット

    [情報を展開する]
    管理が容易メタデータとデータのどちらもクラウドに保存
    保護が容易ロールベースのセキュリティにより、組織内のさまざまなユーザーのテーブルへのアクセスを制御できる
    リッチメタデータデータ型およびリレーションシップは、Power Apps 内で直接利用される
    ロジックと検証計算列、ビジネス ルール、ワークフロー、ビジネス プロセス フローを定義して、データの品質を確保する
    生産性向上ツール生産性を高め、データのアクセシビリティを確保するために、Microsoft Excel のアドインでテーブルを使用できる

    連携サービス

    【併用:コネクタ】
    Dataverse をビジネス データを格納するプライマリ ストレージとして使用する一方、コネクタをさまざまなアプリや自動化で使用して、多くのデータ サービスに接続している。

    Power FX
    【ローコード言語】

    Microsoft Power Platform 全体で使用されるローコード言語。
    (一般的に理解しやすい言語)

    記述形式

    [情報を展開する]

    Microsoft Excel で数式を作成する場合と同じような方法でオブジェクトをバインドする。

    “希望価格” という名前のコントロールで式 If(IsBlank(“Property Name”.Text),false,true) を使用すると、”プロパティ名” という名前のコントロールにテキストが含まれているかどうかを評価する処理になる。
    含まれていない場合、希望価格コントロールはアプリに表示されない。
    含まれている場合、希望価格コントロールはアプリに表示される。
    キャンバスアプリで値が変化すると、スプレッドシートの場合と同様に、式のロジックによって値が自動的に再計算されますが、これはコントロールの表示に影響する。

    【イメージ】

    Managed Environments

    Power Platform 内で選択され、セキュリティで保護された分離環境です。 マネージド環境を使用すると、組織では、データやリソースに対する制御を維持しながら、アプリケーションを構築、テスト、展開できる。

    Dynamics 365 について

    Microsoftが提供する統合型の業務アプリケーション群。CRM(顧客関係管理)とERP(基幹業務管理)を一つのプラットフォームで動かせる。営業、マーケティング、サービス、財務、在庫管理、人事など、企業の日常業務をサポートするソリューションがまとめて使用できる。

    ・Microsoft製品との連携:Teams、Power BI、Outlook、Excelとスムーズに連携
    Power Platformと統合可能:Power Apps、Power Automate、Dataverseを活用して柔軟なカスタマイズが可能
    クラウドベース:どこからでも利用でき、セキュリティとアップデートも安心
    モジュール型構成:必要な機能だけを選んで使えるので、導入や運用が効率的
    ・Power Appsポータルの運用時には、LCSの診断ログは信頼できる技術的根拠として活用され、問題の早期解決に繋がる。

    【その他機能】

    データ管理フレームワークDynamics 365アプリケーションに関連して使用されるフレームワークの一つ。データのエクスポートやインポートを簡単にするためのツールセットである。この機能を使用するとデータパッケージを作成し、それを他の環境へインポートすることができる。
    Lifecycle Services認証処理の詳細なログやエラーのスタックトレースを取得できる。これにより、ユーザーのDataverse上の登録状態、外部 ID プロバイダーとの接続状況、AADの設定ミスなど、根本原因の特定に必要な情報を得ることが可能。
    Dynamics 365 for PhonesスマートフォンからDynamics 365のデータにアクセスできる専用のモバイルアプリ。

    【Dynamics 365の主なアプリケーション】

    アプリケーション名主な用途
    Sales顧客管理・営業支援
    Customer Service問い合わせ対応・サポート管理
    Marketingキャンペーン実施・リード育成
    Field Service現場作業・メンテナンス管理
    Finance財務・会計・請求書処理
    Supply Chain Management在庫管理・物流・調達
    Human Resources人事管理・従業員情報の一元管理
    Project Operationsプロジェクト計画・コスト管理
    Business Central中小企業向けERP

    その他用語

    Azure AI サービス
    (旧:Azure Cognitive Services)
    Microsoft が提供するAI(人工知能)のサービス群です。プログラミングの知識が少ない人でも容易にAIの機能を利用することができる。
    ・ドキュメントをスキャンしてテキストデータを抽出し、分析が可能
    ・ユーザーの入力した内容から感情分析が可能
    Azure Data Factory大規模なデータの移動や変換を実行する
    Azure Machine Learning機械学習モデルの開発・運用に特化
    Azure PowerShellクラウドリソースの管理に使用されるツール
    Microsoft Entra ConnectオンプレミスのActive DirectoryをMicrosoft Entra ID(旧:Azure AD)と同期するツール
    Power QueryDataverseへの取り込み処理の中で使用でき、フィルター・列の分割・型変換など柔軟なデータクレンジング(不整合修正)機能を提供。Excel や Power BI など多くの Microsoft 製品に搭載されているデータ接続/準備機能。
    ●Power Query エディター
    データの整形・変換 を支援するツールで、モデルや視覚化に適したデータを準備できる。複数の列を結合して1つの列にまとめることが簡単にするようなこともできる。

    個人的苦手まとめ

    フォールバックトピックユーザーの入力をチャットボットが理解できない場合に適切な応答を補完する。
    トピックユーザーの質問に対する会話の流れを設計する。システムには あいさつ、会話のエスカレート、終了などの標準トピック が含まれている。
    データゲートウェイ(PowerApp)クラウドではないデータソースのサービスとクラウドサービスとの間でデータを転送する
    ギャラリー / フォーム(PowerApp)ギャラリーで一覧表示、フォームで一行分のデータを詳細編集
    エンティティ(PowerApp)電話番号や住所などの情報を特定。【例】学生エンティティであれば、属性(学年、学部…)
    感情分析感情分析=Azure AI サービス
    PowerQueryフィルター・列の分割・型変換。データの整形・変換 を支援するツール。複数の列を結合して1つの列にまとめることが簡単にできる。
    RLS制御(Power BI)特定のユーザーデータアクセスを制限できる。 フィルターでは行レベルでデータ アクセスが制限され、ロール内でフィルターを定義することができる。

    Microsoft Learn 確認問題

    [Microsoft Dataverse について説明する]

    [Microsoft Power Apps の基本機能を特定する]

    [Microsoft Power Apps の機能を実演する]

    [Microsoft Power Automate のコンポーネントを特定する]

    [Microsoft Power Automate の機能を実演する]

    [Microsoft Power Pages の機能について説明する]

    [Microsoft Power Pages サイトを作成する]

    [Microsoft Power Platform を使用してビジネス ソリューションを拡張することのビジネス バリューについて説明する]

    [Microsoft Power Platform サービスのビジネス バリューについて説明する]

    [キャンバス アプリを構築する]

    [モデル駆動型アプリを構築する]

    [Microsoft Power Platform 環境を管理する]

    SaaS開発ガイド

    ※本記事は株式会社アンチパターン 「SaaS開発ガイド(基礎編・応用編)」をもとにした内容です
    ※なお、本参考書はAWS Summit 2024 一般配布物です

    SaaSとは

    「Software as a Service」の略称。
    「サービスとしてのソフトウェア」を意味するクラウドサービスの一種。

    ※SaaSモデル


    基礎用語

    • テナント
      SaaSを利用するユーザー(顧客組織)の契約単位。「テナント」の単位は会社単位、部署単位、チーム単位などと、企業規模や組織構成などによって異なる。

    • マルチテナント構成
      共通のサーバーやデータベース、アプリケーションを複数のテナントに提供する。
      (既存資産やビジネス上の制約がない限り採用すべき構成)

      [コスト]
      インフラストラクチャリソースを共有することで最適化。
      [スケーラビリティ]
      テナント数増加に対応しやすい。
      [運用性]
      サーバー・ストレージなどの運用対象になるマシン数を削減。
      [メンテナンス性]
      プログラムのデプロイ先を1つにすることで、テナントごとの個別管理を削除。

    • ノイジネイバー
      テナント間でリソースを共有する構成の場合に発生する事象。
      同居しているテナントがCPUやメモリ、ディスクI/Oなどの大量のコンピューティングリソースを消費した場合、他のテナントが十分にサービスを利用できなくなること。
      特定のテナントで大量の処理が実行された場合、リソースを共有する他のテナントにまでその影響が及んでしまうトラブル。同居しているテナントが他のテナントにより不利益を被ることになる。

      ※曜日や日付、時間帯などでユースケースが定まっている場合は注意が必要。
      (例:月末処理など)
      ※別のインフラストラクチャにあるテナントに移動させることで一時的な解決を図ることも可能
    • テナントティア
      顧客が利用できる機能やディスク容量、処理能力、セキュリティレベルなどに応じてプランを分ける。これらを各利用プランに分けることををいう。

    ビジネスモデル

    SaaSというビジネスモデルの特徴は、

    • サービスを多くの顧客に提供することで大きな成長につながるビジネスである。
    • SaaSは一つの事業者複数の「テナントにサービスを提供するモデル。
    • SaaSは継続課金を行うサブスクリプションモデルが多い。

    留意点:サービス性

    利用価値を保つために常に領域内のベストプラクティスを、継続的に俊敏性を高くして提供続ける必要がある。
    新機能リリースやアップデートまでに期間が開くと、世の中のトレンドや競合サービスに遅れを取ることになり、顧客損失につながる。
    つまり、タイムリーなプロダクト新機能開発やアップデートが必要になってくる。

    強みとしてスケーラビリティやアジリティを担保でき、コスト効率や運用効率を高めるために、共通的なアーキテクチャやインフラで多数のテナントに対してサービスを提供できる。
    一方で共通の環境でサービスを提供すると(マルチテナント)、セキュリティや性能の担保が難しくなる。

    ○意識すべきポイント

    【SaaSビジネス成長のデザイン】

    • プロダクトの初期段階においては機能開発などやるべきことが多く、スケーラビリティを完璧に意識することは難しい。
    • ある程度プロダクトが成功し、利用者数が増えてきたタイミングで早めにスケーラビリティを高めていくことを検討。
    • 俊敏性の高いSaaSアーキテクチャを実現するために、テナントのオンボーディング(利用開始)プロセス自動化、テナントの需要に合わせたコンピューティングリソースの自動スケーリングなどを検討。

    【すべての顧客は共通の環境を提供すること】
    特定の顧客に向けたカスタマイズではなく、機能アップデートや管理、オプション、運用作業などはすべての顧客に対して行われるもの。
    様々な顧客のニーズをモデル化し、テナントのユースケースを集約し、ベストプラクティスとして提供できるように機能設計を行うこと。

    【ガバナンスとコンプライアンスを考慮】

    • ガバナンス:どこのデータセンターにデータを格納するか
    • コンプライアンス:個人情報を取り扱う際、国々によって関連する法令など

    【開発したオプション機能の切り替え】

    利用契約を行っているテナントに対してのみ、開発したオプション機能を提供する。
    そのため、フィーチャーフラグをセットし、有効・無効により特定のテナントのみにスイッチングできるようにする。
    ※テナントティアに応じた切り替え対応も可能。

    • フィーチャーフラグ
      アプリケーション実行時に処理の有効・無効を動的に切り替えるためのフラグ。
      SaaS開発に限らず利用される手法。

    【処理の優先度を設定】
    テナントティアに応じて処理の優先度を設けたいケースがある場合。
    (テナントティアに応じたリクエスト数の割り当て変更など)
    (より上位のプランに加入しているテナントにSLAとして処理件数や処理時間などを保証する)

    • スロットリングポリシー
      一定時間内に処理可能なリクエスト数を制限すること。
      ※APIの提供時や複数の利用者が共通のシステムを利用するケースに採用されがち。

    留意点:セキュリティ

    数多くの企業や消費者に共通のサービスを提供し、データを預かる。また、多数のユーザーからのリクエストを処理し、データを管理しなければならない。
    故にSaaS提供事業者は、同時に複数テナントに関する対策も求められ、管理の難易度は高く、責任範囲は広い。

    ○意識すべきポイント

    【テナントを意識した設計が必要】
    まず、すべてのSaaSに適した設計は存在しない
    SaaSビジネスとしての、「要求事項」、「セキュリティ」、「コンプライアンス要件」、「マーケットセグメント」などあらゆる要素がアーキテクチャに影響を与えることを考慮する。

    テナントは基本、分離をしなくてはならない。

    • データ漏洩
      マルチテナント構成において、初期段階からテナント間のデータ漏洩防止を明確に設計しておかないと長期的に重大インシデントを引き起こしかねない。SaaSは機密性が重視され、アプリケーションとデータは完全に分離されている必要がある。
    • クロステナントアクセス防止
      テナント同士が相互にアクセスできないようにリソース間に境界を設定し分離させなくてはならない。(共有する場合は適切なアクセス制御が必要)

    【すべてのテナントリソースを分解する】
    堅牢なSaaSアーキテクチャを実現する。
    すべてのレイヤーにおいて分離の手段を講じ、テナントのリソースにはそのテナントのみがアクセス可能となるような構造にする。

    【リソースへテナントを識別するタグを付与する】
    テナントごとのリソースを分離する一つの方法として、各リソースへIDタグを付与すること。
    テナントIDにより識別することで、データの参照可否制御やクロスアクセスの防止につながる。

    【(テナントへの)アクセス制御の実装】
    ユーザー認証情報をもとにアクセス可能であるリソースや機能を制御する。

    【プロダクトやフェーズに応じたセキュリティの考慮】
    求められるセキュリティレベルは異なる。実際に機密情報が蓄積されていない状態でセキュリティを必要以上に考慮するのは、俊敏性・迅速なリリースを欠いており、効果的ではない。
    市場踏襲前の段階ではセキュリティリスクは軽微であるため、トレードオフにてきちんとリスクを把握し、俊敏性を優先した開発が必要になる。

    マルチテナントの場合、どのテナントに属しているのか、境界を跨ぎやしないかなどマルチテナントSaaS特有のセキュリティへの考慮が必要。

    開発ステップ

    ①競合・市場調査立ち上げ予定のSaaSアイディアが市場投入・実装に値するものであるか、確認をとる。市場調査は競合他社の動向把握にもつながる。
    ②顧客の課題を明確化顧客の悩みや課題を理解し、これから開発を予定しているSaaSプロダクトが解決につながるか。
    顧客の属性や抱える課題など具体的な顧客のペルソナを設定し、どのような機能提供で解決できるか。
    ③ビジネスモデル選定課金モデルなどのビジネスモデル選定を実施。
    課金モデルとしては、広告収入やサブスクリプション収入など様々な方法がある。
    最初の1か月間無料トライアルやフリーミアムの期間としてSaaSプロダクトを提供する方法もある。
    提供するSaaSがどのようなポイントを提供し、その対価がどのように支払われるべきか事前に設計すること。
    ④コア機能の定義プロダクトの開発は小さく、かつ素早く始めることが重要。
    すべての要件を実現するのではなく、前述のようにいかに早くプロトタイプを提供できるかを意識する必要がある。
    スピード優先で素早いリリース。様々な機能のラインナップの中から優先順位をつけて、優先度の高い機能に絞って集中的に開発を行うこと。
    ⑤プロダクト開発
    ロードマップ策定
    ・事業計画の策定
    ・将来から逆算して、現時点とのすり合わせを行い、方針があっているか
    ・ロードマップは開発プロセスの計画や進捗状況に合わせて見直すこと
    ※ロードマップは計画や進捗を把握するよりも策定する過程の方が重要。
    ※ロードマップ自体、常に変化するものであるため、顧客への公開は慎重に行うべき。
    ⑥MVPの開発
    (Minimum Viable Product)
    リリースまでに多くの期間を要する場合、競合他社に抜かされてしまう可能性がある。そのため、最小限の機能に留め、短い開発サイクルで可能な限りスピーディーに市場に投下することが大切。
    ⑦フィードバック収集と検証を繰り返すMVPは一回市場に投下して終わりではない。
    リリース後は利用した顧客から得られるデータの収集・分析に努めること。

    【フィードバック収集方法】
    ・ユーザビリティテスト
    ・チャット
    ・アンケート
    ・メール問い合わせフォーム
    ・ソーシャルメディア
    ・顧客へのインタビュー
    ・Web分析ツール

    環境構築の流れ

    • テナント情報の設定(オンボーディング)
      テナント名称、契約プラン、フィーチャーフラグの設定やテナントのステータスなどの情報を整理。
    • テナントオンボーディングテスト
      テナントがSaaSを利用開始するオンボーディングの場面において不十分な体験を提供しないか確認。(サービスへの期待感や信頼感の維持)
      オンボーディングにおいてもインフラを新規にプロビジョニングする場合は、そのフローが正しく実施されるか、また契約の急増にも耐えられるかといったポイントを確認する。

      ・スロットリングテスト
      想定しているスロットリングが正しく動作しているか確認する。

      ・クロステナントインパクトテスト
      特定のテナントがシステムに過度な負荷をかけてしまうノイジーネイバーへの対処シミュレーションとして、実際のシステムに負荷をかけてテストを行う。テナント分離テストテナントが適切に分離され、セキュリティが担保されているかテスト。

    • ユーザーの設定
      ・テナント内には管理ユーザーと一般ユーザーが必要。
      ・アクセス制御や権限設定ができるようにユーザー管理方法を設定する。
      ・最低限テナント管理ユーザーを作成する。
    • 請求方法の設定
      請求方法(定額制など)、また請求システムと連携して請求できるようにテナントオンボーディン時に請求システム側への登録が必要。
    • インフラ環境の構築

    SaaS開発に必要な6つの視点

    ①テナントという概念の思慮

    • 隔離用企業のデータのセキュリティ担保とリソースの効率性、運用効率性をバランスよく両立させることが重要。
    • 適切なテナント設計。テナントの概念を考慮したアーキテクチャ設計が非常に重要。

    【新たにサービスの利用を開始する場合はテナントのオンボードが必要】

    顧客がSaaSを利用開始する際に実施。

    • テナントオンボーディング
      新しい「テナント」の契約が決まり、サービス利用を開始する再任、その「テナント」をシステム内に新しく構成するプロセスのこと。一般的なSaaSではテナント管理、ユーザー管理、請求管理のそれぞれについて新しい「テナント」がサービス利用するためのプロビジョニング(準備)が必要になる。

      ※スケーラビリティを意識したオンボーディングの自動化がポイント。
      ・スクリプトなどを実行して自動化
      ・セルフサービスなどによる自動化

    サイロ
    モデル
    テナント毎に必要なリソースを準備する構成。
    分離レベルが高く、セキュリティリスクや性能問題において、他のテナントの影響を受けにくく、情報漏洩のリスクに強い。金融業界などセンシティブな情報を取り扱う業界に最適。テナントの数が多い場合はインフラコストや運用効率の面で工夫が必要。

    【メリット】
    ①テナントが求めるセキュリティ・コンプライアンスへ対応できる
    ②ノイジーネイバー問題が発生しない
    ③影響範囲の最小化
    【デメリット】
    テナント間でインフラストラクチャを共有しないため、コスト効率は悪い。
    テナント毎に環境を構築することから、利用されないコンピューティングリソースも増えがち。構成の変更やパッチあてなど、メンテナンスの作業負荷も高くなる。
    プール
    モデル
    リソースを複数のテナントで共有する構成。共有度が高く、インフラコストや運用効率の面でとてもメリットが大きい。
    顧客数の拡大は多くのSaaSにとって目指すべき姿であり、顧客拡大において、
    インフラコストや運用効率においてメリットがあるもののノイジーネイバー対策やテナントの境界線を意識した分離が必要。

    【メリット】
    ①コスト効率を高めやすい
    リソースを共有するプールモデルはコスト効率を高めやすい。
    待機リソースを減らすことができる。
    ②スピード感を持った開発
    テナント毎の個別開発や個別対応が最小化され、新機能のリリースなども迅速に行える。
    ③運用の簡素化
    オンボーディング時の作業量を減らせるほか、自動化もしやすい。
    【デメリット】
    ①ノイジーネイバーの問題
    特定のテナントが大きな負荷をかけることで、他のテナントが適切に利用できなくなる可能性がある。
    ②テナントのシステム利用状況を追跡しにくい
    テナント毎のリソース利用量を把握しにくくなる。
    ブリッジ 
    モデル
    アプリケーションの処理を実施するサーバー部分は共有しつつ、データを格納するデータベースはテナントごとに分離するなど、一部はサイロ、一部はプールを適用するモデル。
    特定のデータベースの分離、共有に最適。
    ・サイロモデルより分離レベルが下がり、プールモデルより分離レベルが上がる。
    データベース分離によりリスクが低下し、リソースの共有によりコスト効率を上げ、セキュリティリスクが下がるバランス型。

    【メリット】
    サイロモデル、プールモデルのどちらかに近いかにより、それぞれのメリットを享受できる。ノイジネイバーの対策が可能。
    【デメリット】
    ①サイロモデル、プールモデルのどちらかに近いかにより、それぞれのデメリットもある。オンボーディング時の個別対応が必要になる。
    ②サーバー部分を共有しているため、サーバー処理が極端に多いテナントが存在すると、ノイジーネイバー問題を起こす。
    ハイブリッド
    モデル
    共有レベルと分離レベルのバランスをとった構成。
    ※サイロモデルとプールモデルが「テナント」によって混在する構成。
    ※ブリッジモデルの課題をさらに解決させることを目的とした構成。
    ➡効率とセキュリティのバランスを考えることのできるカスタム性のあるモデル。

    【例】特別なセキュリティ要件を求められた場合
    プールモデルを提供し、極度に大きい処理や堅牢なセキュリティが必要になるテナントは、専用リソースで提供する。ノイジーネイバーは対応できるが、サイロ構成が増えるため、運用効率に支障をきたすことがある。
    ティアベース分離利用プラン(ティア)ごとに分離方法を切り替える方法。ティアに応じた差別化したサービス提供。上位プランではリソースやデータベースの占有ができる。マルチテナントに機密データをのせることができない場合にも有効。

    【メリット】
    各企業からの個別要望に応えざるを得ないケースに有効。
    【デメリット】
    個別環境が増えすぎると運用負荷が増加する。

    【テナントの分離】

    SaaS設計・開発の基本かつ必須要素。各テナントは他人同士であり、当然ながら相互にデータを参照できてはいけない。テナントを確実に分離することで、お客様のリソースに他のテナントがアクセスできない状態を担保する必要がある。また、インフラ間でのテナント移動発生する場合を考慮すること。

    • データとユーザーの統合・分解
      あるテナントが分解した場合、ドンのデータがどのテナントに属するか整理のうえ、新規テナントにデータを移行しなくてはいけない。ユーザーも同様である。
    • テナント分離パターン
      サービスを提供する際には、サービスを提供するのに必要なリソースを共有してどのリソースを共有して、どのリソースを分離するのか検討が必要。
      一方で、SaaS提供事業者は複数の企業から大切なデータを預かっており、仮にリソースを共有することで、他のテナントの情報に間違ってアクセスできる状態になった場合、顧客への損害賠償ならびに解約数の増大に発展する。

    【テナント分離のポイント】

    ①事業目標
    ・今後もSaaSビジネスをスケールアップさせていくのか
    ・少数の利用者に対して高い価値を提供するのか。
    ②提供するサービスの性質
    ・提供する機能がミッションクリティカルな業務に利用されるものか。
    ・多少のシステムダウンが許されるのか。
    ③顧客のニーズ
    企業の必要条件を実現できるようなSaaSサービスであるか。
    ④開発・運用エンジニアのリソース
    ・SaaSビジネスの立ち上げ時点や初期リリース時点では、十分なリソースを確保できないケースもある。その場合、開発・運用負荷を下げやすいテナント分離方法を採用すべき。
    ・ビジネス拡大においてリソース不足がボトルネックとならないように、機能の共通化や運用面における自動化もポイントとなる。

    【テナントの境界を意識することの重要性】
    自社のアーキテクチャがどのようにテナントを分離しているか、意識すること。
    データベースレベルで分離しているのか、行レベルで分離しているのかによって、テストの重要度や必要な工数、作業時の注意レベルは変わっていく。

    【テナントのデータ移動】
    データの抽出と別の環境への挿入作業が必要。(ダウンタイムの確保が論点となる)
    テナントティアごとにDBの構造が異なり、複雑な構造であった場合、データ移行自体をあきらめるのも一つの手段。

    • データパーティショニング(データの分離方法)

    どのようなレベルでデータストアを分離するか、テナント同士のデータを明確に分離する。
    セキュリティ要件、コスト、パフォーマンスなどを考慮して適切なデータパーティショニングが必要になる。サービスの特性に応じた設計が必要になる。

    図の左に行くほどセキュリティリスクやノイジーネイバーのリスクは減っていく。その反面、効率は悪くなる。右に行くほど、セキュリティリスクやノイジーネイバーのリスクは高くなる。

    【分離方法】

    データベース分離
    テナント毎に個別にデータベースを構築する方法。
    テナントのデータはほかのテナントから完全に分離され、テナント毎にスキーマを餅、管理や管理なども個別に行うことができる。
    【メリット】
    ①テナント間のクロスアクセス防止
    ②テナントレベルのSLA
    ③テナント毎の要件への対応
    【デメリット】
    ・管理の煩雑さ
    オンボーディングのプロセスではテナント毎にデータベースの構築や設定を行う必要がある。そのため、運用時には多数のデータベースに対して監視を行う必要がある。
    ・コスト増加
    テナント間でのリソース調整が難しい。
    行分離
    共通のデータベース・スキーマにて、すべてのテナントのデータを扱う方法。
    テナントを区別するカラムを用意するなど、行レベルでの制御が必要になる。
    行レベルでの分離ではカラムにテナントのIDなどの識別子を設定し、行単位でテナントのデータを分離する。
    【メリット】
    ①アジリティの確保
    各テナントのデータベース環境を共通化できるため、機能拡張や取り扱うデータの追加において、変更を迅速に反映できる。
    ②モニタリングと管理のしやすさ
    単一のストレージやデータベースを管理するだけで各消費量・利用状況などのモニタリングや運用管理がしやすい
    ③コスト最適化
    【デメリット】
    ①影響範囲を狭めるための対策が必要
    共通のストレージ環境で複数のデータを取り扱うため、そのストレージがダウンした場合、すべてのテナントがサービスを利用できなくなる。
    ②特定のテナントにおける占有的な利用
    特定のテナントがデータベースへ多数アクセスした場合に、他のテナントが十分なパフォーマン氏でサービスを利用できなくなる。
    スキーマ分離
    共通のデータベース内に、テナントごとにスキーマを構築する方法。
    【メリット】
    データベース分離と行分離を両方享受できる。
    テナント毎にデータベースを構築しないため、オンボーディングプロセスなどを簡素化できる。
    【デメリット】
    データベース分離と行分離のデメリットをうける。ノイジーネイバーの可能性がある。
    ハイブリッド
    テナントのニーズに応じて、それぞれの分離手段を組み合わせる方法。
    物理的なデータベースは分離しつつも、データアクセス方法を分離方法によらず共通化することが有効。

    ②迅速なサービス改善を実現するアーキテクチャの検討

    • クラウドサービスの活用
      いかに価値の高いものにフォーカスして開発を進めるかは重要な要素である。
      外部サービスを活用して、開発のボリューム減らすことが可能であり、専門性の高いサービスに対して利用することでリスクヘッジをすることができる。

    ➡顧客のニーズに向き合い、柔軟で迅速なサービス改善を実現することで顧客のサービス継続率を高めることができる。

    • マイクロサービスの活用
      1つの大きなアプリケーションを細かい機能・サービスに分解し、各単位の機能・サービスを連携させながらシステムを動かす。サービスを柔軟にかつ迅速に変化させる有効な手段の一つ。

    【メリット】

    ①俊敏性を高める CI/CD
    俊敏性を高めるCI(継続的インテグレーション)・CD(継続的デリバリー)を実現。
    コード更新など影響範囲が限定的であり、影響分析・修正対応が用意。新しいアイディアや機能を実験的に試しやすい。失敗したとしても、ロールバックが可能。
    ②小さなチーム単位による俊敏な対応力
    複数のコンパクトな組織に分解することで、各組織の活動効率や対応スピードの向上が期待できる。
    結果的に、俊敏な対応力を持った組織が作られ、開発サイクルの短縮および生産性の向上につながる。あくまで大人数を想定しており、10数名の場合はそもそも機能しない。
    ③必要な機能だけ柔軟にスケーリング
    マイクロサービスで機能を分割することで特定の機能に絞ったスケーリングが容易になる。
    ④一部機能の再利用
    ソフトウェアを小さい機能に分けるマイクロサービスは機能を組み合わせることで再利用が可能。
    マイクロサービスにおける各機能は特定の明確な役割をもった構成要素として働く。
    一度作成した構成要素は別のソフトウェアを作成する際に活用できる。
    開発者はいちから機能開発を行う必要がなく、俊敏性の向上につながる。
    ⑤サービス独立によるアプリケーションの耐障害性の向上
    マイクロサービスでは耐障害性も向上する。全体への影響を最小限に抑えられる。
    しかし、マイクロサービスはオーバースペックになる可能性がある。そのため、モジュラーモノリスを検討するようにすること。

    ※モジュラーモノリスとは
    サービス分割はしないが、同一コードベース内でモジュールを分けてモジュール間の依存関係がない形で実装する

    ③セキュリティの強化

    一般的なWebアプリケーションに求められるOWASP(Open Web Application Security Project)が提唱するセキュリティリスクに向き合う必要がある。

    加え、「QWASP Top10」(2021)が掲げるセキュリティリスクTop10は要確認。

    1. アクセス制御の不備
    2. 暗号化の失敗
    3. インジェクション
    4. 安全が家訓印されない不安な設計
    5. セキュリティの設定ミス
    6. 脆弱で古くなったコンポーネント
    7. 識別と認証の失敗
    8. ソフトウェアとデータの整合性の不具合
    9. セキュリティログとモニタリングの失敗
    10. サーバーサイドリクエストフォージェリ(SSRF)

    ④拡張性の担保

    SaaSはソフトウェアに価値を乗せ続けることで無限にスケール可能。当然、スケールに伴う運用コストは極力増大させないこと。ソフトウェア内で自動的な処理が望まれる。
    (顧客の増加に比例して契約、アカウント開設、請求などの人手作業が増えないようにすること)

    既存ユーザーばかりに偏らず、新規ユーザーが提供するSaaSサービスに対して、比較的理解しやすいように拡張性を見直し、サービスの有用性を実感させること。

    • ユーザーオンボーディング(新規契約者の活用促進ミーティング)
      顧客にサービスの使用方法を理解してもらい、自ら利用できる状態になってもらうこと。
      顧客が困っていることやわからないことに対して、「マンツーマン」、「説明会」、「動画学習」など状況に合わせて提供する。

    ※UIや機能を作る。処理の自動化など、ユーザー側に負担をかけないように設計・開発段階で考慮しておくと有効。


    ⑤料金プランの設計と請求方法の確立

    ビジネスのフェーズや提供する業務の種類や顧客ターゲットなど、様々な要素を考慮して自社のサービスに適した設定が必要。
    自社でシステムを構築する方法と、サードパーティ(ビリングプロバイダー)が提供するサービスを利用する方法がある。いづれの方法でも、支払処理をするコンポーネントはメインサービスから独立させるべき。
    (処理の内容や目的が異なるため)

    ※定額料金でなく、従量課金であれば課金の指標となるデータを毎月計測して利用料を決定すること。

    料金プランの作成○ペルソナの定義
    どんな価値を提供するか明確にし、その対価としてどんな料金プランを作成するか。
    別々の価値を提供するには複数の料金プランを準備して、プランによって提供する機能を明確化し、価格設定も別々にする。
    ➡柔軟な料金プランの設定により適切にビジネスを成長させること。
    価格設定プロダクト開発に要したコスト、サービス運用に必要なコストから料金を設計
    SaaS開発では開発要員の増減などコストが変動する要素が多く、サブスクリプションでは利益を得られないケースがある。
    競合プロダクトベースに料金を設計する
    競合他社と類似した金額だと、コスト面において差別化を図る子ことができなくなるため注意。
    プロダクトが提供する価値から料金を設計する
    ・SaaSプロダクトのコストや機能、サービスなどの観点から顧客への付加価値を考慮し検討する。
    継続的な機能やアップデートやサービス改善に伴い、料金を段階的に上げていくことができる。開発コストを一定に抑えることができれば、プロダクトの成長に伴って収益性を高めていける。
    • メータリング
      ユーザーがSaaSをどのように利用しているか評価する指標。情報をビリングで活用することを目的とする。料金プランの設計後はメータリングで取得するデータによって料金が決定する。
      SaaSは課金形態や料金プランによって、利用できる機能に上限があるため指標が必要になる。
      メータリングの指標となるプランごとの料金を設定出来たら、ビリングユニットと組み合わせて使用状況を把握する仕組みを用意する。

    ※ビリングユニット:料金プランを設計するうえでベースとなるデータの組み合わせ

    ※SaaSの利用状況やサービス、機能の利用をイベントとして記録するために、メータリング用のAPIなどを用意するとよい。

    • ビリング
      SaaSの課金形態や料金プランに応じて、テナントに対して利用料金を請求する仕組み。
      メータリングで得られた情報(利用料・アクティビティなど)を利用プランに紐づけ、課金額を算出する。ビリングの方法やメータリングで評価する対象の設計が必要。
      ※サードパーティを利用することでビジネスを加速させられる。

    取り扱うデータの量が増加すれば、負荷が上がる。また請求額に直結するためミスの許容ができない。また、料金プランと合わせて従量課金がお客様の価値につながるか、本当にメータリングが必要なポイントがどこか、見極めた設計が必要。


    ⑥データの活用

    顧客増加に伴い、すべての顧客の多種多様なアクティビティデータをSaaS提供事業者が保有できることが大きな特徴。(すべての顧客の行動データを把握)

    テナントアクティビティのデータなどを使って、「どのプランにどの程度のコストが発生しているか」、「各プランの値付けが妥当であるかどうか」テナント別のコスト効率を把握すること。
    そのために、システム内部の状態や統計データを観測可能な状態にし、SaaS利用者の体験向上につなげられるように分析すること。新しいナレッジや継続的な機能改善、ユーザー体験向上につなげる。

    ※リリース後も顧客のアクティビティデータやプロダクト稼働状況を様々な観点で監視・把握する必要がある。

    【取得すべきデータ】

    • テナントの活動状況の把握
      →アクセス頻度、ログイン時間、テナントティアごとのアクティブなテナント数
      →サービスを利用する期間、時間帯
    • 処理パフォーマンス状況の把握
      →テナントごとの処理の実施時間
      →テナント毎の処理結果ログ
    • コスト、収益性の把握
      →テナントティアごとのCPUなどのリソース
      →テナントティアごとのストレージ利用量など

    • 可観測性
      システムのアウトプット及ぼす影響をシステム内部の情報からいかに推測できるかの尺度。

      下記ポイント3種を組み合わせることでタイムリーな検知・対処を実現。顧客のアクティビティデータやプロダクト稼働状況から得られる結果をもとに、新たな改善へとつなげていく継続的な活動はSaaSビジネスの成功に必要不可欠。

      【可観測性の重要なポイント】
      各テナントの活動状況を把握するためには、ツールの導入し、ログやメトリクスを収集。
      ※テナントに紐づけた形でログの出力やメトリクスの取得が必要(テナントIDで区別)
      ※考慮すべきポイントは「活動データの取得」「集計・可視化」
       ➡収集したデータはダッシュボードで表示

      メトリクス
      システムのパフォーマンスや稼働状況の基準となる指標。

      ●ログ
      運用していく中で不測の事態が起こった際などに、ログをたどることで不具合が発生している箇所、日時、ユーザー、端末などの詳細情報を把握できる。

      ●トレース
      複数のシステムや機能をまたいで全体的にシステムの動作状況を追跡する考え方。
      「システム全体として稼働状況に問題がないか」、「特定の箇所がボトルネックになっていないか」などを検知できる。

    ※これらのデータは膨大であるためデータレイクのようなプラクティスを活用し、必要なデータ加工(ETL処理)BIツールなどを用いて可視化できるようにするとよい。

    【テナントのアクティビティデータを収集】
    各テナントを区分したうえで、テナントが利用しているリソースを把握できるようにする。
    テナントごとのシステム利用状況の把握は、SaaSビジネスとしてコスト算定や価格決めなどの根拠情報として活用できる。

    • これらデータは管理ビュー上にて確認できるようにする。
    • 運用業務として各テナントへの個別対応作業が想定される。
    • 運用面を考慮して、各テナントのアクティビティやワークロードを確認できるビューが必要。

    【テナントごとの消費リソースの監視と制御】

    テナントティアを区別したサービスを提供するうえでリソース状況の確認。

    ※テナントがプランの制限量を超えてストレージを利用しようとした場合、利用にストップをかけるか、アップグレードを促すなどの対応が必要である。

    【テナントの活動を把握】
    アプリケーションにテナントを区別するためのコードを挿入し、テナントの活動を区別できるようにする。これらの情報をログファイルとして出力し、データウェアハウスなどを活用して分析。

    【テナントの活動状況を可視化】
    特定のテナントを抽出してデータを表示できるような環境を用意し、テナント別の傾向やシステム利用状況などをインサイトとして確認できるようにする。
    ※これらの情報を定期的に確認することで、システムの障害や停止を未然に防げる。

    プロダクト開発手法

    ●BizDevOps

    ビジネス部門、開発部門、運用部門の3者が一体となった密に連携した組織運営が重要であり、プロジェクトを推進するが概念や考え方。3者同一のゴールを設定し、目的達成のために各ロールが協調的に働く。結果が3者の効率、生産性を円滑なものとなるようにする。

    • 各部門がデータを共有して定期的・定量的な視点からデータ分析できる。
    • 共通のKPIやコミュニケーション方法を決めて生産性を高める工夫が必要。

    【例】柔軟な機能追加と安定したシステムを導入するための自動化ツールの作成・導入

    頻繁に機能の変更など改修を行う場合は、問題が発生しないように製品の信頼性を高める。
    それにより、商品の販促にもつながる

    【うまく機能しない場合】
    ①開発業務を外部の開発会社へ丸投げした場合

    • 納品義務だけを背負っているため、仮説と検証を繰り返して成長させることができない
    • 一括請負の場合は、システムの明確な完成基準が定められない
    • 改修が一回で反映されないケースが多いと思われる

    ②ビジネス部門と開発部門が分断している場合
    部門間のコミュニケーション不足や、要件のすり合わせ認識に齟齬が発生する

    ●MVP/プロトタイプ

    ※MVP(Minimum Viable Product)

    最小単位で動くプロダクトを開発し、スピーディーにリリースすることでユーザーに体験を与え、早々にフィードバックを得ることができる。

    • 仮説検証を行える価値のある最小のプロダクトをいかに素早くリリースできるか。最小プロダクトを早期にリリースしてユーザーからフィードバックを受けることが重要。
    • アジリティの高い開発を実現するためには、ビジネス部門・開発部門・運用部門のシームレスな連携や協力が不可欠。

    開発後

    立ち上げ期・潜在顧客のニーズ調査、ビジネスプランの立案、プロトタイプの準備
    ※素早いプロトタイプの作成、展開により市場の反応を直接検証すること

    ・サービス利用者増加後はユーザー体験(UX)を調査する。
    ・調査結果を製品に反映させて、ユーザー目線に立った、製品のニーズを理解する。
     その後ユーザーの継続率を参照する。
    ・ターゲットユーザの明確化
    ・ユーザー満足度やユーザー継続率の把握
    運用期※顧客数がある程度増加していることが前提
    ▲運用コストが増加させないこと
    SaaSの特徴としてスケーリングに柔軟性があるため、コスト効率性がわるくなる。
    ➡運用コスト効率化のためには顧客数増加に伴う対応を自動化できるようにすること

    【例】ユーザー自らログインできる、スケーリング機能など
    つまり顧客増大による運用コストを増大させないための自動化検討
    成長期※大幅に顧客数が増加していることが前提
    各顧客との接点の確立が難しくなっていく状態。
    ・顧客のアクティビティデータを収集・分析し、機能改善につなげていく継続的な取り組みが必要。
    ・ユーザーの数が膨大であるときは要望が与えるビジネスインパクトに優先順位をつけて改善を進めていく。

    オフボード

    顧客がサービスの契約を終了した場合に必要な対応。

    【オフボード処理】

    • ステータスフラグで利用状況確認
    • お客様に利用停止の連絡、通知。

    【考慮事項】

    • テナント内のデータにアクセスできる期限を検討。
    • 法的な要件を考慮すべき
      ※契約書や注文書といった帳簿・書類や社会保険、雇用に関する書類などは法令上保管期間が定められている。
    • 一定期間は再契約を見越してデータを保管するか、相手方に保持・削除を選択させるか。

    【再オンボード時の対応】

    ステータスフラグを変更する。テナントデータがあれば、ユーザー登録の手間が省ける。


    Learn by Hands On

    CategoryTutorial Title概要
    アカウントの管理Increase account service quotas with Service QuotasService Quotasを使用したクォータ緩和申請方法、現在までのリクエスト確認。
    ※入門Getting Started with the AWS Management Consoleコンソールホーム、アカウント情報、AWS リージョンを切り替、コンソールホームでの操作方法
    Visualize data in Amazon RDS for SQL Server using Amazon QuickSight
    Build a training dataset with Amazon SageMaker Ground Truth
    Create business intelligence dashboards with Amazon QuickSight
    Optimizing Amazon EMR clusters for cost and scale with EC2 Spot Instances and Amazon EMR