0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Google CloudRunのアカウント作成からデプロイまでご紹介

Posted at

はじめに

今回はGoogle CloudのサーバーレスサービスであるGoogle CloudRunについて学びます。

Google CloudRunは、Google Cloudが提供するサーバーレスのコンテナ実行環境です。これにより、開発者はインフラストラクチャの管理を気にせずに、コードをデプロイし実行できます。この記事では、CloudRunの基本的な概念と機能を理解し、簡単な「Hello World」アプリをデプロイする方法を紹介します。対象読者は、CloudRunやサーバーレスコンピューティングに初めて触れる方です。

Google Cloud アカウント作成手順

1. ブラウザで https://cloud.google.com にアクセスします。ブラウザで https://cloud.google.com にアクセスします。
2. 右上の「無料で開始」または「コンソールに移動」をクリックします。
3. Googleアカウントでサインインします。Googleアカウントをお持ちでない場合は、新規作成してください。
4. 国と組織の種類、支払い情報を入力します。
5. 利用規約に同意し、「続行」をクリックします。
6. アカウントのセットアップが完了したら、Google Cloud Consoleにリダイレクトされます。

gcloudコマンドラインツールのインストール

Windows用

1. https://cloud.google.com/sdk/docs/install にアクセスします。1. https://cloud.google.com/sdk/docs/install にアクセスします。
2. 「Windows」タブを選択し、インストーラーをダウンロードします。
3. ダウンロードしたインストーラー(GoogleCloudSDKInstaller.exe)を実行します。ダウンロードしたインストーラー(GoogleCloudSDKInstaller.exe)を実行します。インストールウィザードの指示に従って進みます。
4. 「Cloud SDK のインストール先を選択してください」で適切なディレクトリを選択します。コンポーネントの選択画面では、デフォルトのままで問題ありません。
5. インストールが完了したら、「完了」をクリックします。

macOS/Linux用

1. ターミナルを開き、以下のコマンドを実行してインストールスクリプトをダウンロードします。

Copycurl -O https://dl.google.com/dl/cloudsdk/channels/rapid/install_google_cloud_sdk.bash

2. ダウンロードしたスクリプトを実行します。

Copybash install_google_cloud_sdk.bash

3. プロンプトに従って、インストール先ディレクトリを選択します(デフォルトでよい場合はEnterキーを押します)。インストールが完了したら、ターミナルを再起動するか、以下のコマンドでシェルを更新します。

Copysource ~/.bashrc

または

Copysource ~/.zshrc

gcloudの初期化

1. コマンドプロンプト(Windows)またはターミナル(macOS/Linux)を開き、以下のコマンドを実行してgcloudを初期化します。

gcloud init

2. プロンプトに従って、Googleアカウントにログインし、プロジェクトを選択します。
3. インストールが成功したことを確認するため、以下のコマンドを実行します。

gcloud versiongcloudバージョン

このコマンドがgcloudのバージョン情報を表示すれば、インストールは成功しています。

必要なコンポーネントのインストール

以下のコマンドで必要なコンポーネントをインストールできます。

gcloud components install kubectl

ステップ1:プロジェクトの作成

1. Google Cloud Consoleにログインし、左上の「プロジェクトを選択」をクリック。
2. 「新しいプロジェクト」をクリックし、プロジェクト名を cloudrun-hello-world-project に設定して「作成」をクリック。
※必要に応じて、組織や場所を設定します(通常はデフォルトのままで問題ありません)。
3. 作成したプロジェクトがリストに表示されるので、作成したプロジェクトを選択。
4. 左側のナビゲーションメニューから「APIとサービス」→「ダッシュボード」を選択、「APIとサービスを有効化」をクリック。
5. 「Cloud Run API」を検索し、クリックして有効にする。

ステップ2:ローカル環境のセットアップ

1. 任意のディレクトリに移動して、新しいディレクトリを作成し、その中にプロジェクトを構築。

mkdir cloudrun-hello-world
cd cloudrun-hello-world

※任意でPython仮想環境の設定。
プロジェクト固有の依存関係を隔離できるよう、Pythonの仮想環境を作成し、有効化することをお勧めします。

python -m venv venv
source venv/bin/activate  # Windowsの場合は `venv\Scripts\activate`

ステップ3:「Hello World」アプリケーションの作成

1. 作成したディレクトリに app.py ファイルを作成し、以下のコードを追加。

app.py
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=8080)

2. requirements.txt ファイルを作成し、Flaskを依存関係として追加。

requirements.txt
Flask==2.0.1フラスコ==2.0.1
Werkzeug==2.0.1

3. 必要なパッケージをインストール。

pip install -r requirements.txt

4. Dockerfileの作成4.Dockerfileの作成4.Dockerfileの作成4.Dockerfileの作成
プロジェクトディレクトリに Dockerfile を作成し、以下の内容を追加。

Dockerfile
# Use the official Python image.
# https://hub.docker.com/_/python
FROM python:3.10-slim

# Set the working directory to /app
WORKDIR /appWORKDIR /アプリ

# Copy the current directory contents into the container at /app# 現在のディレクトリの内容を /app のコンテナにコピーします
COPY . /app

# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Make port 8080 available to the world outside this container
EXPOSE 8080

# Define environment variable
ENV NAME World

# Run app.py when the container launches
CMD ["python", "app.py"]

ここまでで作成したファイルは以下。

  • app.py
  • Dockerfile
  • requirements.txt

ここまでで、アプリケーションがローカル環境で準備できたので、次はこのアプリケーションをコンテナイメージとしてビルドし、Google Container Registryにプッシュしてから、Cloud Runにデプロイします。

ステップ3:コンテナイメージのビルドとプッシュ

1. コンソールでご自身のプロジェクトID($PROJECT_ID)を確認し、プロジェクトを設定します。

gcloud config set project $PROJECT_ID

2. コンテナイメージをビルドし、Google Container Registryにプッシュする。

gcloud builds submit --tag gcr.io/$PROJECT_ID/hello-world

ステップ4:Cloud Runサービスのデプロイ

1. サービスエージェントがコンテナイメージにアクセスできるように権限を付与。

PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='get(projectNumber)')

# デフォルトサービスアカウントに権限を付与
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
  --role="roles/storage.objectViewer"

# Cloud Runサービスエージェントに権限を付与
SERVICE_ACCOUNT="service-$PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com"

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$SERVICE_ACCOUNT" \
  --role="roles/storage.objectViewer"

2. 正しいイメージURLを使用してCloud Runサービスをデプロイ。

gcloud run deploy hello-world-service \
  --image gcr.io/$PROJECT_ID/hello-world \
  --platform managed \
  --region asia-northeast1 \
  --allow-unauthenticated

3. デプロイ後、CloudRunはURLを提供するので、そのURLをブラウザで開く。「Hello World!」と表示されることを確認します。

さいごに

以上でデプロイ完了です。今回は、Google CloudRunの基本的な概念と機能を紹介し、簡単な「Hello World」アプリをデプロイする方法を解説しました。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?