[Cloud] Orchestration 2.0 - creating a storage element

原文はこちら。
https://blogs.oracle.com/pshuff/entry/orchestration_2_0_creating_a

このエントリでは、Oracle OrchestrationでBitnami WordPressインスタンスを使う例を見ていきます。まずはCloud Marketplaceでインスタンスをプロビジョニングします。
Oracle Cloud Marketplace
https://cloud.oracle.com/marketplace/ja_JP/
インストールするインスタンスは以下の場所で見つけることができます。このインスタンスはOracle Linux 6.7ベースです。
WordPress on OL 6.7
https://cloud.oracle.com/marketplace/ja_JP/listing/4980490?_afrLoop=11935810073563805&_afrWindowMode=0&_afrWindowId=1bzhjaylmt_21
このインスタンスの最小プロファイルは、OC3(1 OCPU、7.5 GB RAM)でローカルディスク60GBです。
[アプリケーションの入手]ボタンをクリックすると、Cloud Computeサービスへのインストールプロセスが始まります。[アプリケーションの入手]ボタンをクリックするとプロセスが始まり、Marketplaceから起動可能イメージをダウンロードし、任意のタイミングで新規インスタンスを作成できるイメージとして利用可能になります。デフォルトのサイズは10GBですが、MySQLとWordPressアプリケーションが適切に動作するよう、このインストール・イメージを60GBまで拡大する必要があります。


インスタンスの作成のために、コンピュート・コンソールへ移動し、インスタンスを作成します。プライベート・イメージを選択して、起動するためにダウンロードしたWordPress bitnamiインスタンスが使えるようにします。ネットワーク・セキュリティ・リストやSSHキー、インスタンス名を入力します。

デフォルトのディスクサイズは10GBです。今回はこのままにして、立ち上げ前に構成を
見なおすことにしましょう。

[作成]をクリックすると、クラウドコンソールは3個のオーケストレーションファイルを作成し、WordPressインスタンスを初期化します。最初に作成されたファイルはストレージを定義しています。このファイルは、デフォルトのままであれば、bitnami-wordpress-4.5.3-0-linux-_20160721144012_storage.json と呼ばれるものです。この例では、WordPress_4_5_3_storage.jsonと呼ばれています。このファイルには、OSの立ち上げのために必要なストレージが以下のような形式で記述されています。
{
    "relationships": [],
    "account": "/Compute-metcsgse00028/default",
    "description": "",
    "schedule": {
        "start_time": "2016-07-21T19:40:35Z",
        "stop_time": "2016-07-21T21:50:02Z"
    },
    "oplans": [
        {
            "obj_type": "storage/volume",
            "ha_policy": "",
            "label": "bitnami-wordpress-4.5.3-0-linux-_20160721144012_storage",
            "objects": [
                {
                    "managed": true,
                    "snapshot_id": null,
                    "snapshot_account": null,
                    "machineimage_name": "/Compute-metcsgse00028/marketplace01-user@oracleads.com/bitnami-wordpress-4.5.3-0-linux-oel-6.7-x86_64",
                    "status_timestamp": "2016-07-21T19:44:51Z",
                    "imagelist": "/Compute-metcsgse00028/marketplace01-user@oracleads.com/bitnami-wordpress-4.5.3-0-linux-oel-6.7-x86_64",
                    "writecache": false,
                    "size": "10737418240",
                    "storage_pool": "/compute-us2-z12/cheis01nas100-v1_multipath/storagepool/iscsi/latency_1",
                    "shared": false,
                    "status": "Online",
                    "description": "",
                    "tags": [],
                    "quota": null,
                    "properties": [
                        "/oracle/public/storage/default"
                    ],
                    "account": "/Compute-metcsgse00028/default",
                    "name": "/Compute-metcsgse00028/cloud.admin/bitnami-wordpress-4.5.3-0-linux-_20160721144012_storage",
                    "bootable": true,
                    "hypervisor": null,
                    "uri": null,
                    "imagelist_entry": 1,
                    "snapshot": null
                }
            ]
        }
    ],
    "user": "/Compute-metcsgse00028/cloud.admin",
    "name": "/Compute-metcsgse00028/cloud.admin/bitnami-wordpress-4.5.3-0-linux-_20160721144012_storage"
}
それでは、このファイルの詳細、構造を見ていくことにしましょう。子コンポーネントは無視して構造を分析しましょう。
{
    "relationships": [],
    "account": "/Compute-metcsgse00028/default",
    "description": "",
    "schedule": {…},
    "oplans": […],
    "user": "/Compute-metcsgse00028/cloud.admin",
    "name": "/Compute-metcsgse00028/cloud.admin/bitnami-wordpress-4.5.3-0-linux-_20160721144012_storage"
}
このオブジェクトを定義する7つの要素があることに注意してください。

  1. relationship
    このファイルでは、これが構成の基礎であり、別のオブジェクトとの依存関係を持っていません。
  2. account
    accountは、オブジェクトの所有者および、オブジェクトに関連付けられたセキュリティを定義します。このオブジェクトにアクセスできる、もしくはデフォルトのラベルを使って、すべてのユーザーがアクセスできるようにすることが可能な固有のアカウントをアイデンティティ・ドメイン内で持っている可能性があります。
  3. description
    このオブジェクトには説明がありません。いつこの情報を作成したのか、いつディスクをプロビジョニングしたか、といった、より多くの情報を追加する可能性があります。これは有用なフィールドですが、Computeリソースを作成する上では重要なものではありません。 
  4. schedule
    いつオブジェクトが作成されたかを定義し、オブジェクトがいつ開始し、停止するのかを定義します。
  5. oplans
    oplansはオブジェクトを定義します。この時点では定義を隠していますが、この後詳細を見ていきます。
  6. user
    このユーザーは、オブジェクト作成者、オブジェクト所有者です。
  7. name
    オブジェクト名です。アイデンティティ・ドメイン、作成ユーザー、オブジェクト名から構成されています。この例では、nameは以下のようです。
    /Compute-metcsgse00028/cloud.admin/bitnami-wordpress-4.5.3-0-linux-_20160721144012_storage
    筆者の作業時点の例では、以下のようになります。
    /Compute-metcsgse00028/cloud.admin/WordPress_4_5_3_storage

oplansの詳細を見ていきましょう。以下のようにオブジェクトが定義されていることがわかります。
{
    "obj_type": "storage/volume",
    "ha_policy": "",
    "label": "bitnami-wordpress-4.5.3-0-linux-_20160721144012_storage",
    "objects": […]
}
oplansは4個の要素から構成されており、ドキュメントに定義されています。これらのオブジェクトはha_policyを除いて全て必要です。最初の定義済みパラメータはobj_typeです。このパラメータは以下として定義されます。
  • Ip-reservation
  • Launchplan
  • Orchestration
  • Storage/volume
  • Secapplication
  • Seciplist
  • Seclist
  • Secrule
いま、この要素をstorage/volumeと定義します。labelパラメータに関連付けられた名前とobjectsパラメータで定義された特性を指定します。ha_policyはactiveもしくはmonitorとして定義することができます。activeを選択した場合、オブジェクトが削除、障害時に再起動されます。activeはobj_typeがlaunchplanの場合にのみ選択できます。launchplan、storage/volume、orchestrationといったobj_typeの監視のためのha_policyを設定することができます。オブジェクトに障害が発生した場合、エラーがスローされます。このエラーを監視ソフトウェアパッケージにスローすることができますが、オブジェクトは自動的に再起動したり、再作成したりはしません。その他の全てのオブジェクトでは、このha_policyはnoneもしくは空フィールドに設定しなければなりません。今回の例では、bitnamiが生成するデフォルトラベルではなく、labelとして“WordPress_4_5_3_storage”を設定しています。
objectsフィールドはドキュメンテーションで定義されています。この例ではstorage volumeオブジェクトを詳細に見ていきます。storageに必要なフィールドはname、size、propertiesです。オプションのフィールドは、description、bootable、tagsです。今回の例では、オブジェクト・パラメータを以下のように定義しています。
"objects": [
            {
                "managed": true,
                "snapshot_id": null,
                "snapshot_account": null,
                "machineimage_name": "/Compute-metcsgse00028/marketplace01-user@oracleads.com/bitnami-wordpress-4.5.3-0-linux-oel-6.7-x86_64",
                "status_timestamp": "2016-07-21T19:44:51Z",
                "imagelist": "/Compute-metcsgse00028/marketplace01-user@oracleads.com/bitnami-wordpress-4.5.3-0-linux-oel-6.7-x86_64",
                "writecache": false,
                "size": "10737418240",
                "storage_pool": "/compute-us2-z12/cheis01nas100-v1_multipath/storagepool/iscsi/latency_1",
                "shared": false,
                "status": "Online",
                "description": "",
                "tags": [],
                "quota": null,
                "properties": [
                    "/oracle/public/storage/default"
                ],
                "account": "/Compute-metcsgse00028/default",
                "name": "/Compute-metcsgse00028/cloud.admin/bitnami-wordpress-4.5.3-0-linux-_20160721144012_storage",
                "bootable": true,
                "hypervisor": null,
                "uri": null,
                "imagelist_entry": 1,
                "snapshot": null
            }
        ]
    }
] 
nameは "/Compute-metcsgse00028/cloud.admin/bitnami-wordpress-4.5.3-0-linux-_20160721144012_storage" です。注目していただきたいのは、このオブジェクト名はインスタンス・ドメイン、ストレージを作成したユーザー名、そしてストレージのラベルで構成されている、という点です。sizeはバイト単位で"10737418240"と定義しています。この値はOS用の10GBのディスクです。propertiesは [ "/oracle/public/storage/default" ] と定義されています。これはストレージをデフォルトストレージとして定義することを意味しています。通常データベースで使われる低レイテンシや高IOPSストレージが必要であれば
、defaultではなく別のレイテンシを選択することもできます。この説明における残りのフィールドは任意の項目です。bootable(起動可能)タグはこれが起動可能イメージかどうか、statusはこのストレージがアクティブ・モードなのか、スタンバイモードなのかを定義します。storage_poolはこのストレージ要素が専用にアタッチされたストレージではなく、Computeノードで利用可能なiSCSI論理ユニット番号(LUN)であることを定義していることにご注意ください。これらの全てのフィールドはOSを起動し、WordPressアプリケーションを実行するストレージを作成するために必要なものを定義しています。ストレージとして20GBのディスクにすることも、200GBのディスクにすることも簡単に定義することができます。ブロックストレージは50USD/TB/月の費用が発生することに注意することが重要です。次回は、このストレージを使ってインスタンスと関連付けることにしましょう。

0 件のコメント:

コメントを投稿