Free Tier: Oracle LinuxインスタンスへのNode Expressのインストール

このチュートリアルでは、Oracle Cloud Infrastructure Free Tierアカウントを使用してOracle Linuxコンピュート・インスタンスを設定します。次に、Node Expressアプリケーションをインストールし、インターネットから新しいアプリケーションにアクセスします。最後に、このチュートリアルでは、ホストの仮想ネットワークを設定し、ホストをインターネットに接続するために必要なすべてのステップについて説明します。

主なタスクは:

  • 開発作業用のコンパートメントを設定します。
  • Oracle Linuxインスタンスをインストールし、仮想クラウド・ネットワーク(VCN)に接続します。
    • ホストがインターネットに接続するために必要なOracle Cloud Infrastructure仮想クラウド・ネットワークおよび関連するネットワーク・サービスを設定します。
    • Oracle Linuxサーバーにアクセスするためのssh暗号化キーを設定します。
  • VCNのイングレス・ルールを構成します。
  • インスタンスでExpressフレームワークを使用してNodeJSを構成します。

Linuxインスタンスの設定の簡単なダイアグラムを次に示します。

Oracle Cloud InfrastructureでExpressフレームワークを使用してNodeJSアプリケーションを実行するために必要なコンポーネントのダイアグラム

その他の情報については、次のWebサイトを参照してください。

開始する前に

このチュートリアルを正常に完了するには、次が必要です:

要件
  • Oracle Cloud Infrastructure Free Tierアカウント。無料で開始
  • sshサポートがインストールされているMacOS、LinuxまたはWindowsコンピュータ。

1. 開発用のコンパートメントの設定

開発用のコンパートメントを構成します。

コンパートメントの作成

このチュートリアルで作成するリソースのコンパートメントを作成します。

  1. Oracle Cloud Infrastructureコンソールにサインインします。
  2. ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックします。「アイデンティティ」で、「コンパートメント」をクリックします。
  3. 「コンパートメントの作成」をクリックします。
  4. 次の情報を入力します:
    • 名前: <your-compartment-name>
    • 説明: Compartment for <your-description>.
    • 親コンパートメント: <your-tenancy>(root)
  5. 「コンパートメントの作成」をクリックします。

参照: コンパートメントの作成

2. Oracle Linuxインスタンスのインストール

「VMインスタンスの作成」ワークフローを使用して、新しいコンピュート・インスタンスを作成します。

ワークフローでは、インスタンスのインストール時にいくつかのことが実行されます:

  • Oracle Linuxを実行しているコンピュート・インスタンスを作成およびインストールします。
  • Oracle Linuxインスタンスをインターネットに接続するために必要なサブネットおよびコンポーネントを含むVCNを作成します。
  • インスタンスへの接続に使用するsshキー・ペアを作成します。
インストール・ステップの確認

「VMインスタンスの作成」ワークフローを使用してインスタンスのインストールを開始するには、次のステップに従います:

重要

示されているステップは、Free Tierアカウント用です。有料アカウントを使用している場合は、ここに示すステップとは異なる場合があります。
  1. 「Oracle Cloud」アイコンをクリックして、メイン・ランディング・ページに移動します。
    • 「リソースの起動」までスクロールします。
    • 「VMインスタンスの作成」ワークフローを選択します。
    「コンピュート・インスタンスの作成」ページが表示されます。このページのセクションは次のとおりです
    • 名前およびコンパートメント
    • 配置
    • セキュリティ
    • イメージとシェイプ
    • ネットワーキング
    • SSHキーの追加
    • ブート・ボリューム
  2. 「名前」および「コンパートメント」を選択します。

    初期オプション

    • 名前: <name-for-the-instance>
    • コンパートメントに作成: <your-compartment-name>

    名前の値を入力するか、システム指定のデフォルトを使用します。コンパートメントには、デフォルトのルート・コンパートメントを選択します。

  3. 「配置」の設定を確認します。
    • デフォルト値を使用します。可用性ドメインが割り当てられます。

    データは次のようになります:

    可用性ドメイン

    • 可用性ドメイン: AD-1
    • 容量タイプ: オンデマンド容量
    • フォルト・ドメイン: 最適なフォルト・ドメインの選択をOracleに任せます
    ノート

    Free Tierの場合、可用性ドメインに「Always Free対象」オプションを使用します。
  4. 「セキュリティ」の設定を確認します。
    • デフォルト設定を使用します。

    データは次のようになります:

    セキュリティ

    • 保護インスタンス:無効
    • 機密コンピューティング:無効化
  5. 「イメージとシェイプ」の設定を確認します。ワークフローで提供されるデフォルト値を使用します。
    ノート

    次に示すのはAMD仮想マシンのサンプル・データです。実際の値は異なる場合があります。

    イメージ

    • イメージ: Oracle Linux 8
    • イメージ・ビルド: <current-build-date>
    • シェイプ: VM.Standard.E2.1.Micro
    • OCPU: 1
    • メモリー(GB): 1
    • ネットワーク帯域幅(Gbps): 0.48
    ノート

    Free Tierの場合、「Always Free対象」シェイプ・オプションを使用します。
  6. 「ネットワーキング」の設定を確認します。デフォルトを次のように変更します。
    • 「編集」をクリックします。
    • プライマリ・ネットワーク: 「新規仮想クラウド・ネットワークの作成」を選択します。
    • 新規仮想クラウド・ネットワーク名: 生成されたVCN名を使用するか、独自の名前を指定します。
    • コンパートメントに作成: <root-for-your-tenancy>
    • サブネット: 「新規パブリック・サブネットの作成」を選択します。
    • 新規サブネット名: 生成されたサブネット名を使用するか、独自の名前を指定します。
    • コンパートメントに作成: <root-for-your-tenancy>
    • CIDRブロック: デフォルト値を使用します(10.0.0.0/24など)。
    • パブリックIPv4アドレス: デフォルト値の「パブリックIPv4アドレスの割当て」を使用します。
    • 次のセクションに進みます。
  7. 「SSHキーの追加」の設定を確認します。ワークフローで提供されるデフォルト値を使用します。
    • 「キー・ペアを自動で生成」オプションを選択します。
    • 「秘密キーの保存」および「公開キーの保存」をクリックして、このコンピュート・インスタンスの秘密および公開SSHキーを保存します。

    独自のSSHキーを使用する場合は、いずれかのオプションを選択して公開キーを指定します。

    ノート

    秘密キーと公開キーのファイルは安全な場所に配置してください。コンピュート・インスタンスの作成後にキーを再度取得することはできません。
  8. 「ブート・ボリューム」の設定を確認します。ワークフローで提供されるデフォルト値を使用します。

    「転送中暗号化の使用」設定は選択したままにします。

  9. 「作成」をクリックして、インスタンスを作成します。システムのプロビジョニングには数分かかる場合があります。
Apache Webサーバーを実行するOracle Linuxインスタンスが正常に作成されました。

3. インターネット・アクセスの有効化

VMインスタンスの作成ウィザードでは、インスタンスのVCNが自動的に作成されます。ポート3000でのインターネット接続を許可するイングレス・ルールをサブネットに追加します。

VCNのイングレス・ルールの作成

次のステップに従って、VCNのパブリック・サブネットを選択し、イングレス・ルールを追加します。

  1. ナビゲーション・メニューを開いて「ネットワーキング」をクリックし、「仮想クラウド・ネットワーク」をクリックします。
  2. コンピュート・インスタンスを使用して作成したVCNを選択します。
  3. 新しいVCNが表示された状態で、<your-subnet-name>サブネット・リンクをクリックします。

    パブリック・サブネット情報は、ページの下部にあるセキュリティ・リストとともに表示されます。VCNのデフォルト・セキュリティ・リストへのリンクが表示されます。

  4. 「デフォルト・セキュリティ・リスト」リンクをクリックします。

    VCNのデフォルトのイングレス・ルールが表示されます。

  5. 「イングレス・ルールの追加」をクリックします。

    「イングレス・ルールの追加」ダイアログが表示されます。

  6. イングレス・ルールに次の情報を入力します。

    イングレス・ルールを次のように入力します:

    • ステートレス: 選択
    • ソース・タイプ: CIDR
    • ソースCIDR: 0.0.0.0/0
    • IPプロトコル: TCP
    • ソース・ポート範囲: (空白のまま)
    • 宛先ポート範囲: 3000
    • 説明: HTTP接続の許可
  7. 「イングレス・ルールの追加」をクリックします。
    これで、HTTP接続が許可されます。VCNはNode Express用に構成されています。
インスタンスをインターネットから使用できるようにするイングレス・ルールが正常に作成されました。

4. Node Expressアプリケーションの作成

次に、Oracle LinuxインスタンスにExpressフレームワークを設定し、NodeJSアプリケーションを作成して実行します。

Node Expressのインストールおよび設定

次のステップに従って、インスタンスを設定し、アプリケーションを構築します:

  1. ナビゲーション・メニューを開き、「コンピュート」をクリックします。「コンピュート」で、「インスタンス」をクリックします。
  2. 前のステップで作成したインスタンスへのリンクをクリックします。

    「インスタンスの詳細」ページで、「インスタンス・アクセス」セクションを確認します。システムによって作成されたパブリックIPアドレスをコピーします。このIPアドレスを使用してインスタンスに接続します。

  3. ターミナルまたはコマンド・プロンプト・ウィンドウを開きます。
  4. このチュートリアルで作成したssh暗号化キーを格納したディレクトリに移動します。
  5. このSSHコマンドを使用してインスタンスに接続します:
    ssh -i <your-private-key-file> opc@<x.x.x.x>

    インスタンスの作成時に公開キーを特定したため、このコマンドでインスタンスにログインします。sudoコマンドを発行して、サーバーをインストールおよび起動できるようになりました。

  6. ポート3000でHTTP接続を有効にします。
    
    sudo firewall-cmd --permanent --add-port=3000/tcp
    sudo firewall-cmd --reload
  7. 最新バージョンのNodeJSをインストールします。
    sudo yum update
    sudo yum install -y nodejs
    node --version
  8. アプリケーションのディレクトリを作成します。
    mkdir node-hello-app
  9. node-hello-appディレクトリに移動します。
    cd node-hello-app
  10. npmを使用して、package.jsonファイルを作成します:
    npm init

    次の情報を入力します:

    • name: node-hello-app
    • version: 1.0.0
    • description: Node Express Helloアプリケーション
    • entry point: app.js (デフォルトを使用しないでください。)
    • test command: (空白のまま)
    • git repository: git://github.com/username/repository.git (または有効なgitリポジトリに置き換えます)
    • keywords: (空白のまま)
    • author: サンプル・ユーザー<username@example.com>
    • license: UPL-1.0

    package.jsonで表示されたものをプレビューします。

    About to write to /home/opc/node-hello-app/package.json:
    
    {
      "name": "node-hello-app",
      "version": "1.0.0",
      "description": "Node Express Hello application",
      "main": "app.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "repository": {
        "type": "git",
        "url": "git://github.com/username/repository.git"
      },
      "author": "Example User <username@example.com>",
      "license": "UPL-1.0",
      "bugs": {
        "url": "https://github.com/username/repository/issues"
      },
      "homepage": "https://github.com/username/repository#readme"
    }
    

    yesを入力して回答を承認します。

  11. Expressをインストールし、package.jsonの依存性リストに保存します。
    npm install express --save
  12. expressがpackage.jsonに依存性として追加されていることを確認します。
    cat package.json
    "dependencies": {
        "express": "^4.17.1"
    }
  13. 「Hello, World!」アプリケーションを作成します。

    ファイルを作成します:

    vi app.js

    ファイルに次のテキストを入力し、ファイルを保存します:

    const express = require('express')
    const app = express()
    
    app.get('/', function (req, res) {
      res.send('Hello World!')
    })
    
    app.listen(3000, function() {
      console.log('Hello World app listening on port 3000!');
    })
    
  14. NodeJSプログラムを実行します:
    node app.js
  15. コマンドラインまたはブラウザを使用して、アプリケーションをテストします:
    • curlを使用してテストするには、新しいターミナルからSSHキーを使用してUbuntuインスタンスに接続し、コマンドラインでcurl -X GET http://localhost:3000と入力します
    • ブラウザから、インスタンスに割り当てられたパブリックIPアドレス(http://<x.x.x.x>:3000)に接続します
    Nodeアプリケーションは、インスタンスまたはブラウザでHello World!を返します。

Oracle Cloud Infrastructureインスタンスで、ExpressフレームワークにローカルNodeJSアプリケーションが正常に作成されました。

参照:

Expressの詳細は、次を参照してください:

次の手順

Linuxインスタンスを使用して、Node ExpressアプリケーションがOracle Cloud Infrastructureに正常にインストールおよびデプロイされました。

Oracle製品を使用した開発の詳細を確認するには: