GraphQL Federationをクラウドと構築する
マイクロサービス構成でGraphQLを使うなら、Federation(フェデレーション)は避けて通れないアーキテクチャです。しかし、サブグラフの設計やスキーマ合成の設定は手間がかかります。Claude Codeを使えば、この複雑な作業をスムーズに進められます。
サブグラフの定義をClaude Codeに任せる
Section titled “サブグラフの定義をClaude Codeに任せる”まずはClaude Codeに対して、担当するドメインを伝えながらサブグラフのスキーマ定義を依頼しましょう。たとえば「ユーザーサービス」のサブグラフを作るなら、次のように入力します。
「Apollo Federation v2を使ったユーザーサービスのサブグラフを作ってください。UserエンティティにはID・名前・メールアドレスを持たせ、@keyディレクティブで定義してください。」するとClaude Codeは以下のようなスキーマを生成してくれます。
extend schema @link(url: "https://specs.apollo.dev/federation/v2.0", import: ["@key"])
type User @key(fields: "id") { id: ID! name: String! email: String!}
type Query { user(id: ID!): User}@keyの指定方法やextend schemaの書き方も含めて、正確なFederation構文で出力してくれるのが便利なポイントです。
スキーマ合成とRouterの設定を自動化する
Section titled “スキーマ合成とRouterの設定を自動化する”複数のサブグラフができたら、次はスーパーグラフの合成です。Claude Codeに「Rover CLIを使ってスキーマを合成するコマンドとsupergraph.yamlの設定を書いてほしい」と依頼すれば、すぐに動けるファイル一式を生成してくれます。
federation_version: =2.0.0subgraphs: users: routing_url: http://localhost:4001/graphql schema: file: ./users.graphql products: routing_url: http://localhost:4002/graphql schema: file: ./products.graphqlその後、以下のコマンドでスーパーグラフスキーマを生成できます。
rover supergraph compose --config supergraph.yaml > supergraph-schema.graphqlClaude Codeはエラーが出た際の原因も説明してくれるので、@keyの不整合や型の競合も素早く解消できます。
クラウドデプロイまで一気に仕上げる
Section titled “クラウドデプロイまで一気に仕上げる”スキーマが完成したら、Apollo RouterをDockerコンテナとしてデプロイする構成をClaude Codeに依頼しましょう。「AWS ECS向けのDockerfile とタスク定義を作ってほしい」のように具体的なクラウド環境を指定するのがコツです。環境変数の渡し方やヘルスチェックの設定まで含めて提案してくれます。
Federation設計は全体像を把握するのが難しいですが、Claude Codeを対話相手にしながら少しずつ組み立てていくと、複雑な構成でも迷わず進められます。ぜひ試してみてください。