チュートリアル一覧に戻る : Oracle Cloud Infrastructure チュートリアル

Oracle Cloud Infrastructure (OCI) の ”Always Free” では、以下のようなリソースが永久無償で利用することが可能です。(無償利用が可能な全てのリソースについては Oracle Cloud Infrastructure ドキュメント:Always Free リソース を参照してください)

【無償利用可能なサービス例】

  • AMDベースのコンピュート
  • ArmベースのAmpere A1 Compute
  • Block Volume
  • Object Storage
  • Flexible Load Balancer
  • Autonomous Transaction Processing など

本チュートリアルでは、このAlways Freeで使えるリソースを活用し、データベース・アプリケーションの開発環境を構築していきます。構成は下記の通りです。

image01.png

上記構成のうち、1~3までは実施済みである前提とします。下記の前提条件を参考に作成してください。

前提条件 :

所要時間 : 約40分

注意 : チュートリアル内の画面ショットについては Oracle Cloud Infrastructure の現在のコンソール画面と異なっている場合があります。

1. Autonomous Transaction Processing (ATP) の作成

前提条件の通り、VCNの作成、仮想マシンの作成等が完了したら、次に Autonomous Transaction Processing (ATP) を作成します。

  1. ナビゲーション・メニュー( のアイコン)より、Oracle DatabaseAutonomous Transaction Processing をクリックし、Autonomous Databaseの一覧画面を表示します。

  2. Autonomous Databaseの作成」ボタンをクリックします。

    image02.png

  3. 下記を参考に、Autonomous Databaseの作成画面にて必要事項を入力し、左下の「Autonomous Databaseの作成」ボタンをクリックします。

    Autonomous Databaseの基本情報の指定

    • コンパートメント - 任意
    • 表示名 - devdaysdb
    • データベース名 - orcl

    ワークロード・タイプの選択 - [トランザクション処理] を選択

    デプロイメント・タイプの選択 - [共有インフラストラクチャ] を選択

    データベースを構成します

    • Always Freeの構成オプションのみを表示 - チェックを有効化
    • データベース・バージョンの選択 - [19c] を選択 (初期値のまま)
    • OCPU数 - 1 (変更不可)
    • ストレージ(TB) - 0.02 (変更不可)
    • 自動スケーリング - チェックなし (変更不可)

    管理者資格証明の作成

    • ユーザー名 - ADMIN (変更不可)
    • パスワード - 任意 (パスワードは12文字から30文字とし、大文字、小文字および数字をそれぞれ1つ以上含める必要があります。パスワードに二重引用符(“)文字またはユーザー名”admin”を含めることはできません。)
      例:Welcome123###
    • パスワードの確認 - 設定したいパスワードを再入力

    ネットワーク・アクセスの選択

    • アクセス・タイプ - [すべての場所からのセキュア・アクセス] を選択
    • 相互TLS (mTLS)認証が必要 - チェックあり (変更不可)

    ライセンス・タイプの選択 - [ライセンス込み] を選択
    運用上の通知およびお知らせ用の連絡先を指定してください - 任意 (通知を受け取りたい場合のみ設定)

    image04.png

プロビジョニングは 作成ボタンを実行後、数分で完了します。

2. 仮想マシンにアクセスする

次に、前提条件に沿って作成された仮想マシンへ、Cloud Shell を用いてアクセスします。

  1. まず始めに、Cloud Shell を起動するため、コンソール画面 右上にある ターミナルのアイコンをクリックします。

    image05.png

  2. Cloud Shell の初回起動には時間がかかりますが、しばらく待つと、起動が完了し、コンソール画面の下部にターミナルが表示されます。 image03.png

  3. 仮想マシンにアクセス時に使用する秘密鍵を Cloud Shell にアップロードしていきます。Cloud Shell の左上にある「」のメニューをクリックし、「アップロード」をクリックします。

    image06.png

  4. 表示されたダイアログに、仮想マシン作成時に設定 (またはダウンロード) しておいた秘密鍵ファイルをドロップするか、「コンピュータから選択」をクリックし、エクスプローラからファイルを選択します。

    続いて、「アップロード」ボタンをクリックします。

    image07.png

  5. アップロードが開始され、Cloud Shell の右上にダイアログで転送状況が表示されます。「完了済」と表示されたことを確認してください。確認後、ダイアログを閉じるには、「非表示」をクリックしてください。

    image08.png

  6. 次に Cloud Shell 上で秘密鍵に対する設定を行っていきます。下記のコマンドを実行してください。

    • 秘密鍵用のディレクトリの作成

      mkdir ~/.ssh
      
    • 秘密鍵ファイルの移動

      mv 秘密鍵ファイル名 ~/.ssh/
      
      (例) 「mv ssh-key-2021-12-01.key ./.ssh/」など
    • ファイルの権限の変更

      chmod 400 ./.ssh/秘密鍵ファイル名
      
      (例) 「chmod 400 ./.ssh/ssh-key-2021-12-01.key」など

    これで、秘密鍵に対する設定は完了です。

  7. 秘密鍵を用いて、仮想マシンにアクセスします。Cloud Shell 画面にて、下記のコマンドを実行してください。

    コンピュート・インスタンスのパブリックIPアドレスが分からない場合は、ナビゲーション・メニュー( のアイコン)より、コンピュートインスタンス をクリックし、インスタンスの一覧画面から、対象のパブリックIPアドレスを確認してください。

    ssh opc@コンピュート・インスタンスのパブリックIPアドレス -i ./.ssh/秘密鍵ファイル名
    
  8. 接続確認のメッセージ「Are you sure you want to continue connecting (yes/no)?」が表示された場合、「yes」と入力します。

    image09.png

実行後、Cloud Shell 画面にて、[opc@ホスト名 ~]$ のように表示されていれば、仮想マシンへのアクセスは完了です。

3. 仮想マシンから ATP データベースにアクセスする

データベースに接続するにはクライアント資格証明が必要になります。コンソール画面からクライアント資格証明をダウンロードし、仮想マシンから作成したATPデータベースにアクセスしていきましょう。

  1. コンソール画面のナビゲーション・メニュー( のアイコン)より、Oracle DatabaseAutonomous Transaction Processing をクリックし、Autonomous Databaseの一覧画面を表示します。 一覧から、本チュートリアルで作成したATPインスタンスを選択してください。

    尚、Cloud Shell は、右上の「_」アイコンをクリックすることで、最小化することが可能です。

    image10.png

  2. ATPの詳細画面から、「DB接続」をクリックします。クライアント資格証明 (ウォレット) をダウンロードします。

    image11.png

  3. ウォレットのダウンロード」ボタンをクリックします。

    image12.png

  4. ウォレットのパスワードを設定し、「ダウンロード」ボタンをクリックします。(パスワードは8文字から60文字とし、英字と数字をそれぞれ1つ以上含める必要があります。)

    image13.png

    ウォレットファイルが「Wallet_orcl.zip」という名称でダウンロードされていることを確認してください。

  5. Cloud Shell 画面に戻ります。「2. 仮想マシンにアクセスする」で実施した際と同様に、Cloud Shell の左上にある「」のメニュー →「アップロード」から、先ほどダウンロードしたウォレットファイルをアップロードします。

  6. 次に Cloud Shell 上にアップロードしたウォレットファイルを 仮想マシンにアップロードします。仮想マシンと接続中の場合は、下記コマンドを実行し、アクセスを停止します。

    exit
    
  7. logout」と表示され、左側の文字列が「xxxx@cloudshell:~」と表示されていることを確認します。

    image14.png

  8. 下記コマンドを実行し、Cloud Shell にアップロードしたウォレットファイル (Wallet_orcl.zip) を、仮想マシンに送ります。

    scp -i ./.ssh/秘密鍵ファイル名 Wallet_orcl.zip opc@コンピュート・インスタンスのパブリックIPアドレス:~/
    

    image15.png

  9. 再度、仮想マシンと接続します。

    ssh opc@コンピュート・インスタンスのパブリックIPアドレス -i ./.ssh/秘密鍵ファイル名
    
  10. 下記コマンドを実行し、ウォレットファイルの展開します。

    • ウォレット用のディレクトリの作成

      mkdir ~/Wallet
      
    • ウォレットファイル (Wallet_orcl.zip) の移動

      mv Wallet_orcl.zip ~/Wallet/
      
    • ウォレットファイルの展開

      unzip ./Wallet/Wallet_orcl.zip -d Wallet/
      
  11. 展開したウォレットファイルの一つ「sqlnet.ora」ファイルを開き、ディレクトリ名を編集します。

    • 「sqlnet.ora」ファイルをエディタで開く

      vi ./Wallet/sqlnet.ora
      
    • ディレクトリ名の変更

      • vi エディタで INSERT モードにするため、「Insert」キーを押下します。(「Insert」キーが無い場合は、半角英数字の入力状態で「i」キーを押下します。)

      • カーソルを1行目に移動します。

      • 「?/network/admin」という文字列を削除し、代わりに「/home/opc/Wallet」を入力します。

      • 「Esc」キーを押下し、vi エディタの INSERT モードを終了します。

      • 変更を保存するため、「:wq」を入力し、「Enter」キーを押下します。

        ※ vi エディタが終了します。

      image16.png

      Note

      vi エディタで、編集を保存せずに終了したい場合は、コマンドモード 状態で「:q!」を入力し、「Enter」キーを押下することで元の画面に戻ることができます。

      コマンドモードに戻るには、「Esc」キーを入力してください。

  12. つづいて、環境変数を設定します。

    • 環境変数の設定

      export TNS_ADMIN='/home/opc/Wallet'
      
    • 設定内容の確認

      env | grep TNS_ADMIN
      
    • 「TNS_ADMIN=/home/opc/Wallet」と表示されることを確認

      image17.png

  13. アクセスのための準備はこれで完了です。実際にATPデータベースへアクセスしてみます。 下記のコマンドを実行してください。

    sqlplus admin@orcl_high
    

    「Enter password:」のようにパスワードの入力を求められます。ATPデータベースを作成した際のパスワードを入力してください。

    image18.png

    上記イメージのように表示されていればアクセスは成功しています。

    ※ sqlplus を終了する場合は、「exit」と入力し、「Enter」キーを押下してください。

4. 仮想マシンにnode.jsのサンプルアプリケーションをデプロイする

ここまでの手順で、作成した仮想マシンとデータベースの疎通確認ができました。

本手順では、Oracleの公式GitHubアカウントで公開されている node-oracledb リポジトリにあるサンプルアプリケーション(Banana Farmer Demonstration) を、仮想マシンにデプロイし、アプリケーションを通じてデータベースアクセス等を体感していきます。

  1. GitHub のリポジトリから サンプルアプリケーションを ローカルにクローンするため、下記コマンドを実行します。(sqlplus を起動中の場合は、「exit」と入力後、「Enter」キーを押下し、終了してください。)

    クローンは数秒で完了します。

    git clone https://github.com/oracle/node-oracledb.git
    
  2. 次に、クローンしたサンプルアプリケーションに含まれる「dbconfig.js」ファイルを編集します。「dbconfig.js」ファイルでは、サンプルアプリケーションのDB接続情報が定義されています。ファイルを編集し、DB接続情報を変更していきましょう。

    • vi エディタで「dbconfig.js」ファイルを開く

      vi ./node-oracledb/examples/dbconfig.js
      
    • ファイルの下部までスクロールします。

    • ユーザー名の変更

      • vi エディタで INSERT モードにするため、「Insert」キーを押下します。(「Insert」キーが無い場合は、半角英数字の入力状態で「i」キーを押下します。)

      • ユーザー情報を変更します。

        ・変更前:「process.env.NODE_ORACLEDB_USER   “admin”, 」
        ・変更後:「process.env.NODE_ORACLEDB_USER   “admin”, 」
      • 次にパスワード情報を変更します。(”adminのパスワード” はATPデータベース作成時に指定したものです。)

        ・変更前:「process.env.NODE_ORACLEDB_PASSWORD, 」

        ・変更後:「process.env.NODE_ORACLEDB_PASSWORD   “adminのパスワード”,」
      • 接続文字列も変更します。

        ・変更前:「process.env.NODE_ORACLEDB_USER   “localhost/orclpdb1”, 」
        ・変更後:「process.env.NODE_ORACLEDB_USER   “orcl_high”, 」
      • 「Esc」キーを押下し、vi エディタの INSERT モードを終了します。

      • 変更を保存するため、「:wq」を入力し、「Enter」キーを押下します。

        ※ vi エディタが終了します。

    image19.png

以上でアプリケーションのデプロイと、接続のための準備は完了です。

5. ファイアウォールを開放してインターネットからアクセスする

サンプルアプリケーションを起動する前に、インターネットからのアクセスを許可するために、ファイアウォールの設定を変更していきます。仮想クラウド・ネットワークのファイアウォール設定だけでなく、インスタンス側の設定も必要な点に注意してください。

  1. コンソールのナビゲーション・メニュー( のアイコン)より、ネットワーキング仮想クラウド・ネットワーク をクリックし、VCNの一覧画面を表示します。

  2. 一覧画面より、仮想マシンを配置している VCN を選択し、詳細画面を表示します。

  3. 左下のリソース・メニューから「セキュリティ・リスト」をクリックし、「Default Security List for handson-vcn」をクリックします。

    image20.png

  4. セキュリティ・リストの詳細画面から「イングレス・ルールの追加」ボタンをクリックします。

    image21.png

  5. 下記を参考にイングレス・ルールを設定し、「イングレス・ルールの追加」をクリックします。

    • ステートレス - チェックなし
    • ソース・タイプ - CIDR
    • ソースCIDR - 0.0.0.0/0
    • IPプロトコル - TCP
    • ソース・ポート範囲 - 未設定
    • 宛先ポート範囲 - 7000
    • 証明 - 未設定

    image22.png

    仮想クラウド・ネットワーク側のファイアウォール設定はこれで完了です。

  6. つづいて、インスタンスのファイアウォール設定を変更していきます。Cloud Shell に戻り、下記のコマンドを実行します。

    • TCPの7000番ポートのオープン

      sudo firewall-cmd --permanent --add-port=7000/tcp
      
    • ファイアウォールのリロード

      sudo firewall-cmd --reload
      

    いずれのコマンドも実行後、問題がなければ「success」と表示されます。

    これでインスタンス側のファイアウォール設定も完了です。

  7. 最後の下準備です。下記のコマンドを実行し、node.js のモジュールのパスを環境変数へ設定します。

    • node.js のモジュールパスの確認

      npm root -g 
      

      表示されたパスを控えておきます。(「/usr/local/lib/node_modules」)

    • パスの設定

      export NODE_PATH='/usr/local/lib/node_modules'
      
    • 設定内容の確認

      env | grep NODE_PATH
      
    • 「NODE_PATH=/usr/local/lib/node_modules」と表示されることを確認

      image23.png

    環境変数の設定は以上です。

  8. いよいよ サンプルアプリケーションを実行していきます。サンプルアプリケーションは「node-oracledb/examples/」ディレクトリに数種含まれています。

    まず始めに、「example.js」を実行してみます。「example.js」は、データベースに対して、3つのデータをインサートするアプリケーションです。

    Cloud Shell にて、下記コマンドを実行します。

    node node-oracledb/examples/example.js
    

    下記のような結果が表示されていれば、アプリケーションの実行は成功です。

    image24.png

  9. 次に「webapp.js」を実行します。「webapp.js」は、簡単なWebアプリケーションです。「webapp.js」を実行し、実際にインターネットからアクセスしてみます。

    Cloud Shell にて、下記コマンドを実行します。

    node node-oracledb/examples/webapp.js
    

    下記のような結果が表示されていれば、Webアプリケーションが起動できています。

    image25.png

    お手元のPCのブラウザから、この Webアプリケーションにアクセスしてみましょう。

  10. ブラウザのアドレスバーに「http://コンピュート・インスタンスのパブリックIPアドレス:7000/3」を入力し、「Enter」キーを押下します。下記のような Web画面が表示されていれば、成功です。

    image26.png

以上で、本チュートリアルは本編は完了です。

余裕がある方は、次の章に進み、フロントにロードバランサを構成し、ロードバランサを通じて上記の「webapp.js」にアクセスしてみましょう。

6. [任意] フロントにロードバランサーを構成する

OCI の Always Free サービスには、フレキシブル・ロードバランサも含まれています。

  1. 下記の設定内容を参考に、チュートリアル:ロードバランサーでWebサーバーを負荷分散する の 手順「4. ロードバランサーの構成」を実施し、ロードバランサを作成します。
    • 可視性タイプは 「パブリック」、パブリックIPアドレスの割当ては「エフェメラルIPアドレス」、最小帯域幅、最大帯域幅はいずれも「10 Mbps」に、仮想クラウド・ネットワークは、本チュートリアルで使用しているものを選択します。また、サブネットは、サンプルアプリケーションをデプロイした仮想マシンと同じものを選択します。
    • バックエンド・サーバーの選択では、「バックエンドの追加」ボタンより、サンプルアプリケーションをデプロイした仮想マシンを選択します。
    • ヘルス・チェック・ポリシーの指定では、ポートを「7000」番に、URLパス(URI) を「/3」で設定します。
    • リスナーの構成では、リスナーで処理するトラフィックのタイプを「HTTP」に、モニターするポートを「7000」番で設定します。
  2. ロードバランサのプロビジョニングが完了したら、ロードバランサのパブリックIPアドレスを控えておき、ブラウザのアドレスバーに「http://ロードバランサのパブリックIPアドレス:7000/3」を入力します。

    下記のような Web画面が表示されていれば、ロードバランサを経由した Webアプリケーションへのアクセスは成功です。

    image27.png

いかがでしたでしょうか。OCI の Always Free サービスには、このほかにも沢山のサービスが含まれています。その他のチュートリアルなども参考に色々と試してみてください。

目次に戻る : チュートリアル : Oracle Cloud Infrastructure を使ってみよう

更新日時: