IBM CloudのCloud Foundryデプロイの無料枠のメモリ制限


IBM Cloudを試してみてます。

無料枠を使って試してましたが2個目のアプリケーションのデプロイを試そうとしたら下記エラーでした。

You have exceeded your organization's memory limit: app requested more memory than available

無料枠の制限を超えたようですね。

$ ibmcloud cf push    
'cf push' を起動しています...

[email protected] としてマニフェストから組織 n0bisuke / スペース dev にプッシュしています...
マニフェスト・ファイル /Users/n0bisuke/playground/get-started-node/manifest.yml を使用しています
アプリ情報を取得しています...
これらの属性でアプリを作成しています...
+ 名前:       n0bisuke-testapp2
  パス:       /Users/n0bisuke/playground/get-started-node
+ メモリー:   256M
  経路:
+   n0bisuke-testapp2-xxxxxxxxx.mybluemix.net

アプリ n0bisuke-testapp2 を作成しています...
経路をマップしています...
ローカル・ファイルをリモート・キャッシュと比較しています...
Packaging files to upload...
ファイルをアップロードしています...
 37.27 KiB / 37.27 KiB [=====================================================================================================================] 100.00% 1s

API がファイルの処理を完了するのを待機しています...

アプリをステージングし、ログをトレースしています...
You have exceeded your organization's memory limit: app requested more memory than available
失敗

256Mまでは無料らしいのでどう割り当てるか問題らしい

1個目のアプリケーションで256M/256Mを利用してしまっていたのでこうなる模様

256Mアプリケーションを2つ作ろうとしていた

  • アプリ1
manifest.yml
---
applications:
 - name: n0bisuke-testapp
   random-route: true
   memory: 256M

色々間省略するけど

$ ibmcloud cf push

一つ目はこれでデプロイ

  • アプリ2
manifest.yml
---
applications:
 - name: n0bisuke-testapp2
   random-route: true
   memory: 256M

二つ目も256Mでデプロイしてた

などにしてnameを別のものにして新規アプリケーションとしてデプロイしようとすると今回のようなエラーになりました。

メモリ再割り当て

  • アプリ1を64M
manifest.yml
---
applications:
 - name: n0bisuke-testapp
   random-route: true
   memory: 64M
  • アプリ2を128M
manifest.yml
---
applications:
 - name: n0bisuke-testapp2
   random-route: true
   memory: 128M

こんな割り当てにしたら二つのアプリケーションを無料枠内でデプロイできまました。

64Mx4まで作れるか実験

  • アプリ1を64M
manifest.yml
---
applications:
 - name: n0bisuke-testapp
   random-route: true
   memory: 64M
  • アプリ2を64M
manifest.yml
---
applications:
 - name: n0bisuke-testapp2
   random-route: true
   memory: 64M
  • アプリ3を64M
manifest.yml
---
applications:
 - name: n0bisuke-testapp3
   random-route: true
   memory: 64M
  • アプリ4を64M
manifest.yml
---
applications:
 - name: n0bisuke-testapp4
   random-route: true
   memory: 64M

問題なく4つまでいけました。

5つ目を作ろうとするとエラーですね

You have exceeded your organization's memory limit: app requested more memory than available
失敗

まとめ

IBM CloudのPaaS無料枠 雰囲気掴んできました。

メモリが最大256Mまで割り当てで、一つのアプリの最低割り当てが64Mなので

  • 64M * 4つ
  • 128M * 2
  • 128M * 1 + 64M * 2
  • 256M * 1

など各自選択して利用できそうです。