すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:OSSとROSを使用したNGINXアプリケーションの作成

最終更新日:Feb 21, 2024

Resource Orchestration Service (ROS) を使用して、スタックテンプレートをコンパイルし、ECS (Elastic Compute Service) やApsaraDB RDSインスタンスなどのクラウドコンピューティングリソース、およびスタックテンプレート内のリソース間の依存関係を記述できます。 ROSのオーケストレーションエンジンは、テンプレートに基づいてすべてのリソースを自動的に作成および構成し、自動デプロイとO&Mを実装します。このトピックでは、Object Storage Service (OSS) とROSを使用してNGINXアプリケーションを作成する方法について説明します。

前提条件

手順1: NGINXインストールパッケージをバケットにアップロードする

  1. OSSコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、バケットリスト をクリックします。 [バケット] ページで、目的のバケットを見つけてクリックします。

  3. 左側のナビゲーションツリーで、[オブジェクト管理] > [オブジェクト] を選択します。

  4. ダウンロードしたNGINXインストールパッケージをアップロードします。

    NGINXインストールパッケージのアクセス制御リスト (ACL) をpublic-readに設定し、他のパラメーターのデフォルト設定を維持します。 オブジェクトのアップロード方法の詳細については、「オブジェクトのアップロード」をご参照ください。

  5. オブジェクトURLを取得します。

    NGINXインストールパッケージの右側にある [詳細の表示] をクリックし、[オブジェクトURLのコピー] をクリックします。2

ステップ2: ROSを使用してスタックを作成する

  1. スタックの作成に使用するテンプレートを選択します。

    1. ROSコンソールにログインします。

    2. 左側のナビゲーションウィンドウで、[スタック] をクリックします。

    3. 上部のナビゲーションバーで、リージョンドロップダウンリストから中国 (杭州) を選択します。

    4. [スタック] ページで、[スタックの作成] をクリックし、ドロップダウンリストから [ROSの使用] を選択します。

    5. [テンプレートの選択] ステップで、[テンプレートの指定] を [既存のテンプレートの選択] に設定し、テンプレートのインポート方法を [テンプレートコンテンツの入力] に設定します。 [テンプレートコンテンツ] セクションで、[ROS] と [JSON] をクリックし、コードエディターに次のテンプレートコンテンツを入力し、[次へ] をクリックします。

      {
        "ROSTemplateFormatVersion": "2015-09-01",
        "Description": "",
        "Parameters": {
          "NginxDownloadUrl": {
            "Type": "String",
            "Description": {
               
              "en": "nginx-*.rpmのダウンロードパス"
            },
            "Label": {
               
              "en": "NginxダウンロードUrl"
            }
          },
          "ZoneId": {
            "AssociationProperty": "ALIYUN::ECS:: インスタンス: ZoneId" 、
            "Type": "String",
            "Description": {
                
              "en": "アベイラビリティーゾーンID.<br><b>note: <font color='blue'> 選択する前に、アベイラビリティーゾーンがECSリソース作成の仕様をサポートしていることを確認してください。これは他のVSwitchアベイラビリティーゾーンとは異なることを推奨します </font></b>"
            },
            "Label": {
               
              "en": "VSwitchアベイラビリティーゾーン"
            }
          },
          "ImageId": {
            "デフォルト": "centos_7" 、
            "Type": "String",
            "Description": {
                
              "en": "画像ID、Centos7を使用してください。詳細: <b><a href='https:// www.alibabacloud.com/help/en/doc-detail/112977.html' target='_blank'><font color='blue'> ミラーを見つける </font></a></b>
            },
            "Label": {
               
              "en": "イメージ"
            }
          },
          "InstanceType": {
            "AssociationProperty": "ALIYUN::ECS::Instance::InstanceType" 、
            "AssociationPropertyMetadata": {
              "ZoneId": "ZoneId"
            },
            "Label": {
               
              "en": "インスタンスタイプ"
            },
            "Type": "String",
            "Description": {
               
              "en": "<font color='blue'><b>1. モデルを選択する前に、モデルの下で現在利用可能なゾーンが在庫にあることを確認してください。</b></font><br><font color='blue'><b>2. オプションモデルのリスト </font></b></font>[ecs.c5.large <font color='green'>2vCPU 4GiB Intranet bandwidth1Gbps <PPS font] </font <> /b>[ecs.c5.xlarge <font color='green'>4vCPU 8GiBイントラネットバンド幅1.5Gbpsグリッド送信および受信パッケージ50MillionPPS</font>]<br></b>[ecs.c5.2xlarge <font color='green'>8vCPU 16GiBイントラネットバンド幅2.5Gbps <グリッドおよび受信パッケージ80Gbps] <
            }
          },
          "SystemDiskCategory": {
            "デフォルト": "cloud_efficiency" 、
            "Label": {
               
              "en": "システムディスクタイプ"
            },
            "Type": "String",
            "Description": {
              "en": "<font color='blue'><b> オプションの値:</b></font><br>[cloud_efficiency: <font color='green'> 効率的なクラウドディスク </font>]<br>[cloud_ssd: <font color='green'>> SSDクラウドディスク </font>]<br> <font color='green'>ESSDクラウドディスク </font>]<br>[Cloud: <font color='green'> クラウドディスク </font>]<br>[ephemeral_ssd: <font color='green'> ローカルSSDクラウドディスク </font>]" 、
               
            },
            "AllowedValues": [
              "cloud_efficiency" 、
              &quot;cloud_ssd&quot;、
              「クラウド」、
              "cloud_essd" 、
              "ephemeral_ssd"
            ]
          },
          "InstancePassword": {
            "Type": "String",
            "Description": {
                
              "en": "サーバーのログインパスワード (長さ8-30) には、3つ (大文字、小文字、数字、()'~!@#$%^& *_+ =|{}[]:;' <>,.?/ Special symbol in) を含める必要があります。"
            },
            "MinLength": 8、
            "Label": {
               
              "en": "インスタンスパスワード"
            },
            "AllowedPattern": "[0-9A-Za-z \\\\\ \-\\\&:; '<>,=% ~! @#\\\ (\\) \\\\\\\\ *\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]
            "NoEcho": true、
            "MaxLength": 30、
            "ConstraintDescription": {
               
              "en": "長さ8-30、3つを含む必要があります (大文字、小文字、数字、()'~!@#$%^& *_+ =|{}[]:;' <>,?/ Special symbol in) 。"
            }
          },
          "SecurityGroup": {
            "Type": "String",
            "AssociationProperty": "ALIYUN::ECS::SecurityGroup::SecurityGroupId" 、
            "Description": {
               
              "en": "コンソールから (sg-xxx) で始まるビジネスセキュリティグループIDを検索してください-ECS-Network&security"
            },
            "Label": {
               
              "en": "セキュリティグループID"
            }
          },
          "VPC": {
            "AssociationProperty": "ALIYUN::ECS::VPC::VPCId" 、
            "Type": "String",
            "Description": {
               
              "en": "コンソールから (vpc-xxx) で始まるIDを検索してください-Virtual Private Cloud"
            },
            "Label": {
               
              "en": "既存のVPCインスタンスID"
            }
          },
          "VSwitch": {
            "AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId" 、
            "Type": "String",
            "Description": {
               
              "en": "コンソール-Virtual Private Cloud-vswitchから (vsw-xxx) で始まるビジネスvswitch IDを検索してください"
            },
            "Label": {
               
              "en": "VSwitch ID"
            }
          }
        },
        "メタデータ": {
          "ALIYUN::ROS:: インターフェイス": {
            "ParameterGroups": [
              {
                "Parameters": [
                  "VPC",
                  &quot;VSWITCH&quot;、
                  "SecurityGroup"
                ],
                "Label": {
                  "デフォルト":{
                     
                    "en": "インフラストラクチャの設定"
                  }
                }
              },
              {
                "Parameters": [
                  "ZoneId" 、
                  "ImageId" 、
                  "InstanceType" 、
                  "SystemDiskCategory" 、
                  "InstancePassword" 、
                  "NginxDownloadUrl"
                ],
                "Label": {
                  "デフォルト":{
                     
                    "en": "ECS設定"
                  }
                }
              }
            ],
            "TemplateTags": [
              "acs:example:Linuxアプリケーションサービス: ROS_OOSを使用したNGINXアプリケーションの作成"
            ]
          }
        },
        "Resources": {
          "WebServer": {
            "Type": "ALIYUN::ECS::Instance",
            "Properties": {
              "InternetMaxBandwidthOut": 80、
              "IoOptimized": "optimized",
              "VpcId": {
                "Ref": "VPC"
              },
              "UserData": {
                "Fn:: 参加": [
                  "",
                  [
                    "#!/bin/bash \n" 、
                    "NginxUrl=" 、
                    {
                      "Ref": "NginxDownloadUrl"
                    },
                    "\n",
                    "yum -y install aria2 \n" 、
                    "aria2c $NginxUrl \n" 、
                    "rpm -ivh nginx-*.rpm \n",
                    "yum -y install nginx \n" 、
                    "systemctl enable nginx.service \n" 、
                    "systemctl restart nginx.service \n"
                  ]
                ]
              },
              "SecurityGroupId": {
                "Ref": "SecurityGroup"
              },
              "VSwitchId": {
                "Ref": "VSwitch"
              },
              "ImageId": {
                "Ref": "ImageId"
              },
              "InstanceType": {
                "Ref": "InstanceType"
              },
              "SystemDiskCategory": {
                "Ref": "SystemDiskCategory"
              },
              "パスワード": {
                "Ref": "InstancePassword"
              }
            }
          }
        },
        "Outputs": {
          "NginxUrl": {
            "Value": {
              "Fn:: 参加": [
                "",
                [
                  "http://" 、
                  {
                    "Fn::GetAtt": [
                      "WebServer" 、
                      "PublicIp"
                    ]
                  },
                  ":80"
                ]
              ]
            }
          }
        }
      }
  2. パラメーターを設定します。

    1. [パラメーターの設定] ステップで、[スタック名] パラメーターを指定します。

    2. [テンプレートパラメーターの設定] セクションで、次のパラメーターを設定します。

      セクション

      パラメーター

      説明

      インフラストラクチャの設定

      既存のVPCインスタンスID

      ドロップダウンリストから仮想プライベートクラウド (VPC) を選択します。

      VSwitch ID

      ドロップダウンリストからvSwitchを選択します。

      セキュリティグループID

      ドロップダウンリストからセキュリティグループを選択します。

      ECS設定

      VSwitch可用性ゾーン

      ビジネス要件 (ゾーンGなど) に基づいてvSwitchゾーンを選択します。

      [イメージ]

      centos_7を入力します。

      [インスタンスタイプ]

      ビジネス要件に基づいてインスタンスタイプを選択します。

      システムディスクタイプ

      cloud_ssdを選択します。

      インスタンスパスワード

      ECSインスタンスのカスタムログインパスワードを入力します。

      NginxダウンロードUrl

      手順1で取得したNGINXインストールパッケージのオブジェクトURLを入力します。

    3. [スタック設定の設定] セクションで、デフォルト設定を保持します。

    4. [作成] をクリックします。

  3. ブラウザでNGINXのホームページにアクセスしてください。

    1. 作成したスタックをクリックします。

    2. [出力] をクリックし、NGINXのURLをクリックします。

      nginx

      NGINXのURLをクリックすると、NGINXのホームページにリダイレクトされます。

      3

      NGINXのホームページにアクセスできない場合は、現在のセキュリティグループにデフォルトのポートHTTP(80) を追加します。 詳細については、「セキュリティグループルールの追加」をご参照ください。