7
4

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 Code Engine

Last updated at Posted at 2022-06-03

「手元にあるアプリを簡単にデプロイできたらいいのいのに」と思ったことはありませんか?
コンテナアプリを動かしたいが、インフラやKubernetesクラスタの構築・運用などアプリ開発以外に時間が多くかかってしまう。なんてことをよく聞きます。
今回はそんなときに活躍するサーバーレスプラットフォームのCode Engineの特徴や使い方について紹介していきます。

Code Engineって?

IBM Cloud上で提供しているフルマネージド・ランタイムサービスです。Webアプリやバッチジョブ、ファンクションといった様々なアプリをコンテナ化し、サーバーレスで稼働させることができます。サーバーレスのため、インフラ管理・クラスタ管理をすることなく、使いたい分を使いたいときだけ利用することが可能です。もちろん支払いも使った分だけ(秒単位)での課金です。

特徴

  • Webアプリ、バッチジョブ、ファンクションが1つのサービスで動かせる!
  • アプリコードを自動的に分析し、開発言語を特定。その結果をもとに自動的にコンテナイメージの作成とデプロイが可能なCICDが組み込まれている
  • ゼロスケール(アクセスがないときはインスタンスを自動停止)することも可能でアプリが本当の意味で稼働している分だけの課金も可能
  • マネージド・サービスとしてKubernetes, Knativeベースのコンテナ実行環境を提供
  • サーバーレスのためインフラ管理・クラスタ管理不要、動かしたいときに動かしたい分利用できる
  • 無償利用枠があるので、手軽に試せる
  • アプリをプライベートネットワーク上で公開可能

Code Engineを使うために必要な条件は?

  1. IBM Cloud 従量課金アカウント (またはサブスクリプション契約)

    従量課金アカウントが必要ですが無償枠を使って試すことができます!

  2. (オプション)Container Registry

    Code Engineの機能を使ってアプリのビルドを行う場合に、コンテナイメージの保管先が必要です

    これも無償枠を使って試すことができます

Code Engineにデプロイする方法は3つから選べる

Code EngineにはCICD機能が組み込まれており、Code Engine上でアプリをビルド+デプロイするのか、それともビルド済みのコンテナイメージを使ってデプロイするのか使いたい方を選べます

  1. 一番簡単!アプリコードだけ用意してビルド+デプロイする方法
  2. 独自のDockerfileベースでビルド+デプロイする方法
  3. すでにあるコンテナイメージをそのままデプロイする方法

一番簡単!アプリコードだけ用意してビルド+デプロイしてみる

今回はパターン1のアプリコードだけ用意してビルド+デプロイを試してみたいと思います。

Dockerfileの作成やコンテナイメージのビルドは不要です。Code Engine に組み込まれたCICDを利用すると、ソースコードを自動的に分析し、開発言語を特定。その結果をもとに自動的にコンテナイメージの作成とデプロイを行ってくれます。

今回はとてもシンプルなNode.jsのHello Worldアプリを用意したのでこちらを使っていきたいと思います
https://github.com/kota661/ce-helloworld

JavaやPHP, Goなど他の言語もサポートしているので、他の言語で試したい方はこちらからサンプルコードが取得できます
https://cloud.ibm.com/docs/codeengine?topic=codeengine-plan-build#build-buildpack-strat

流れ

  1. Container Image保管用のContainer Registryの名前空間を作成
  2. Code Engineのプロジェクトを作成
  3. Code Engineにアプリをデプロイ
  4. サンプルアプリへのアクセス
  5. 最後にお片付け

1. Container Image保管用のContainer Registryの名前空間を作成

最初に前準備としてContainer Imageの保管用のレジストリを作成します

こちらのURLからアクセスいただくか、画面左上のナビゲーションメニューから 「Container Registry」> 「名前空間」 を選択して名前空間一覧ページを開きます

「名前空間」 ページが表示されたら 「作成」 ボタンをクリックして、コンテナレジストリの名前空間を作成します
1-1.png

「名前空間の作成」 ページで必要項目を入力し、「作成」 ボタンをクリックします

  • リソース・グループ: Default
  • 名前: ユニークな名前

1-2.png

2. Code Engineのプロジェクトを作成

次にCode Engineでプロジェクトを作成していきます

こちらのURLからアクセスいただくか、画面左上のナビゲーションメニューから 「Code Engine」 > 「プロジェクト」 を選択してプロジェクト一覧を開きます

「プロジェクト」 ページが表示されたら 「作成」 ボタンをクリックして、プロジェクトを作成します
2-1.png

「プロジェクトの作成」 ページで必要項目を入力し、「作成」 ボタンをクリックします

  • ロケーション: 東京(jp-tok)
  • 名前: ユニークな名前
  • リソース・グループ: Default

2-2.png

「プロジェクト」 ページにて、作成したプロジェクト名が表示されており、状態アクティブ となれば完了です
2-3.png

3. Code Engineにアプリをデプロイ

最後に実際のアプリ作成を行っていきます

「プロジェクト」 ページから先程作成したプロジェクトをクリックし、プロジェクトの概要ページに移動します

作成直後のプロジェクトのため当然何もアプリがないので、早速 「アプリケーションの作成」 をクリックします
3-1.png

「アプリケーションの作成」ページにて必要事項を入力していきます

3-2.png

次にブランチ名やビルド方法を設定するために 「ビルド詳細の設定」 をクリックし必要事項を入力していきます

最初は 「ソース」 です。プライベートリポジトリへのアクセス設定 や、ビルドする ブランチの指定 、ソースコードが配置されている コンテキスト・ディレクトリ の設定が可能です

今回はパブリックリポジトリで、ブランチ名はmain, コンテキスト・ディレクトリの変更の必要はないため、そのまま 「次へ」 をクリックします
3-3.png

次は「戦略」です。ここではビルドの方法を設定します

今回はアプリコードだけで自動ビルド(自分でDockerfileを用意しない方法)でのビルドを行うため 「Cloud Native Buildpack」 を選択し、「次へ」 をクリックします
3-4.png

最後に 「出力」 です。ここではビルド後のコンテナイメージの名前や保管場所などを設定します

必要事項を入力し、完了 をクリックします

  • 名前空間:最初のステップで作成したContainer Registryの名前空間名
  • リポジトリー(イメージ名):helloworld

3-5.png

以上でアプリ作成の設定は完了です!最後に作成ボタンをクリックします

3-6.png

作成ボタンをクリック後、すぐにアプリのビルドとデプロイが実行されます。 「ビルド実行の状況」成功 に、そして 「アプリ」 と、 「選択されたリビジョン」 のステータスが 準備完了 になればアプリのデプロイが成功しています

3-7.png

4. サンプルアプリへのアクセス

ステータスが準備完了となったため、早速アプリにアクセスしましょう

「アプリケーションのテスト」>「アプリケーションのURL」 の順にクリックしクリックしアプリにアクセスします
4-1.png

以下のようなHelloworldアプリが表示されればデプロイ成功です!
4-2.png

あっという間にアプリケーションをデプロイすることができました!今回の方法を使うとDockerfileを作成したりコンテナイメージをビルドしたりする必要はありません。Code Engineが自動的にソースコードを解析し、開発言語を特定、自動的に適切な方法でコンテナイメージを作成+デプロイします

Code Engineを使うとアプリ開発に注力することができるので、新しいアプリの稼働環境をお探しの場合は一度試してみるのはありだと思います

5. 最後にお片付け

今回作成したリソースの削除をしていきます

Code Engineのプロジェクトの削除

こちらのURLからアクセスいただくか、画面左上のナビゲーションメニューから 「Code Engine」>「プロジェクト」 を選択してプロジェクト一覧を開きます

プロジェクト一覧から今回作成したプロジェクトの削除をクリックします
5-1.png

Container Registryの名前空間の削除

こちらのURLからアクセスいただくか、画面左上のナビゲーションメニューから 「Container Registry」>「名前空間」 を選択して名前空間一覧ページを開きます

名前空間の一覧から今回作成した名前空間の削除をクリックします
5-2.png

さらなる活用

実アプリをデプロイしていく上で気になりそうなところをまとめてみました

7
4
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
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?