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アカウント。Oracle Cloud Infrastructure Free Tier
  • sshサポートがインストールされているMacOS、LinuxまたはWindowsコンピュータ。

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

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

コンパートメントの作成

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

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

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

2.Virtual Cloudネットワークのインストール

VCNウィザードの起動ワークフローを使用して、新しいVirtual Cloud Network (VCN)を作成します。

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

  • VCNが作成されます。
  • インターネット接続を有効にするインターネット・ゲートウェイを追加します。
  • VCNのパブリック・サブネットおよびプライベート・サブネットを作成および構成します。
  • サブネットのルート表およびセキュリティ・リストを設定します。

VCNsの詳細は、VCNおよびサブネットの管理を参照してください。

インストール・ステップの確認

VCNを作成するには、次のステップを実行します:

重要

示されているステップは、Free Tierアカウント用です。有料アカウントを使用している場合は、ここに示すステップとは異なる場合があります。
  1. ナビゲーション・メニューを開き、「ネットワーキング」「仮想クラウド・ネットワーク」の順に選択します。
  2. 必要に応じて、左側のナビゲーションの「コンパートメント」コントロールからコンパートメントを選択します。
  3. 「VCNウィザードの起動」をクリックします。
  4. 「インターネット接続性を持つVCNの作成」を選択します。
  5. 「VCNウィザードの起動」をクリックします。
  6. VCNを構成します。「構成」ダイアログには次のセクションがあります。

    基本情報

    VCNの名前を入力し、コンパートメントを選択します。

    • 名前: <name-for-the-vcn>

      VCNの名前を入力します。機密情報を入力しないでください。

    • コンパートメント: <your-compartment-name>

      コンパートメントを選択します。

    VCNの構成

    • VCN IPv4 CIDRブロックおよびDNS解決のデフォルト値を保持します。

    パブリック・サブネットの構成

    • IPアドレス・タイプおよびIPv4 CIDRブロックのデフォルト値を保持します。

    プライベート・サブネットの構成

    • IPアドレス・タイプおよびIPv4 CIDRブロックのデフォルト値を保持します。
  7. 「次」をクリックします。
  8. 選択内容を確認します。「前」をクリックし、戻って変更を行います。
  9. 作成」をクリックしてVCNを作成します。

    VCNとそのすべてのリソースが作成されます。これには少し時間がかかる場合があります。

    作成が完了したら、「VCNの表示」をクリックして新しいVCNを表示します。

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

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

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

  • Oracle Linuxを実行しているコンピュート・インスタンスを作成およびインストールします。
  • Oracle Linuxインスタンスをインターネットに接続するVCNおよびパブリック・サブネットを選択します。
  • インスタンスへの接続に使用するsshキー・ペアを作成します。
インストール・ステップの確認

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

重要

示されているステップは、Free Tierアカウント用です。有料アカウントを使用している場合は、ここに示すステップとは異なる場合があります。
  1. ナビゲーション・メニューを開き、「コンピュート」を選択します。「コンピュート」で、「インスタンス」を選択します。
  2. 「インスタンスの作成」をクリックします。

    「コンピュート・インスタンスの作成」ページが表示されます。

  3. 「Name」および「Compartment」を選択します。

    初期オプション

    • 名前: <name-for-the-instance>

      インスタンスの名前を入力します。機密情報を入力しないでください。

    • コンパートメントに作成: <your-compartment-name>

      コンパートメントを選択します。前のステップで作成したコンパートメントを使用します。

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

    デフォルト値は、次のようになります。

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

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

    デフォルト値は、次のようになります。

    • 保護インスタンス:無効
    • 機密コンピューティング:無効
  6. 「イメージとシェイプ」の設定を確認します。「編集」をクリックします。
    ノート

    次に、Ampere A1仮想マシンのサンプル・データを示します。実際の値は異なる場合があります。
    • デフォルトのOracle Linux 8イメージを保持します。
    • 「シェイプの変更」をクリックします。
    • 「仮想マシン」を選択します。
    • シェイプ・シリーズの場合は、「アンペア」を選択します。
    • VM.Standard.A1を選択します。「Always Free」シェイプをフレックスします。
    • 1 OCPUを選択します。
    • 「シェイプの選択」をクリックします。

    選択した値は、次のようになります。

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

    Free Tierの場合、「Always Free対象」シェイプ・オプションを使用します。
  7. 「ネットワーキング」の設定を確認します。前のステップで作成したVCNを選択します。ネットワーク値は、次のようになります。
    • 仮想クラウド・ネットワーク: <your-vcn>
    • サブネット: <pubic-subnet-for-your-vcn>
    • 起動オプション: -
    • DNSレコード:はい
    • ネットワーク・セキュリティ・グループを使用してトラフィックを制御:いいえ
    • パブリックIPv4アドレスの割当て: はい
    • プライベートIPv4アドレス:作成時に自動的に割り当てられます
    • IPv6 address:使用不可
  8. 「SSHキーの追加」の設定を確認します。ワークフローで提供されるデフォルト値を使用します。
    • 「キー・ペアを自動で生成」オプションを選択します。
    • 「秘密キーの保存」および「公開キーの保存」をクリックして、このコンピュート・インスタンスの秘密キーおよび公開SSHキーを保存します。

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

    ノート

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

    「転送中暗号化の使用」設定を選択します。その他の2つの設定は空白のままにします。

  10. ブロック・ボリュームの設定を確認します。ワークフローによって提供されるデフォルト値を使用して、ブロック・ボリュームを選択しません。ブロック・ボリュームは後で追加できます。
  11. 「作成」をクリックして、インスタンスを作成します。システムのプロビジョニングには数分かかる場合があります。

Apache Webサーバーを実行するOracle Linuxインスタンスが正常に作成されました。

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

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

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

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

  1. ナビゲーション・メニューを開き、「ネットワーキング」「Virtual Cloudネットワーク」の順にクリックします。
  2. 作成したVCNを選択します。
  3. 新しいVCNが表示され、<your-subnet-name>サブネット・リンクをクリックします。

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

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

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

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

    「Add Ingress Rules」ダイアログが表示されます。

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

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

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

5. 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>
    • ライセンス: 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製品を使用した開発の詳細を確認するには: