Free Tier: Ubuntu VMへのFlaskのインストール

このチュートリアルでは、Oracle Cloud Infrastructure Free Tierアカウントを使用してUbuntuインスタンスを設定します。次に、ホストの仮想環境を設定します。最後に、Python用の軽量Webアプリケーション・フレームワークであるFlaskをインストールします。

主なタスクは:

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

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

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

その他の情報については、次の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. Ubuntu Linuxインスタンスのインストール

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

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

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

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

重要

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

    初期オプション

    • 名前: <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が自動的に作成されます。ポート5000でのインターネット接続を許可するイングレス・ルールをサブネットに追加します。

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
    • ソース・ポート範囲: (空白のまま)
    • 宛先ポート範囲: 5000
    • 説明: HTTP接続の許可

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

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

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

次に、Ubuntu LinuxインスタンスにFlaskを設定し、Flaskアプリケーションを作成して実行します。

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

Python 3を使用してFlaskを設定するには、次のステップを実行します:

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

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

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

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

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

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

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

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

  7. Python 3用のpip3をインストールします。
    sudo apt update
    sudo apt install -y python3-pip
  8. 仮想環境と仮想環境ラッパーをインストールしてアクティブ化します。

    仮想環境を使用して、プロジェクトの依存性を管理できます。すべてのプロジェクトを独自の仮想環境に配置して、Pythonライブラリの独立したグループをホストできます。

    virtualenvwrapperは、virtualenvの拡張機能です。仮想環境での作業をより快適にするための一連のコマンドが用意されています。また、すべての仮想環境を1つの場所に配置します。virtualenvwrapperは、環境名のタブ補完を提供します。

    pip3 install virtualenv
    pip3 install virtualenvwrapper
  9. .bashrcで仮想環境ラッパーを設定します。

    ファイルを更新します:

    sudo vi .bashrc

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

    # set up Python env
    export WORKON_HOME=~/envs
    export PATH=$PATH:/home/ubuntu/.local/bin
    export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
    export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=' -p /usr/bin/python3 '
    source /home/ubuntu/.local/bin/virtualenvwrapper.sh

    現在のウィンドウで前述のコマンドをアクティブ化します。

    source ~/.bashrc
  10. 仮想環境を起動します。
    mkvirtualenv flask01
    コマンドは(flask01) ubuntu@<ubuntu-instance-name>:~$を返します
  11. Flaskをインストールします。
    pip3 install Flask
  12. 「Hello, World!」アプリケーションを作成します。

    ファイルを作成します:

    sudo vi hello.py

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

    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/')
    def hello_world():
        return 'Hello, World!'
    
    if __name__ == "__main__":
        app.run(host="0.0.0.0", port=int("5000"), debug=True)
  13. Pythonプログラムを実行します。
    export FLASK_APP=hello.py
    flask run --host=0.0.0.0
  14. これで、アプリケーション・フレームワークをテストできます。

    新しいターミナルから、SSHキーを使用してUbuntu VMに接続し、コマンドラインでcurl localhost:5000と入力します。または、VMに割り当てられたパブリックIPアドレス(http://<x.x.x.x:5000)にブラウザを接続できます。

    アプリケーションは、VMまたはブラウザでHello World!を返します。
完了しました。FlaskがOracle Cloud Infrastructure VMに正常にインストールされました。

次の手順

Ubuntu VMを使用して、Flaskが正常にインストールされ、PythonアプリケーションがOracle Cloud Infrastructureに作成されました。

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