Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

IBM Cloud Shellを使ってCode Engineでアプリケーションを起動する

Last updated at Posted at 2020-10-06

#前提
先日書いた「IBM Cloud CLIを使ってCode Engineでアプリケーションを起動する」では、PCにインストールするIBM Cloud CLIを使用しました。ここでは、IBM Cloud Shellを使って、IBM Cloud Code Engineでコンテナを起動してみます。
IBM Cloud CLIからIBM Cloudにログインする操作が無いこと、IBM Cloud Shellのロケーションとして「us-south」を指定する必要があることが大きな違いです。

#IBM Cloud Shell

IBM Cloud Shellとは?

Webブラウザ上で、bashシェルを実行できる環境です。IBM Cloud上で利用することができます。公式のオンラインマニュアル「IBM Cloud Shellに関するFAQ」によれば、シェルの実行環境は、Ubuntu Linuxとあります。

2020年10月現在、IBM Cloud Shellで使われているUbuntuのバージョンは、18.04.5 LTS (Bionic Beaver)となっています。
確認方法は、IBM Cloud Shellで次のコマンドを実行してみてください。

$ cat /etc/os-release

IBM Cloud Shellのアクセス方法

ChromeなどのWebブラウザでIBM Cloudにログイン後、画面右上の「IBM Cloud シェル」のアイコンをクリックしてください。
image.png

ロケーション変更

2020年10月現在、ここで使用する「IBM Cloud Code Engine」は、IBM Cloudのロケーションとして「ダラス」のみになっていますので、IBM Cloud Shellのロケーションを「us-south」に変更します。

IBM Cloud Shellの画面上部で「変更」をクリックします。
image.png

「Cloud Shellロケーションを変更します」と表示されるので、ロケーションを「ダラス(us-south)」に変更し、「続行」をクリックします。
image.png

IBM Cloud Shellの画面上部で、ロケーションが「ダラス」に変わります。
image.png

Code Engine pluginの有無を確認

IBM Cloud Shellで、Code-Engine用のコマンドを呼び出せるか確認します。

$ ibmcloud plugin show code-engine

下図のように表示されればOKです。IBM Cloud Shellで、2020年10月現在ベータ版のIBM Cloud Code Engineを使用できることがわかります。
image.png

IBM Cloud Code Engineでサーバーレスでコンテナを使う

リソース・グループを指定

リソース・グループ自体の解説については公式のオンラインマニュアルへ。
リソース・グループを指定していない場合は、IBM Cloud Code Engineで、アプリケーションやジョブをまとめる器となる「プロジェクト」を作成することができません。

次のコマンドを実行し、既存のリソース・グループを表示します。

$ ibmcloud resource groups

結果の例

名前      ID                  デフォルト・グループ   状態
default   xxxxxxxxxxxxxxxxx   true                ACTIVE

ここでは名前が「default」というリソース・グループをターゲットに指定します。

$ ibmcloud target -g default

プロジェクト作成

IBM Cloud Code Engineでは、アプリケーションやジョブなどを動かすための器を「プロジェクト」と言い、必ず用意しなければいけません。
次のコマンドを実行します。作成するプロジェクト名は、2ndproject としました。プロジェクト名は英数字が使えますので、好みの名称で良いでしょう。

$ ibmcloud ce project create --name 2ndproject

作成済みの既存のプロジェクトは、次のコマンドを実行することで確認できます。

$ ibmcloud ce project list

実行結果の例

Name        ID                                    Status  Tags  Location  Resource Group  Time to deletion  
2ndproject  ab70ec5f-3fb4-4272-88c6-78dc63024173  active        us-south  default         7 days from now

2020年10月現在、IBM Cloud Code Engineはベータ版のため、7日後に自動削除する旨が表示されます。

プロジェクトの指定

プリケーションを作成するにあたり、プロジェクトを指定するため、次のコマンドを実行します。ここでは作成した2ndprojectを指定しています。実際は、2ndprojectのところがプロジェクト名を指定する箇所になりますので、各自が作成したプロジェクト名に置き換えてコマンドを実行してください。

$ ibmcloud ce project select -n 2ndproject

実行結果の例

Selecting project '2ndproject'...
OK

##アプリケーションの作成
DockerHubで公開されているNode-REDのDockerイメージを呼び出して、IBM Cloud Code Engineにアプリケーションとして作成します。
次のコマンドを実行します。

$ ibmcloud ce application create --name nodered --image nodered/node-red --cpu 1 --memory 512Mi

ここでは、Node-REDのコンテナに、1CPUと512MBのメモリを割り当てています。
実行結果の例

Project '2ndproject' and all its contents will be automatically deleted 7 days from now.
Creating application 'nodered'...
The Configuration is still working to reflect the latest desired specification.
The Route is still working to reflect the latest desired specification.
Configuration 'nodered' is waiting for a Revision to become ready.
Configuration 'nodered' is waiting for a Revision to become ready.
Ingress has not yet been reconciled.
Waiting for load balancer to be ready
Run 'ibmcloud ce application get -n nodered' to check the application status.
OK

https://nodered.ab70ec5f-3fb4.us-south.codeengine.appdomain.cloud

上記のURLにアクセスすることで、作成したアプリケーションにアクセスすることができます。noderedは、ibmcloud ce application create で指定したアプリケーション名で、ab70ec5f-3fb4はアプリケーションが所属するプロジェクトのIDの一部になりますので、各自で異なります。
なお、2020年10月現在、IBM Cloud Code Engineはベータ版のため、7日間で自動削除する旨が表示されています。

##アプリケーションのステータス確認

$ ibmcloud ce application get -n nodered

上記のnoderedは、ibmcloud ce application create で指定したアプリケーション名になります。アプリケーション名が異なる場合は、各自が使用したアプリケーション名に置き換えてコマンドを実行してください。

実行結果の例

Name:          nodered  
ID:            ed33006e-da81-4030-b7d6-98d7265da9ab  
Project Name:  2ndproject  
Project ID:    ab70ec5f-3fb4-4272-88c6-78dc63024173  
Age:           5m9s  
Created:       2020-10-06 13:12:37 +0000 UTC  
URL:           https://nodered.ab70ec5f-3fb4.us-south.codeengine.appdomain.cloud  
Console URL:   https://cloud.ibm.com/codeengine/project/us-south/ab70ec5f-3fb4-4272-88c6-78dc63024173/application/nodered/configuration  

Image:  nodered/node-red  
Resource Allocation:  
  CPU:     1  
  Memory:  512Mi  

Revisions:  
  nodered-arbhb-1:  
    Age:                5m8s  
    Traffic:            100%  
    Image:              nodered/node-red (pinned to 7903d6)  
    Running Instances:  0  

Runtime:  
  Concurrency:         10  
  Concurrency Target:  10  
  Maximum Scale:       10  
  Minimum Scale:       0  
  Timeout:             300  

Conditions:  
  Type                 OK    Age    Reason  
  ConfigurationsReady  true  4m39s    
  Ready                true  4m32s    
  RoutesReady          true  4m32s  

実行結果として表示されたもののうち、「URL」にアクセスするとアプリケーションが表示され、「Console URL」にアクセスすると、Webブラウザ上で作成したアプリケーションの設定を確認することができます。

「Console URL」にアクセスした例
image.png

Webブラウザからアクセス

アプリケーションの作成、またはアプリケーションのステータス確認で表示されたURLにアクセスし、アプリケーションが動いているか確認します。ここではNode-REDを指定していましたので、Node-REDが表示されます。
image.png

この通り、Node-REDは初期状態です。

実用的な使い方

サーバーレスとしてコンテナを起動できますので、何もアクセスがなければインスタンス(起動中のコンテナ)が自動で削除されますし、アクセスが増えればインスタンスが増えます。上記のようにNode-REDを起動しても、インスタンスが自動で増減するため、IBM Cloud Code Engine上でNode-REDを起動し、フローを設定しても、すぐに初期状態に戻ってしまいます。

従って、手元のPCなどでNode-REDで動かしたいフローを作りこんでおき、コンテナイメージ作成、作成したコンテナイメージを、IBM Cloud Code Engineで動かすことが実用的な使い方と言えます。

##その他
コンテナで起動しているアプリケーションのログを見るなどは、IBM Cloud CLIの場合と同じように操作し、確認することができます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Comments

No comments

Let's comment your feelings that are more than good

0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?