😽

CloudRunサービス関連

2023/08/24に公開

このページではGoogleCloudPlatformの一サービスにあたる、CloudRunを使うまでに行ったことの中で特に重要だと思った内容を記載しています。

Dockerfile/Dockerimage

  • 軽量なimageを使用する
    ○ buildに時間がかからない
  • USERの指定を行い、non-rootユーザーの権限を与えるようにする
    ○ コンテナに侵入された場合でもnon-rootで安心
  • ADDではなく、基本的にCOPYを使用する
    × ADDはインターネットに公開されているURLからコードを取得できる機能がついているため、悪意のあるURLからファイルを取得しかねない

Artifact Registry

  • Container Registryはできる限り使用しない
    × Container Registryは2024年5月15日に廃止予定になっている
    ○ Artifact RegistryはContainer Registryの進化系の立ち位置

Cloud Run

  • CPUの割り当て構成によって料金が異なる
    ○ 時間帯によってリクエストが変動するシステムの場合、CloudRun作成時にCPUの割り当てを 「リクエストの処理中にのみCPUを割り当てる」 に設定すると、コスト削減できる可能性がある。リクエストが全くない時間はCloudRunサービスに料金はかからない
    リクエストの処理中にのみCPUを割り当てる」 に設定した場合、リクエストが長時間ない時、最大で15分のアイドル状態後、待機中のコンテナインスタンスが0個になり、いわゆるコールドスタートが発生するが、Startup CPU boost機能をONにしておくと、レイテンシを軽減してくれる
    「常にCPUを割り当てる」 に設定した場合、待機中のコンテナインスタンスにかかるCPU料金は、稼働中と比べて1割程度
  • インスタンスの詳細な設定ができる
    ○ インスタンスのCPU/メモリ、インスタンスあたりの同時実行数、タイムアウト、最大/最小インスタンス数を調整することで、パフォーマンスの調整が可能

Cloud Domains/Cloud DNS/MANAGE CUSTOM DOMAIN

  • GCPでドメインの購入やDNSの設定ができる
    ○ ドメイン周りの作業をGCPのみで解決
  • CloudRunにデフォルトドメイン以外を設定できる
    ○ MANAGE CUSTOM DOMAINを使用して独自ドメインの割り当て可能(※Load Balancerを使用する場合設定の必要はありません)

Cloud Armor

  • Adaptive Protection
    ○ レイヤ7のDDoS攻撃に対して、防御のためのシグネチャを自動生成できる

Load Balancer/Serverless NEG/Certificate Manager

  • HTTP(S)Load BalancingとServerless NEGを組み合わせて使用する
    ○ IPの固定が必要だが、「IPアドレス」から簡単にできる
    ○ GoogleマネージドSSL証明書やCloudArmorによるウェブアプリケーションの保護、リダイレクトなどの機能が使える
    × Googleマネージド証明書のプロビジョニングに時間がかかる場合があり、設定が誤っているのか、プロビジョニング中なのか分かりづらい

Discussion