Free Tier: UbuntuインスタンスでのHelidonの設定

このチュートリアルでは、Oracle Cloud Infrastructure Free Tierアカウントを使用してUbuntuコンピュート・インスタンスを設定します。次に、ホストのHelidon MicroProfile (MP)サーバーを設定します。

主なタスクは:

  • 開発作業用のコンパートメントを設定します。
  • Ubuntu Linuxインスタンスをインストールし、仮想クラウド・ネットワーク(VCN)に接続します。
    • ホストがインターネットに接続するために必要なOracle Cloud Infrastructure仮想クラウド・ネットワークおよび関連するネットワーク・サービスを設定します。
    • Ubuntu Linuxサーバーにアクセスするためのssh暗号化キーを設定します。
  • VCNのイングレス・ルールを構成します。
  • JDKおよびMavenをインストールします。
  • MicroProfile (MP)サーバーでHelidonを設定します。
  • Hello World Javaアプリケーションを作成します。
  • アプリケーションをテストします。

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

Oracle Cloud InfrastructureでHelidon MicroProfileサーバーを実行するために必要なコンポーネントのダイアグラム

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

開始する前に

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

要件

  • Oracle Cloud Infrastructure Free Tierアカウント。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. Ubuntu Linuxインスタンスのインストール

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

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

  • Ubuntu Linuxを実行しているコンピュート・インスタンスを作成およびインストールします。
  • Ubuntu 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. 「イメージとシェイプ」の設定を確認します。オペレーティング・システム・イメージを変更します。
    • 「編集」をクリックします。
    • 「イメージの変更」をクリックします。
    • 「Ubuntu」をクリックします。
    • 「Canonical Ubuntu 22.04」またはそれ以降のバージョンを選択します。
    • 「イメージの選択」をクリックします。
    ノート

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

    イメージとシェイプ

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

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

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

    ノート

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

    「カスタム・ブート・ボリューム・サイズを指定します」設定を選択解除します。

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

    「自分が管理するキーでこのボリュームを暗号化」設定を選択解除します。

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

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

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

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

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

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

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

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

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

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

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

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

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

    • ステートレス:選択
    • ソース・タイプ: CIDR
    • ソースCIDR: 0.0.0.0/0
    • IPプロトコル: TCP
    • ソース・ポート範囲: (空白のまま)
    • 宛先ポート範囲: 8080
    • 説明: HTTP接続の許可

    「イングレス・ルールの追加」をクリックします。これで、HTTP接続が許可されます。VCNはApacheサーバー用に構成されています。

  7. 「イングレス・ルールの追加」をクリックします。
    これで、HTTP接続が許可されます。VCNはApacheサーバー用に構成されています。
インスタンスをインターネットから使用できるようにするイングレス・ルールが正常に作成されました。

4. Helidonサーバーでのアプリケーションの実行

次に、Ubuntu LinuxインスタンスにHelidonを設定します。

Ubuntuファイアウォールの構成

Ubuntuファイアウォールを構成するには、次のステップに従います:

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

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

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

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

  6. ファイアウォール設定を更新します。

    Ubuntuファイアウォールはデフォルトで無効になっています。ただし、HTTPトラフィックを許可するように、iptables構成を更新する必要があります。次のコマンドを実行します。

    iptables
    sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 8080 -j ACCEPT
    sudo netfilter-persistent save

    コマンドにより、ポート8080を介したHTTPトラフィックを許可するルールが追加され、変更がiptables構成ファイルに保存されます。

OpenJDKのインストール
  1. 次のコマンドを実行します。
    sudo apt update
    sudo apt -y install openjdk-11-jdk-headless
    java -version
  2. .bashrcJAVA_HOMEを設定します。

    ファイルを更新します:

    vi .bashrc

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

    # set JAVA_HOME
    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
  3. 現在のウィンドウで前述のコマンドをアクティブ化します。
    source ~/.bashrc
Apache Mavenのインストール

次のコマンドを実行します。

  1. Mavenをインストールします。
    sudo apt -y install maven
  2. Mavenインストールを検証します。
    mvn --version
Helidonのインストール

開始するMavenプロジェクト・テンプレートを作成する次のMaven Archetypeを実行します。このプロジェクトでは、Helidon WebサイトのHelidon MP Quickstartの例を使用します。次のコマンドを実行します。

  1. Helidon Mavenインストールを実行します。例:
    mvn -U archetype:generate -DinteractiveMode=false \
        -DarchetypeGroupId=io.helidon.archetypes \
        -DarchetypeArtifactId=helidon-quickstart-mp \
        -DarchetypeVersion=2.2.1 \
        -DgroupId=io.helidon.examples \
        -DartifactId=helidon-quickstart-mp \
        -Dpackage=io.helidon.examples.quickstart.mp

    Archetypeにより、現在のディレクトリの下にMavenプロジェクトが作成されます。出力は次のようになります。

    [INFO] Project created from Archetype in dir: /home/ubuntu/helidon-quickstart-mp
    [INFO] BUILD SUCCESS
    ノート

    最新バージョンのHelidon MPをインストールするには、『Helidon MP Quickstart』を参照してください
  2. helidon-quickstart-mpディレクトリに移動します。
    cd helidon-quickstart-mp
  3. アプリケーションを構築します。
    mvn package

    成功メッセージが表示されます。

    [INFO] BUILD SUCCESS
  4. アプリケーションを実行します。
    java -jar target/helidon-quickstart-mp.jar
Helidonアプリケーションのテスト

これで、アプリケーションをテストできます。

  1. 新しいターミナルからSSHキーを使用してUbuntuインスタンスに接続し、コマンドラインで次のように入力します:
    curl -X GET http://localhost:8080/greet

    または、インスタンスに割り当てられたパブリックIPアドレス(http://<x.x.x.x>:8080/greet)にブラウザを接続できます。

    インスタンスまたはブラウザに{"message":"Hello World!"}が表示されます。

  2. グリーティングの名前を入力します。ターミナルから、次のように入力します:
    curl -X GET http://localhost:8080/greet/Mike

    または、ブラウザからhttp://<x.x.x.x>:8080/greet/Mikeと入力します。

    インスタンスまたはブラウザに{"message":"Hello Mike!"}が表示されます。

  3. グリーティングを更新します。ターミナルから、次のように入力します:
    curl -X PUT -H "Content-Type: application/json" -d '{"greeting" : "Aloha"}' http://localhost:8080/greet/greeting

    コマンドにより、メッセージのHelloAlohaに更新されます。

  4. 更新されたグリーティングをテストします。ブラウザからhttp://<x.x.x.x>:8080/greet/Mikeと入力します。

    インスタンスまたはブラウザに{"message":"Aloha Mike!"}が表示されます。

  5. ブラウザで次のコマンドを入力して、ヘルスおよびメトリックを取得します。
    http://<x.x.x.x>:8080/health
    http://<x.x.x.x>:8080/metrics

    JSONでメトリックを取得するには、ターミナルから次のように入力します:

    curl -H 'Accept: application/json' -X GET http://localhost:8080/metrics

完了しました。Oracle Cloud InfrastructureインスタンスでHelidon MicroProfileサービスを使用して、Hello Worldアプリケーションが正常に作成されました。

参照:

この例の詳細は、『Helidon MP Quickstart』を参照してください

次の手順

Oracle Cloud InfrastructureインスタンスでHelidon MicroProfileサービスを使用して、Hello Worldアプリケーションが正常に作成されました。

Oracle製品を使用した開発の詳細を確認するには、次のサイトを参照してください: