stackbook

← 辞書(分野別)

§12

インフラ・実行環境

最終確認:2026年9月

12-1. どこで動かすか

AWSを使う
  • Lambdaリクエストがまばらでコールドスタートを許容できるとき
  • ECS Express Mode構成を最小にしたい小規模案件

App Runnerは新規受付を終了したため選ばない

GCPを使う
自由に選べる・Webアプリ
  • Fly.ioリージョンの指定やマシン単位の細かい制御が必要なとき
  • Railway個人・検証用途
静的サイト
  • GitHub Pages公開リポジトリの個人サイトで、使うサービスを増やしたくないとき
Next.js
エッジ・軽量API
VPS・オンプレVM
Kamal(Dockerコンテナをゼロダウンタイムでデプロイ)
  • Docker Compose+手動単一サーバーで更新頻度が低いとき
Kubernetes
原則として使わない
  • EKS/GKE多数のサービスを運用する専任チームがいるとき

12-2. コンテナ

イメージ作成
Dockerfile(マルチステージビルド)
ベースイメージ
Go:distroless/ その他:公式slim系イメージ
レジストリ
ECR(AWS)/ GHCR(それ以外)
Dockerfile Lint
イメージ脆弱性スキャン

12-3. IaC

IaC本体
Terraform(ライセンスを気にするなら OpenTofu。記法は互換)
  • AWS CDKAWS専用でTypeScriptで書きたいとき
  • Pulumi複数クラウドを汎用言語で書きたいとき
stateの保存
S3バックエンド(ネイティブロック)
  • HCP Terraformチームでのplan/applyのレビュー運用が必要なとき
Lint
セキュリティ検査
Trivy(設定ファイルのスキャン)
  • CheckovTrivyにないポリシーで検査したいとき
フォーマット
ドキュメント生成
CIでのplan/apply
GitHub Actionsでplan結果をPRにコメント
  • AtlantisPRコメント駆動の運用をしたいとき

12-4. ネットワーク・エッジ

DNS
  • Route 53AWSで完結させたいとき
CDN
  • CloudFrontAWS内で完結、S3オリジン中心のとき
WAF
  • AWS WAFALB/CloudFrontに直接付けたいとき
アクセス集中対策
管理画面・社内ツールの保護
Cloudflare Access(ゼロトラスト)
  • Tailscaleサーバーへの管理アクセス全般
証明書
Cloudflare/ACM(自動更新)

Let's Encrypt(Kamalは自動対応)

サーバーへのSSH

12-5. シークレット管理

AWS上のアプリ
AWS Secrets Manager(頻繁に変わらない設定値はSSM Parameter Store)
チーム共有・ローカル開発
1Password(1Password CLIで注入)
  • Doppler複数環境・複数サービスを一元管理したいとき
リポジトリ内で暗号化して管理
Kamal
.kamal/secrets から1Password等を参照