SBクラウド株式会社logo

MaxCompute連載3:DataWorksにおける基本モードと標準モード、開発環境と本番環境について

Hi, データエンジニアの大原です。
Alibaba Cloudのデータ処理プラットフォーム「MaxCompute([https://www.alibabacloud.com/product/maxcompute) 」についての連載記事の3回目です。

今回はDataWorksにおける基本モードと標準モード、開発環境と本番環境について説明します。

前回の記事はこちらをご覧ください。 www.sbcloud.co.jp

f:id:sbc_ohara:20210104091159p:plain

前書き

MaxComputeの概要をこのblogにて記載しました。

MaxCompute (旧プロダクト名 ODPS) は、大規模データウェアハウジングのためのフルマネージドかつマルチテナント形式のデータ処理プラットフォームです。さまざまなデータインポートソリューションと分散計算モデルにより、大規模データの効率的な照会、運用コストの削減、データセキュリティを実現します。

f:id:sbc_ohara:20210104133726p:plain

少し前になりますが、MaxComputeについての資料をSlideShareへアップロードしていますので、こちらも参考になればと思います。

www.slideshare.net

今回はAlibaba Cloud MaxComputeを操作するためのDataWorksで基本モードと標準モード、開発環境と本番環境についてを説明します。
これは私自身初めてMaxComputeを操作したときは不慣れだったのか行き詰まった事項なので、次の世代へ伝わりやすいように整理してみました。


基本モード( basic mode)と標準モード(standard mode)の違い

DataWorksは様々なセキュリティ要件および操作制限などの制御要件を持ちながらデータ操作を行うために、『基本モード( basic mode)』と『標準モード(standard mode)』があります。
基本モード( basic mode)は、DataWorks WorkspaceがMaxComputeプロジェクトに直接対応することを意味します。1、2人など小人数規模での作業に適しています。 後述する『開発環境(development environment)』および『本番環境(production environment)』はセットアップできず、シンプルなデータ開発しか実行できません。
標準モード(standard mode)は、1つのDataWorksスペースが、2つのMaxComputeプロジェクトに対応することを意味します。コードなど開発や編集は全て開発環境(development environment)のみ実施となり、本番環境(production environment)でコードや開発・編集をすることはできません。これは大規模ユーザーでの開発もしくはシステムが大規模となるシナリオにて、デグレを抑えつつプロジェクトの管理者または運用、保守の権限を持つメンバーによって承認しながらプロセスを進めることが出来ます。

f:id:sbc_ohara:20210310114634p:plain

www.alibabacloud.com

開発環境と本番環境


基本モード(basic mode)のプロジェクト作成を試してみる

閑話休題、実際にコンソール上で操作し、挙動を確認してみます。

基本モード(basic mode)

基本モード(basic mode)は上記説明通り、DataWorks WorkSpaceが(開発環境と本番環境に分けず)一つのコンピューティングエンジンに対応することを意味します。コンピューティングエンジンはここではMaxComputeを使って説明していますが、DataWorksはMaxComputeのほか、E-MapReduce、Hologresなどのプロダクトサービスにも対応しており、基本モードであればデータベースデータベース、インスタンスなどに直接対応となります。

長所:
・ 開発者はすぐに本番環境へ反映するため、クイックスタートとしても使いやすい
・ タスクをサブミット後、デプロイする必要はなく、直接スケジュールシステムに入れられ、定期的実行されるため、データがスムーズに生成することができます

短所:
・開発者はいつでもタスクを直接、承認なしでスケジュールシステムにサブミットできるため、(デグレやテーブル構成変更などの考慮を含め)本番環境にも影響を与えやすい
・ 開発者はMaxComputeに対する全ての操作権限を持つため、データセキュリティにもリスクを与えやすい。

f:id:sbc_ohara:20210310123649p:plain

基本モード(basic mode)プロジェクトの作成方法

DataWorks WorkSpaceを作成する時点で選定できます。
ちなみにWorkSpace作成後、基本モードを標準モードへ切り替えすることは出来ないので、注意が必要です。

f:id:sbc_ohara:20210310123912p:plain

基本モード(basic mode)の場合、MaxCompute操作ユーザー(visitor identity)の設定について

DataWorks Workspace作成後、MaxComputeを操作するための操作ユーザーおよびアクセス許可を定義づける必要があります。
www.alibabacloud.com

DataWorks のメンバーの権限ロールの種類としては「Project Owner」、「Workspace Manager」、「Development」、「O&M」、「Deploy」、「Visitor」があります。
MaxComputeのメンバーの権限ロールの種類としては「Project Owner」「Role_Project_Admin」「Role_Project_Dev」「Role_Project_Pe」「Role_Project_Deploy」「Role_Project_Guest」「Role_Project_Security」があります。

※メンバーの役割についてはこちらが詳しいです。
www.alibabacloud.com f:id:sbc_ohara:20210310125151p:plain

基本モードの場合、MaxComputeのメンバーの権限ロールは、DataWorks Workspaceの「Account for Accessing MaxCompute」の設定で、「Alibaba Cloud primary account」か「Node Owner」を選定するかで扱うロールの範囲等が決まります。
注意として、標準モードだと別のロール範囲での扱いとなります。
f:id:sbc_ohara:20210310130404p:plain

「Account for Accessing MaxCompute」の設定でAlibaba Cloud primary accountの場合

・ DataWorksは様々な権限ロールを持つユーザーからMaxComputeのタスクをサブミットしても、MaxComputeではOwnerのロールでタスクを実行されます
・ RAMユーザーはMaxComputeに対し、操作やタスク実行等の権限を持ちません

f:id:sbc_ohara:20210310130139p:plain

「Account for Accessing MaxCompute」の設定でNode Ownerの場合

・ DataWorksでMaxComputeのタスクをサブミットしたロールに対応するロールでそれぞれタスクが実行されます
・ RAMユーザーはMaxComputeで対応するロールが付与されます

f:id:sbc_ohara:20210310130718p:plain

MaxCompute操作ユーザー(visitor identity)の設定方法および変更方法

MaxCompute操作ユーザー(visitor identity)の設定方法は上述通り、WorkSpace作成時にて設定します。

f:id:sbc_ohara:20210310123912p:plain f:id:sbc_ohara:20210310130404p:plain

一方、WorkSpace作成後、操作ユーザー(visitor identity)を変更したい場合は、以下の方法で設定します。
まずはDataWorks WorkspaceのSetthingを選定します。そこから以下図の通りに MaxCompute visitor identityを変更すれば良いです。

f:id:sbc_ohara:20210310131409p:plain f:id:sbc_ohara:20210310131601p:plain


標準モード(standard mode)のプロジェクト作成を試してみる

今度は標準モード(standard mode)でプロジェクトを作成し、確認してみます。

標準モード(standard mode)とは

標準モード(standard mode)は上記説明通り、一つのDataworks WorkSpaceが開発環境と本番環境の2つのコンピューティングエンジンに対応することを意味します。    

基本モードとの違い:
・すべてのコードは開発環境のみ編集となり、本番環境でコード編集はできません
・タスクをサブミット後、開発環境のスケジュールシステムに入れることが出来ますが、すぐには実行することができません。定期的にタスクを実行させたい場合は、本番環境にデプロイする必要があります
・タスクをデプロイする前に、プロジェクトの管理者もしくは監視者の権限を持つユーザーからの承認が必要です

f:id:sbc_ohara:20210310123514p:plain

標準モード(standard mode)プロジェクトの作成方法

上記、基本モード(basic mode)と同じよにDataWorks WorkSpaceを作成する時点で選定できます。
ちなみにWorkSpace作成後、標準モードを基本モードへ切り替えすることは出来ないので、注意が必要です。

f:id:sbc_ohara:20210310131838p:plain

違いとして、作成を進めると、権限ロールなどの設定が問われます。ここもProjectなど状況に応じて対応してください。
f:id:sbc_ohara:20210310131948p:plain

標準モード(standard mode)の場合、MaxCompute操作ユーザー(visitor identity)の設定について

先述通り、DataWorks Workspace作成後、MaxComputeを操作するための操作ユーザーおよびアクセス許可を定義づける必要があります。
www.alibabacloud.com

DataWorks のメンバーの権限ロールの種類としては「Project Owner」、「Workspace Manager」、「Development」、「O&M」、「Deploy」、「Visitor」があります。
MaxComputeのメンバーの権限ロールの種類としては「Project Owner」「Role_Project_Admin」「Role_Project_Dev」「Role_Project_Pe」「Role_Project_Deploy」「Role_Project_Guest」「Role_Project_Security」があります。

標準モードの場合、MaxCompute操作ユーザー(visitor identity)は基本的に以下の設定で定義づけられています(カスタマイズ不可)
MaxCompute開発環境の操作ユーザー(visitor identity) :Task owner MaxCompute本番環境の操作ユーザー(visitor identity) :Alibaba Cloud primary account (DataWorks WorkSpaceの作成者はRAMユーザーの場合はAlibaba Cloud sub-accountとなります)

f:id:sbc_ohara:20210310132520p:plain

開発環境/本番環境にデータソースを追加する方法

DataIntegration画面から、新規データソースを作成します。
f:id:sbc_ohara:20210310133814p:plain ここで、データソースを設定するときに、開発環境と本番環境プラグインをチェックすることで、開発環境/本番環境にデータソースを追加することができます。
Development・・・開発環境にデータソースを追加
Production・・・本番環境にデータソースを追加

f:id:sbc_ohara:20210310133916p:plain

タスクを開発環境から本番環境にデプロイする方法

ユーザーはDataWorks DataStdio 開発環境にてタスクを作成後、これを本番環境にデプロイしたい。その場合はこのような流れで設定します。
ここでは同期タスクを例として説明します。 まずは同期タスクを作成します。
f:id:sbc_ohara:20210310134805p:plain

DataStdio(開発環境)で何か作成したあと、画像のボタン「タスクをサブミット」をクリックします。
f:id:sbc_ohara:20210310134849p:plain

タスクのサブミットが成功したら、緑色のアラートメッセージが出ます。そのあと、 赤矢印の「Deploy」をクリックします。
f:id:sbc_ohara:20210310135030p:plain

DataWorks Deploy画面に遷移したら、先ほどサブミットしたタスクを「Deploy」します。
f:id:sbc_ohara:20210310135151p:plain

タスクがデプロイされます。デプロイ結果やリソース等はPrelease Packageタブから確認できます。
f:id:sbc_ohara:20210310135257p:plain

デプロイ後、Operation Centerの画面に遷移します。
Operation Centerは タスクの運用やメンテナンス、Job処理のステータスや結果、データのライフサイクル管理などを行うビッグデータ運用プラットフォームです。
f:id:sbc_ohara:20210310135359p:plain

タスクがOperation Centerにて表示されます。
f:id:sbc_ohara:20210310135532p:plain

MaxCompute Tableで開発環境/本番環境にスイッチする方法

操作ユーザーはMaxCompute Tableで開発環境、本番環境をシンプルにスイッチングすることができます。
DataIntegration画面から、新規オフライン同期タスクを開きます。
f:id:sbc_ohara:20210310133302p:plain

Workspace Tables画面に入ったあと、画像のスイッチボタンをクリックすると、開発環境/本番環境へスイッチすることができます。

f:id:sbc_ohara:20210310133504p:plain

OperationCenterで開発環境/本番環境にスイッチする方法

Operation Centerでの有効技ですが、ここで操作ユーザーは開発環境、本番環境をシンプルにスイッチングすることができます。
Operation Centerは タスクの運用やメンテナンス、Job処理のステータスや結果、データのライフサイクル管理などを行うビッグデータ運用プラットフォームです。
まずはOperation Centerの画面をひらきます。
f:id:sbc_ohara:20210310132949p:plain

URLの切り替えで開発環境/本番環境にスイッチすることができます。
URLで「env=prod」の場合は本番環境です。
f:id:sbc_ohara:20210310133015p:plain

URLで「env=dev」の場合は開発環境です。
f:id:sbc_ohara:20210310133041p:plain


たぶんよくある質問

質問: なぜ、このように開発環境と本番環境、基本モードと標準モードがあるのか?
おおはら回答: DataWorks 開発者に問い合わせた結果、回答としては、

・ 開発環境(検証環境)を使うことで、本番運用中の環境はもちろん、他の開発者に干渉しないで済む(仮に再起不能なほど壊しても迷惑をかけない)
・ 開発環境(検証環境)があればMaxComputeテーブルの構成変更などがあった場合、全員で同期する段取りがスムーズになる
・ 本番環境はお客様の財産なので、操作できるメンバーは厳密にコントロールする必要がある

とのことでした。

最後に

DataWorksにおける基本モードと標準モード、開発環境と本番環境についてを説明しました。
これを使って小人数規模から企業レベルの大規模までの開発・運用に柔軟に対応できると思いますので、ご参考にいただければ幸いです。

最後までお読みいただきありがとうございました。

MaxCompute連載シリーズ

www.sbcloud.co.jp www.sbcloud.co.jp www.sbcloud.co.jp www.sbcloud.co.jp www.sbcloud.co.jp