
2026/02/17 12:23
**インフラに関する決断 ― スタートアップで4年間過ごした後、支持したことと後悔したこと(2024)**
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
提供された要約はすでに主要なポイントを忠実に捉え、意図した意味を保ち、曖昧または混乱を招く表現を避けています。したがって、そのまま繰り返しても問題ありません。
本文
AWS
Google CloudよりAWSを選択
🟩 推奨
当初はGCPとAWSの両方を使用していましたが、Googleには明確な「アカウントマネージャー」が存在せず、AWSでは定期的にアカウントマネージャーと面談できました。Amazon のサポート体験は顧客中心であり、新しいサービスの評価にも役立ちました。また、安定性や後方互換性を保った API 変更が少ない点も魅力です。かつては Kubernetes クラスターに Google が選ばれていましたが、現在では AWS の豊富な統合(external‑dns、external‑secrets 等)がその課題を解消しています。
EKS
🟩 推奨
時間と予算が許せば、自前でコントロールプレーンを構築する必要はありません。ECS などの代替手段は AWS 統合が深い点だけがメリットです。Kubernetes は追いついており、例えば external‑dns が Route 53 と連携します。
🟧 後悔
最初は「正しい」選択だと考えて EKS のマネージドアドオンを使いましたが、CPU リクエストやイメージタグ、ConfigMap をカスタマイズする必要が頻繁に出てきました。これらのアドオンを Helm チャートへ切り替えることでデプロイがスムーズになり、GitOps パイプラインにもフィットしました。
RDS
🟩 推奨
データは不可欠であり、ダウンタイムや損失は破滅的です。RDS のマネージドデータベースはコスト以上の信頼性と運用簡素化を提供します。
Redis(ElastiCache)
🟩 推奨
キャッシュとしてだけでなく、さまざまなユースケースに対応できる高速かつシンプルです。AWS によって広くサポートされており、機能セットはキャッシングを超えて拡張されています。
ECR
🟩 推奨
quay.io(不安定)から ECR へ移行したことで安定性が向上し、EKS ノードや開発サーバーとの権限統合も強化されました。
VPN
🟩 推奨
Zero‑Trust の代替手段はありますが、シンプルな VPN は設定と理解が容易です。アクセス管理には Okta を使用し、良好な体験を得ています。
AWS Premium Support
🟧 後悔
費用が高く、他のエンジニアを雇うコストに匹敵します。社内で AWS 知識が低い場合は価値がありますが、それ以外の場合は後悔しています。
Control Tower & Terraform
Control Tower Account Factory for Terraform (AFT)
🟩 推奨
AFT が登場する前はアカウント作成の自動化が面倒でした。AFT により、アカウントをスムーズに起動でき、タグ付けも標準化できます。これはピアリング決定やコスト配分に不可欠です。
Terraform Cloud
🟨 後悔なし
Terraform Cloud への移行は試みましたが費用対効果が低く感じられました。Atlantis に切り替えても十分で、CI/CD 自動化で不足している機能を補っています。
プロセス自動化
Slack ボットでポストモーテムプロセスを自動化
🟩 推奨
人々にポストモーテムの記入を促すボットは、誰かを「悪者」と感じさせずにプロセスを進めます。基本的なリマインダー(例:「1時間メッセージがない」や「ポストモーテムを予定する」)が驚くほど効果的です。
PagerDuty テンプレートと Notion
🟩 推奨
PagerDuty は堅牢なインシデントテンプレートを提供します。Notion でカスタマイズすれば、再発防止に必要な柔軟性が得られます。
アラート戦略
🟩 推奨
2 層のアラートシステムを採用しています:クリティカルは即時起床、非クリティカルはオンコールへメールで通知。PagerDuty の定期レビュー会議で閾値を調整しノイズを削減します。
財務・費用追跡
月次費用追跡ミーティング
🟩 推奨
月単位で財務とエンジニアリングが参加し、SaaS 請求書を検証。タグやアカウント別に AWS コストを集計し、高レベルのドライバー(スポットインスタンス利用、ネットワーク)へ掘り下げます。
🟥 後悔
DataDog と PagerDuty のポストモーテム統合はカスタマイズが難しく、Notion のような wiki スタイルツールの方が当社には適しています。
Function as a Service (FaaS)
FaaS を大量に使わない
🟥 後悔
GPU ワークロードには良い FaaS オプションがなく、完全採用できませんでした。CPU ワークロードなら Lambda が使えますが、24/7 の継続インスタンスと自動スケールの Lambdas は直接比較できません。Lambda の細かいコスト追跡はメリットですが、Kubernetes ではノード単位の費用が見えにくくなります。
GitOps & 開発プラクティス
GitOps
🟩 推奨
サービス、Terraform、設定を横断的に拡張できます。デメリットはパイプライン透明性であり、何故まだデプロイされていないのかを説明するツール投資が必要です。しかし全体として柔軟性が学習コストを上回ります。
チーム効率優先
🟩 推奨
自動化とドキュメントに注力することで、外部要求よりも内部基盤の充実が得られます。これを後悔したことはほぼありません。
複数アプリが同一データベースを共有
🟥 後悔
共有 DB は外部キーが多用され、孤立データやパフォーマンス問題、チーム間の非難を招きます。共有が必須の場合はトレードオフに注意し、所有権を慎重に計画してください。
アイデンティティプラットフォーム(Okta)
🟥 後悔
Google Workspace でグループ権限を管理していましたが柔軟性が不足。初期段階から Okta を採用すれば、後の統合ヘッドエネミーを防げます。最初から堅牢なアイデンティティソリューションに投資してください。
Notion
🟩 推奨
全社でドキュメントが必要です。Notion のデータベース機能と使いやすさは、Wiki、Docs、Confluence を上回ります。
Slack
🟩 推奨
HipChat を置き換えます。スレッドを活用し、応答時間の期待値を設定し、個別メッセージを抑制して可能な限りコミュニケーションを公開化します。
Linear(JIRA 代替)
🟩 推奨
Linear は軽量で直感的です。ボリュームが大きい JIRA よりも、実験精神(「何ができるか?」)を奨励しやすいです。
インフラツール
Terraform Cloud vs. Atlantis
(前述)
GitHub Actions for CI/CD
🟧 推奨程度
コードは GitHub 上にホストしており、CircleCI から Actions に移行しました。Marketplace が豊富で構文が読みやすいです。EKS 上の Self‑hosted ランナー(actions‑runner‑controller)はバグがありますが管理可能です。
Datadog
🟥 後悔
Kubernetes クラスターが頻繁に起動/停止したり GPU を多用すると、インスタンス単位で課金されるためコストが高くなります。PagerDuty は価格設定が適正であり、Datadog の料金モデルだけを後悔しています。
Renovatebot vs. Dependabot
🟩 推奨
Renovatebot は依存関係を最新に保ち、カスタマイズ性があります。ただしセットアップは複雑になる場合があります。
Kubernetes
🟩 推奨
長期稼働サービスに人気で、AWS との統合も堅牢です。柔軟性が高い分、正しく運用できる方法と誤った方法の両方があります。
IP 配置
🟩 推奨
独自 IP ブロックを取得すると、外部パートナーに大きな CIDR を許可できます。システム追加時に頻繁に変更する必要がなくなります。
Flux for GitOps(ArgoCD 代替)
🟨 後悔なし
Flux 1/2 は良好です。ユーザーがデプロイ状態を理解できるよう、ツールを構築することもあります。
Karpenter for node management
🟩 推奨
EKS(Fargate 以外)を使用している場合、Karpenter が最も信頼性とコスト効果の高いオートスケーラーです。
SealedSecrets vs. ExternalSecrets
🟥 後悔
SealedSecrets は非インフラ開発者に秘密作成を複雑化させ、AWS のネイティブローテーション機能を無効化します。
ExternalSecrets
🟩 推奨
AWS 秘密情報を Kubernetes にスムーズに同期し、Terraform や UI から管理できます。
ExternalDNS, cert‑manager, Bottlerocket 等
(各ツールは前述のように簡潔に利点と欠点を記載)
IaC 選択
Terraform over CloudFormation
🟩 推奨
構文がシンプルで、クロスクラウド拡張も可能。障害になる要素はありません。
Pulumi/CDK vs. pure Terraform
🟨 後悔なし
コードベースの IaC は強力ですが複雑さを増します。Terraform の HCL で管理しやすいです。抽象化には自動生成されたスケルトンを使うこともあります。
ネットワークメッシュ(Istio/Linkerd)
🟩 後悔なし
クールですが、過剰なケースが多いです。本当に必要でない限りインフラはシンプルに保ちましょう。
その他
Nginx ロードバランサー(EKS インングレス)
🟩 後悔なし
安定性と実績のある選択肢です。
Homebrew(社内スクリプト配布)
🟩 推奨
Linux と macOS のユーザーにバイナリ/スクリプトを効果的に配布できます。
Go 言語
🟩 推奨
IO 集中型サービスの新規エンジニアには最適なデフォルト選択です。