2020-12-26に投稿

Azure Administratorへの道(3回:ストレージ関連)

読了目安:11分

Qrunchからお引越しした記事です : created_at: 2019-08-24 15:55:30 +0900

備忘録的に覚えておきたい箇所を列挙メモ。

スキルの評価対応

ストレージの作成と管理

Azure バックアップの実装

・Recovery Service Vault ⇒ 日本語だとリカバリーサービス「コンテナ」になる。
 (日本語もボルトに統一してくれよ…最初Valutって書かれていてピンとこなかったよ…)
・File単位のリストア
 ⇒リストア結果をディスクとして一時マウントする仕組み。
・Azure Backup Agent(MARS:Microsoft Azure Recovery Services)
 オンプレ側のマシンに導入。ファイルなどのバックアップができる。
 こちらもリストア時は一時マウントになる。
・Azure Backup Server (MABS:Microsoft Azure Backup Server)
 MARSでカバーできない範囲をバックアップしたいときに導入が必要。
 マシン全体のバックアップやアプリケーションのバックアップなど。

ストレージアカウント

・レプリケーション
 LRS(ローカル冗長)、ZRS(ゾーン冗長)、GRS(地理冗長)に加えて、「RA-GRS」(読み取り可能な地理冗長)がある。
 GRSは通常、レプリケート先のサイトの情報はMSしかアクセスできない(MSが復旧処理するまで使えない)が、
 RA-GRSは平常時でもアクセス可能。
・アカウントの種類
 BLOB、Storage(V1)、StorageV2がある。
 ①BLOB:BLOBしか使えない。
 ②V1:ページ、キュー、テーブル、BLOB全部使える。クラシックのリソース管理用。
 ③V2:ページ、キュー、テーブル、BLOB全部使える。リソースマネージャでの管理。
 通常、V2一択。
・アクセスキー
 このキーを渡すとストレージに対してフルアクセスできる。
 (何でもできるので取り扱い注意)
 キーの値はリフレッシュ(更新)でき、定期的な更新が推奨される。
・SAS:Shared Access Signature
 アクセスキーとは違い、アクセス内容を制限できるアクセス署名。
 読み取りのみ許可、アクセス元IPレンジの制限、プロトコルの制限、期間の制限、などなど。
・Stored Access Policy
 期間を決めてアクセス許可を設定できるポリシー。
 SASより大雑把なサービス(BLOB、キュー、テーブル、Files)レベルの制御。
・Azure Key Vault
 日本語だと「キーコンテナ」。
 色々なキーを管理するサービスだが、ストレージアカウントキーの自動管理もやろうと思えばできるらしい。
・AzureAD&RBACを利用したアクセス制御
 BLOBとキューのみ制御可能。
 AureAppServiceからストレージコンテナへのログファイル書き出し、などに有効。
 IAM制御にてAppServiceに対して必要なロールを割り当ててやればいい。
 (IAM制御でユーザだけでなくAppにも権限を割り当てできるのは初耳だった)
・暗号化
 デフォルトでMSのキーによって暗号化されている。
 独自のキーで暗号化することも可能。その場合、暗号化のキーをAzure Key Vaultで管理する必要がある。
・ネットワークアクセス
 デフォルトでインターネット上のどこからでも接近できる。
 設定変更によりアクセス可能なバプリックIPを指定したり、VNet内からアクセス可能にできる。
 ⇒Vnet側のほうにもサービスエンドポイントの設定が必要。
・StorageExplorer
 ストレージの中身を参照するツール。Desktop版とWeb版があり、Web版はPortalから使える。
・診断ログ
 診断設定をオンにしている場合は「$logs」というBLOBコンテナにログが格納される。
 StorageExplorerでファイルを取得できるらしい(が、WEB版のStorageExplorerで参照しても該当コンテナが無かった)
 取得したログはMicrosoft Message Analyzerで解析すると見やすい。
・メトリック
 メトリックも診断設定をオンにしているとテーブルに出力される模様。
 メトリック情報からアラートを作成したりできる。

BLOB Storage

・ストレージアカウントのうち、「BLOB」に該当する箇所の補足追記。
・BLOBの形式は3種類。
 ①Block Blob
  複数ブロックに分けられたBLOB。ファイル追加、削除など普通に使う場合はこれ。4.7TBまで。
 ②Append Blob
  追加のみのBLOB。ログ保管など、ファイルの変更や削除をしない場合に使う。
 ③Page Blob
  VMのディスク(VHD)を置く。最大8TBまで。
・ストレージ層
 StorageV2のアカウントでのみサポート。次の3種類。
 ①ホット:データ保存のコストが高く、データアクセスのコストが低い(頻繁に更新する場合に推奨)
 ②クール:データ保存のコストが低く、データアクセスのコストが高い(保管メインの場合に推奨)
 ③アーカイブ:最もデータ保存のコストが低いが、データ取り出しに数時間単位でかかる(長期保管用)
 ※注意:ストレージ層を変更(移動)するとその移動量に対して課金される。(データアクセス分の課金がかかる)
 既定でホットにするかクールにするかをストレージアカウントで設定できる。
・コンテナ
 BLOBサービス内に無制限に作成できる。
 外部からのアクセスレベルを設定できる。
 ①Private Access Level(デフォルト)
  認証が必要。匿名アクセス不可。
 ②Blob Access Level
  BLOBへ読み取りアクセスはできるが、コンテナの内容をリスト化して閲覧することはできない。
  ⇒URLを知っている特定ファイルにしかアクセスできない
 ③Container Access Level
  指定のコンテナの内容をリスト化して閲覧できる。
・コンテナには不変ストレージの設定ができる。(WORM:Write Once Read Many ともいう)
 この設定をするとアップロードしたデータの更新・削除ができない。
 ⇒更新してはならないケース(金融、医療、法律、保険分野など)で利用する。
 一定期間は削除不可、またはホールド(Legal Hold)解除するまでは削除不可のどちらかを指定できる。
・Lifecycle Management
 ファイルのライフサイクルを指定できる。
 N日経過後にクール層へ移動、M日経過後にアーカイブ層へ移動、X日経過後に削除、のような指定ができる。
 ⇒削除のポリシーはBLOBスナップショットごと削除してくれる。
・静的Webサイトホスティング
 有効にし、HTMLやCSS、Javascript、画像ファイルなどをアップロードするとWEBサイトとして使える。
 カスタムドメインの設定も可能。
・AzCopy
 BLOBにファイルをアップロードするコマンドラインツール。バッチ処理向き。
 どことなくrobocopyチック。指定オプションも沢山ある。
・ストレージ操作の.NETのライブラリもあるため、PGに組み込みで使える。
・Azure Search
 Azure Searchでストレージ内検索ができる。
 Azure Search自体はAzureのクラウド検索システム。
 前文検索的な動きをして、呼び出しもとに結果を返してくれる。
 プログラムに組み込んで使う。コグニティブのオプションで画像内検索とかもできるらしい。
 BLOB内のファイルにメタデータをつけていればメタデータでの検索も可能。

Azure CDN

・ユーザにコンテンツを分散して配信するサービス。(書いててもよく分からない…)
・BLOBストレージに置いて展開したいファイルへのアクセスについて、
 ユーザは世界中に存在するエッジサーバからファイルを取得できるようになる。
・なので「ゲームの新作トレーラーを0時に世界同時公開!」とかそういう時に利用することで、
 ユーザがすばやくアクセスできたり、中央サーバへの負荷やトラフィックが抑えられる、という感じか。
 (現状、業務で使うことはなさそうだな…)
・製品(価格帯)が4つある。
 Azure CDN Standard from Microsoft
 Azure CDN Standard from Akamai
 Azure CDN Standard from Verizon
 Azure CDN Premium from Verizon
・プロファイルを作成し、ストレージアカウントに割り当てる。
 その際にエンドポイント名称(グローバルで一意)を決める。
・CDNには次のURLでアクセスする。
 http://(EndpointName).azureedge.net/(myPublicContainer)/(BlobName)
・基本、CDNを使うときBLOBストレージのアクセスレベルはBLOBかContainer(外部アクセス可)である。
 これをPrivateのままにしたい場合はSASトークンを利用してアクセスする。
 この場合、URLの後ろにSASトークンを付与する。
・「URLの後ろにSASトークンつけると結局SASトークンが公開されていることになる!困る!」と言うときは
 「Premium from Verizon」であればURL書き換え機能で対応できる。
 これで、指定のURLにアクセスした際に自動でURL末尾にSASトークンを付与するようにできる。
・利用の際、CORS(クロスオリジンリソース共有)を考慮する必要があるらしい。(何だそれは…)
 通常下記の通りらしい。

クロスサイト スクリプティング攻撃の可能性を低減させるために、すべての最新の Web ブラウザーには
同一オリジン ポリシーと呼ばれるセキュリティ制限が実装されています。
これにより、Web ページは他のドメイン内の API を呼び出すことができません。

 これをなんとかするための話らしい。

CORS (クロス オリジン リソース共有) は、あるドメインで実行されている Web アプリケーションが
別のドメイン内にあるリソースにアクセスできるようにする HTTP 機能です。

 CSNのCORSの欄で設定可能。

Azure Files

・ストレージアカウントのうち、「File」に該当する箇所の補足追記。
・SMBプロトコルを介してアクセスできるのがBLOBとの最大の違い。
 ⇒ファイル共有をクライアントPCでマウントできる。
・ファイル共有で利用する場合、SMB(2.1 or 3.0)でやりとりする。3.0は通信が暗号化されている。
・クライアントが445ポート(SMB)が空いていてインターネットと疎通できないと使えない。
 ⇒REST API経由でやりとりする分にはHTTPS(443)で通信できればよい。
  なのでPowershell経由やCLI経由であれば443でいける。
・クライアントのOSがSMB3.0をサポートしていないと使えない。(Win8.1以降)
 ⇒ストレージアカウントと同一リージョン内のAzure VMならWin2008R2でも接近できる模様。
  (おそらく:同一リージョン内の通信はイントラ扱いになっているから○という感じか)
・AzureAD認証をサポート。
 …しているが、アクセスするにはクライアントマシンがAzureAD DomainService(AADDS)に参加している必要がある。
 また、ADDSドメイン(オンプレやVMのドメコン)に参加しているマシンはAADDSに参加できないため使えない。
 AADDSに参加できるのはAzureのマシンなので、オンプレにいるクライアントPCでも使えない。(使える範囲が狭すぎるよ…)
 ⇒後述のAzure File Syncを使え、とのこと。
 ⇒また、完全な管理者権限が必要な場合はアクセスキーでアクセスする。(AADDSで管理者権限を割り振っても完全でない)
・ファイル共有の最大割り当てサイズは5TBまで。(ストレージアカウント全体では500TB)
 最大ファイルサイズは1TB。
・スナップショットバックアップの取得が可能。
 取得している場合、ファイル共有でファイルのプロパティ「以前のバージョン」より過去ファイルの閲覧・取得が可能。
・AzureBackupを利用した定期的なスナップショット取得もできる。
 ⇒1日1個までらしい。

Azure File Sync

・以下、参考サイト。
 https://cloud.nissho-ele.co.jp/blog/azure-file-sharing/
・Azure Filesとファイルサーバの内容を同期するサービス。
 ファイルサーバは複数台立てることができるため、複数のファイルサーバがAzure Filesを通してファイル内容を同期することができる。
・ファイルサーバを「サーバエンドポイント」、Azure Fileを「クラウドエンドポイント」と呼ぶ。
 1つの同期グループにおいて、クラウンドエンドポイントとサーバエンドポイントは1:Nの関係。
・Azure FilesのバックアップがAzureBackupでできるため、それをもってファイルバックアップとすることができる。
・障害発生時もAzure Filesからファイル復旧できる。
・実ファイルはFilesに保持させ、ファイルサーバ上ではポインタ(ショートカットのようなもの)のみ配置することもできる。
 これをすることによりファイルサーバのディスク容量を節約できる。
・ファイルサーバにエージェントを導入する必要がある。
・Azure File Syncはストレージアカウントと同一リージョンにデプロイする必要がある。
・同期で帯域を食う場合にはQoSをかけられる。(powershell経由)
・ファイルサーバはAzure Filesのファイル共有の要件(SMBのバージョン、ポート445解放)を満たす必要がある。
・ファイルサーバ側にファイルを置くと速やかにAzure Filesに連携される。
 が、Azure Filesに直接ファイルを置くとファイルサーバへの連携に1日かかることもある。(らしい)
・DFS名前空間と組み合わせて使うことができる。

インポートジョブ

・HDDの内容をBLOBコンテナに移動することができる。
・最初に、対象HDDをNTFSフォーマットした後、BitLockerで暗号化する。
・その後、waimportexportツールを使用し、インポート準備ファイル(jrnファイル)を作成する。
 ⇒V1とV2がある。ストレージアカウントがStorageV1、V2の時はV2ツール、BLOBストレージの時はV1を使う。
 ⇒V2では定義(対象ファイルやドライブ情報)などをCSVに記載して管理する。
  Dataset用CSVに対象ファイルを列挙すれば、自動で対象HDDにファイルを収集してくれる。
・その後、AzurePortalからインポートジョブを作成。
 この際、作成したjrnファイルやインポート先のストレージアカウントを指定する。また、配送に関する情報もあわせて入力する。
・ジョブ作成後、ディスクを指定の住所に発送する。だいたいMSの準備が済むまで7~10日くらいかかる。(SLAはない)
 ⇒すぐインポートしなければならない、という要件がある場合はマッチしない。
・発送後、追跡情報の更新(おそらく発送連絡)をする必要がある。
 これを2週間以内に実施しないと自動的にジョブがキャンセルになってしまう。
・到着後、自動的にストレージアカウント内にファイルが追加されている。

エクスポートジョブ

・Azureストレージの内容をHDDに移すことができる。
・まず、エクスポートジョブを作成する。(配送会社や住所の設定、対象ストレージアカウントの設定)
・NTFSフォーマットしたHDDを発送。
 ⇒返送時はBitLockerで暗号化された状態で帰ってくる。
・インポートと同様に配送状況の更新は必須。
・届いたディスクを接続し、BitLockerのキーを入力しデータにアクセスできることを確認。

Azure Data Box

・こちらはAzure側でデータ格納デバイスを用意してくれるデータインポートサービス。
・注文⇒デバイスが届く⇒データを入れる⇒返送⇒データが反映される

所感

・全然業務で使わないような箇所も勉強できて、いい機会にはなった。
・ストレージアカウント周辺は「なんとなく」から「ややしっかり」の理解になった。よかった。
・インポート、エクスポート、DataBoxは仕組みを把握しておくと将来役に立つ日がくるかもしれない。
・Filesは便利だけど使う日がくるかな…
・CDNはたぶう使う日はこない。(転職か異動がないかぎり)

ツイッターでシェア
みんなに共有、忘れないようにメモ

view_list AzureAdministratorへの道
第2回 Azure Administratorへの道(1回:Azure Policy)
第3回 Azure Administratorへの道(2回:Azure MFA)
第4回 Azure Administratorへの道(3回:ストレージ関連)
第5回 Azure Administratorへの道(4回:仮想マシン)
第6回 Azure Administratorへの道(5回:Load Balancer)

ANA

日々勉強中です ( ..)φ

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント