Kiro が Kimi K3 をサポート、Claude、GPT のモデルと成果物を比較してみた

Kiro が Kimi K3 をサポート、Claude、GPT のモデルと成果物を比較してみた

Kiro で Kimi K3 が選べるようになったので、Claude と GPT の4モデルと同じ依頼で比べました。脆弱性の指摘はほぼ同じ件数で、構成図は図の整理のされ方に差が出ました。
2026.10.17

はじめに

2026年10月15日、Kiro で Kimi K3 が experimental として利用可能になりました。

https://kiro.dev/blog/kimi-k3/

Kimi K3 は Moonshot AI のオープンウェイトモデルで、コンテキストウィンドウは 1M トークンです。この記事では、5モデルに同じ2つの依頼を出して回答を並べました。比べたのは Kimi K3、Claude Opus 5.5、Claude Sonnet 5.5、GPT-5.6 Terra、GPT-5.6 Luna です。依頼は、CloudFormation テンプレートの脆弱性指摘と、ウェブ三層テンプレートからの draw.io 構成図の作成です。

使う前に確認すること

Kimi K3 の対象プランは Pro、Pro+、Pro Max、Power です。Free tier では、モデル選択に表示されません。Enterprise は、管理者がモデルアクセス管理を有効にしてKimi K3 を承認済みリストに追加すると選べます。選べるのは US geography のユーザーのみです。ただし experimental のため、リクエストは US 内に限らず、世界中の商用 AWS リージョンで処理され得ます。

Kimi K3 は Kiro Excluded Models に名指しで含まれます。experimental、pre-release、preview、beta と指定されたモデルも同じ扱いです。Kiro Excluded Models には、AWS Service Terms の Section 50.10 の出力補償は適用されません。今回比べる Opus 5.5、Terra、Luna も、kiro-cli chat --list-models では Experimental preview と表示されます。

https://kiro.dev/docs/models/available-models/#kiro-excluded-models

  claude-opus-5.5      2.00x credits      Experimental preview of Claude Opus 5.5 model with 1M context window
  claude-sonnet-5.5    1.30x credits      Claude Sonnet 5.5 model with 1M context window
  ...
  gpt-5.6-terra        2.20x credits      Experimental preview of OpenAI GPT 5.6 Terra with 1M context window
  gpt-5.6-luna         0.60x credits      Experimental preview of OpenAI GPT 5.6 Luna with 1M context window
  ...
  kimi-k3              2.40x credits      Experimental preview of Kimi K3. Kimi K3 is a Kiro Excluded Model. For more info, see documentation.

検証の条件

実行した kiro-cli のバージョンは、脆弱性指摘の Kimi K3、Opus 5.5、Sonnet 5.5 が 2.31.0、それ以外の実行がすべて 2.32.0 です。いずれもツールを1つも信頼しない設定にして、空のディレクトリから実行しました。同じ依頼を5モデルに1回ずつ出しました。以降の値はすべてこの1回のものです。依頼文は prompt.txt に保存しました。モデルごとに変えたのは --model と、Opus 5.5 だけに付けた --effort medium です。筆者の環境では設定で Opus 5.5 の effort が high になるため、モデル自体の既定である medium を明示しました。Kimi K3、Sonnet 5.5、Terra、Luna は --effort を指定しておらず、実行時の effort は出力に出ませんでした。

kiro-cli chat --model kimi-k3 --trust-tools= --output-format stream-json "$(cat prompt.txt)"
kiro-cli chat --model claude-opus-5.5 --effort medium --trust-tools= --output-format stream-json "$(cat prompt.txt)"
kiro-cli chat --model claude-sonnet-5.5 --trust-tools= --output-format stream-json "$(cat prompt.txt)"
kiro-cli chat --model gpt-5.6-terra --trust-tools= --output-format stream-json "$(cat prompt.txt)"
kiro-cli chat --model gpt-5.6-luna --trust-tools= --output-format stream-json "$(cat prompt.txt)"

構成図の依頼も同じコマンドで、prompt.txt の中身だけを替えました。構成図の依頼は、5モデル分を並列に実行しました。消費クレジット(meteringUsage)と所要時間(turnDurationMs)は、stream-json の最後の metadata イベントから取りました。

CloudFormation テンプレートの脆弱性を指摘させる

入力は、セキュリティグループの全開放、IMDSv1、暗号化なしの EBS、パブリック IP、未使用リソースなどを仕込んだ自作のダミーテンプレートです。依頼文は「このテンプレートのセキュリティ上の問題を、リソースとプロパティ名を示して指摘して。修正案も。」で、この1行のあとにテンプレート全文を続けました。

入力テンプレート(148 行)

問題を意図的に仕込んだ検証用のテンプレートです。デプロイしないでください。

AWSTemplateFormatVersion: '2010-09-09'
Description: Sample EC2 stack with security group, EBS volume, ENI, EIP and launch template

Parameters:
  VpcId:
    Type: AWS::EC2::VPC::Id
  SubnetId:
    Type: AWS::EC2::Subnet::Id
  LatestAmiId:
    Type: AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>
    Default: /aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64

Resources:
  Ec2SsmRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: ec2.amazonaws.com
            Action: sts:AssumeRole
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

  Ec2InstanceProfile:
    Type: AWS::IAM::InstanceProfile
    Properties:
      Roles:
        - !Ref Ec2SsmRole

  AppSG:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Security group for the application
      VpcId: !Ref VpcId
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 22
          ToPort: 22
          CidrIp: 0.0.0.0/0
        - IpProtocol: tcp
          FromPort: 3389
          ToPort: 3389
          CidrIp: 0.0.0.0/0
        - IpProtocol: tcp
          FromPort: 22
          ToPort: 22
          CidrIpv6: '::/0'
        - IpProtocol: tcp
          FromPort: 3389
          ToPort: 3389
          CidrIpv6: '::/0'
        - IpProtocol: tcp
          FromPort: 8080
          ToPort: 8080
          CidrIp: 0.0.0.0/0
        - IpProtocol: tcp
          FromPort: 3306
          ToPort: 3306
          CidrIp: 0.0.0.0/0
        - IpProtocol: tcp
          FromPort: 5432
          ToPort: 5432
          CidrIp: 0.0.0.0/0

  AuxSG:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Security group for auxiliary use
      VpcId: !Ref VpcId

  AppInstance:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: t3.micro
      ImageId: !Ref LatestAmiId
      IamInstanceProfile: !Ref Ec2InstanceProfile
      MetadataOptions:
        HttpTokens: optional
        HttpEndpoint: enabled
      NetworkInterfaces:
        - DeviceIndex: 0
          SubnetId: !Ref SubnetId
          AssociatePublicIpAddress: true
          GroupSet:
            - !Ref AppSG

  DataVolume:
    Type: AWS::EC2::Volume
    Properties:
      AvailabilityZone: !GetAtt AppInstance.AvailabilityZone
      Size: 1
      Encrypted: false

  VolumeAttachment:
    Type: AWS::EC2::VolumeAttachment
    Properties:
      Device: /dev/xvdf
      InstanceId: !Ref AppInstance
      VolumeId: !Ref DataVolume

  ExtraENI:
    Type: AWS::EC2::NetworkInterface
    Properties:
      SubnetId: !Ref SubnetId
      GroupSet:
        - !Ref AppSG
      SourceDestCheck: false

  ENIAttachment:
    Type: AWS::EC2::NetworkInterfaceAttachment
    Properties:
      DeviceIndex: 1
      InstanceId: !Ref AppInstance
      NetworkInterfaceId: !Ref ExtraENI

  SpareEIP:
    Type: AWS::EC2::EIP
    Properties:
      Domain: vpc

  AppLaunchTemplate:
    Type: AWS::EC2::LaunchTemplate
    Properties:
      LaunchTemplateData:
        InstanceType: t3.micro
        ImageId: !Ref LatestAmiId
        MetadataOptions:
          HttpTokens: optional
          HttpEndpoint: enabled
        NetworkInterfaces:
          - DeviceIndex: 0
            AssociatePublicIpAddress: true
            Groups:
              - !Ref AppSG
        BlockDeviceMappings:
          - DeviceName: /dev/xvda
            Ebs:
              VolumeSize: 8
              Encrypted: false

Outputs:
  InstanceId:
    Value: !Ref AppInstance
  SecurityGroupId:
    Value: !Ref AppSG

指摘の件数

正解表は、このテンプレートに当てはまる Security Hub の EC2 コントロール 22 件を基準に、リソースとプロパティの組を1件として数え直した21件です。1件が複数のコントロールに当たることも、1つのコントロールが複数の件にまたがることもあるため、件数はコントロール数と一致しません。

正解表 21 件
# リソース 問題 対応コントロール
1 AppSG SecurityGroupIngress 22/tcp が CidrIp: 0.0.0.0/0 EC2.13, EC2.18, EC2.19, EC2.53
2 AppSG 3389/tcp が CidrIp: 0.0.0.0/0 EC2.14, EC2.18, EC2.19, EC2.53
3 AppSG 22/tcp と 3389/tcp が CidrIpv6: ::/0 EC2.13, EC2.14, EC2.18, EC2.19, EC2.54
4 AppSG 8080/tcp が 0.0.0.0/0 EC2.18, EC2.19
5 AppSG 3306/tcp と 5432/tcp が 0.0.0.0/0 EC2.18, EC2.19
6 AppSG タグなし EC2.43
7 AuxSG どこにもアタッチされていない EC2.22
8 AppInstance MetadataOptions.HttpTokens: optional EC2.8
9 AppInstance NetworkInterfaces[0].AssociatePublicIpAddress: true EC2.9
10 AppInstance タグなし EC2.38
11 DataVolume Encrypted: false EC2.3
12 DataVolume タグなし EC2.45
13 ExtraENI(ENIAttachment) SourceDestCheck: false EC2.180
14 AppInstance / ENIAttachment ENI を2枚目(DeviceIndex: 1)として追加している EC2.17
15 ExtraENI タグなし EC2.35
16 SpareEIP インスタンスにも ENI にも関連付けられていない(EIPAssociation なし) EC2.12
17 SpareEIP タグなし EC2.37
18 AppLaunchTemplate MetadataOptions.HttpTokens: optional EC2.170
19 AppLaunchTemplate NetworkInterfaces[0].AssociatePublicIpAddress: true EC2.25
20 AppLaunchTemplate BlockDeviceMappings[0].Ebs.Encrypted: false EC2.181
21 AppLaunchTemplate タグなし EC2.175

採点では最終回答の本文だけを見ました。

モデル 正解表 21 件のうち指摘した件数 正解表にない正しい指摘
Kimi K3 13 2
Opus 5.5 14 2
Sonnet 5.5 14 3
GPT-5.6 Terra 13 1
GPT-5.6 Luna 13 1

5モデルすべてが指摘した13件は、次のとおりです。括弧内は正解表の番号です。

  • AppSG:22、3389、22 と 3389 の IPv6(::/0)、8080、3306 と 5432 の全開放(#1〜#5)
  • AppInstance と AppLaunchTemplate:IMDSv1 とパブリック IP(#8、#9、#18、#19)
  • DataVolume と AppLaunchTemplate:暗号化なし(#11、#20)
  • ExtraENI:SourceDestCheck(#13)
  • SpareEIP:未関連付け(#16)

Kimi K3、Terra、Luna の件数が1件少ないのは、Opus 5.5 と Sonnet 5.5 が挙げた未使用の AuxSG を指摘しなかったためです。

5モデルすべてが指摘しなかったのは7件でした。AppSG・AppInstance・DataVolume・ExtraENI・SpareEIP・AppLaunchTemplate の6件のタグなしと、ENI を2枚目として追加している構成です。どの最終回答にも、タグが付いていないことへの指摘は出ていません。共通して指摘した13件と共通して落とした7件で 21 件中 20 件を占め、5モデルの差は AuxSG の1件だけでした。

指摘の中身

正解表にない正しい指摘のうち、アウトバウンド未指定(SecurityGroupEgress がなく全許可になる)は5モデルに共通でした。Opus 5.5 と Sonnet 5.5 はこれに加えて、AppInstance の BlockDeviceMappings が未指定の点を挙げました。この場合、ルートボリュームの暗号化はアカウント設定に依存します。

AppLaunchTemplate がどのリソースからも参照されていない点は、5モデルのうち Kimi K3 だけが挙げました。実際、入力テンプレートで AppLaunchTemplate が出てくるのは定義の1か所だけです。Sonnet 5.5 だけが挙げたのは、LatestAmiId が SSM パラメータ型のため、スタックを更新するたびに Parameter Store の最新値へ解決される点です。

Kimi K3 と Opus 5.5 の回答には、ドキュメントと食い違う記述が1か所ずつありました。Kimi K3 は補足で次のように書いています。

- `Ec2SsmRole` / `ManagedPolicyArns`: `AmazonSSMManagedInstanceCore` は標準的な選択ですが、S3 の `ssm:GetObject` 系が広めなので、厳密な最小権限が必要なら独自ポリシーに置き換える検討余地があります。

aws iam get-policy-version で取得した AmazonSSMManagedInstanceCore(既定バージョン v2)に含まれるのは、ssm:、ssmmessages:、ec2messages: で始まるアクションだけです。S3 のアクションは含まれません。ssm:GetObject というアクションもそもそも存在しません。

https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSSMManagedInstanceCore.html

Opus 5.5 は、自身の回答にある指摘表の13行目(AppLaunchTemplate の暗号化なし)に次のように書いています。

ルートボリュームが暗号化されません。アカウントのデフォルト暗号化が有効でも、`false` を明示すると効かなくなるので要注意です。

EBS のドキュメントによると、暗号化のデフォルト設定はリージョン単位です。リージョンでデフォルト暗号化を有効にすると、そのリージョン内の個々のボリュームやスナップショットでは無効にできません。

https://docs.aws.amazon.com/ebs/latest/userguide/encryption-by-default.html

Sonnet 5.5、Terra、Luna の回答では、同種の食い違いは見つかりませんでした。

修正案の形は5モデルで異なります。Opus 5.5 は15行の指摘表と、修正版テンプレート全文を出しました。許可元の SG ID や KMS キーはパラメータとして追加されていて、テンプレート単体で参照先がそろっています。Sonnet 5.5 は重大度別の指摘と、修正用の YAML を1ブロックで出しました。Terra は13行の指摘表と、修正の骨子の YAML を1ブロックで出しました。Luna は20行の指摘表と、項目別の YAML を出しました。Kimi K3 は項目ごとの説明に YAML の抜粋を添える形です。

Kimi K3 の AppSG の抜粋には、AlbSG を参照する次の行があります。

SourceSecurityGroupId: !Ref AlbSG

入力テンプレートにも抜粋にも AlbSG は定義されていません。Terra と Luna の修正案にも、定義のない AlbSG を参照する同じ行があります。Kimi K3 と Terra はコメントで、Luna は「AlbSG は例示です」という注記で、ALB を置く場合の例だと添えています。

draw.io の構成図を作らせる

入力は、2 AZ の VPC、ALB、EC2 2台、RDS(Multi-AZ)、IGW、NAT ゲートウェイからなるウェブ三層の自作ダミーテンプレートです。ALB は2つの public サブネットに配置しました。依頼文の全文は、「描画結果」の節の折りたたみに載せました。要点は、draw.io 形式の XML をコードブロック1つで答えること、AWS アーキテクチャアイコンを使うこと、VPC とサブネットを枠で表すこと、リソース間を線でつなぐことです。さらに、描くのはサービス名のラベルを付けたアイコン、線、エリア(枠)だけにして、コメント、凡例、注記、線の上のラベルは入れないよう指定しました。見た目や配置の細部は任せました。

入力テンプレート
AWSTemplateFormatVersion: '2010-09-09'
Description: Three-tier web application (ALB, EC2, RDS) in a new VPC across two AZs

Parameters:
  LatestAmiId:
    Type: AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>
    Default: /aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64
  InstanceType:
    Type: String
    Default: t3.micro
  DbInstanceClass:
    Type: String
    Default: db.t3.micro

Resources:
  Vpc:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: 10.0.0.0/16
      EnableDnsSupport: true
      EnableDnsHostnames: true
      Tags:
        - Key: Name
          Value: web3-vpc

  Igw:
    Type: AWS::EC2::InternetGateway

  IgwAttachment:
    Type: AWS::EC2::VPCGatewayAttachment
    Properties:
      VpcId: !Ref Vpc
      InternetGatewayId: !Ref Igw

  PublicSubnetA:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref Vpc
      CidrBlock: 10.0.0.0/24
      AvailabilityZone: ap-northeast-1a
  PublicSubnetC:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref Vpc
      CidrBlock: 10.0.1.0/24
      AvailabilityZone: ap-northeast-1c
  AppSubnetA:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref Vpc
      CidrBlock: 10.0.10.0/24
      AvailabilityZone: ap-northeast-1a
  AppSubnetC:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref Vpc
      CidrBlock: 10.0.11.0/24
      AvailabilityZone: ap-northeast-1c
  DbSubnetA:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref Vpc
      CidrBlock: 10.0.20.0/24
      AvailabilityZone: ap-northeast-1a
  DbSubnetC:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref Vpc
      CidrBlock: 10.0.21.0/24
      AvailabilityZone: ap-northeast-1c

  PublicRouteTable:
    Type: AWS::EC2::RouteTable
    Properties:
      VpcId: !Ref Vpc
  PublicDefaultRoute:
    Type: AWS::EC2::Route
    DependsOn: IgwAttachment
    Properties:
      RouteTableId: !Ref PublicRouteTable
      DestinationCidrBlock: 0.0.0.0/0
      GatewayId: !Ref Igw
  PublicSubnetAAssoc:
    Type: AWS::EC2::SubnetRouteTableAssociation
    Properties:
      SubnetId: !Ref PublicSubnetA
      RouteTableId: !Ref PublicRouteTable
  PublicSubnetCAssoc:
    Type: AWS::EC2::SubnetRouteTableAssociation
    Properties:
      SubnetId: !Ref PublicSubnetC
      RouteTableId: !Ref PublicRouteTable

  NatEip:
    Type: AWS::EC2::EIP
    Properties:
      Domain: vpc
  NatGateway:
    Type: AWS::EC2::NatGateway
    Properties:
      AllocationId: !GetAtt NatEip.AllocationId
      SubnetId: !Ref PublicSubnetA

  AppRouteTable:
    Type: AWS::EC2::RouteTable
    Properties:
      VpcId: !Ref Vpc
  AppDefaultRoute:
    Type: AWS::EC2::Route
    Properties:
      RouteTableId: !Ref AppRouteTable
      DestinationCidrBlock: 0.0.0.0/0
      NatGatewayId: !Ref NatGateway
  AppSubnetAAssoc:
    Type: AWS::EC2::SubnetRouteTableAssociation
    Properties:
      SubnetId: !Ref AppSubnetA
      RouteTableId: !Ref AppRouteTable
  AppSubnetCAssoc:
    Type: AWS::EC2::SubnetRouteTableAssociation
    Properties:
      SubnetId: !Ref AppSubnetC
      RouteTableId: !Ref AppRouteTable

  DbRouteTable:
    Type: AWS::EC2::RouteTable
    Properties:
      VpcId: !Ref Vpc
  DbSubnetAAssoc:
    Type: AWS::EC2::SubnetRouteTableAssociation
    Properties:
      SubnetId: !Ref DbSubnetA
      RouteTableId: !Ref DbRouteTable
  DbSubnetCAssoc:
    Type: AWS::EC2::SubnetRouteTableAssociation
    Properties:
      SubnetId: !Ref DbSubnetC
      RouteTableId: !Ref DbRouteTable

  AlbSg:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: ALB
      VpcId: !Ref Vpc
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 80
          ToPort: 80
          CidrIp: 0.0.0.0/0
  AppSg:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: App servers
      VpcId: !Ref Vpc
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 8080
          ToPort: 8080
          SourceSecurityGroupId: !Ref AlbSg
  DbSg:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Database
      VpcId: !Ref Vpc
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 3306
          ToPort: 3306
          SourceSecurityGroupId: !Ref AppSg

  Alb:
    Type: AWS::ElasticLoadBalancingV2::LoadBalancer
    Properties:
      Type: application
      Scheme: internet-facing
      Subnets:
        - !Ref PublicSubnetA
        - !Ref PublicSubnetC
      SecurityGroups:
        - !Ref AlbSg
  AppTargetGroup:
    Type: AWS::ElasticLoadBalancingV2::TargetGroup
    Properties:
      VpcId: !Ref Vpc
      Protocol: HTTP
      Port: 8080
      TargetType: instance
      HealthCheckPath: /health
      Targets:
        - Id: !Ref AppInstanceA
        - Id: !Ref AppInstanceC
  HttpListener:
    Type: AWS::ElasticLoadBalancingV2::Listener
    Properties:
      LoadBalancerArn: !Ref Alb
      Protocol: HTTP
      Port: 80
      DefaultActions:
        - Type: forward
          TargetGroupArn: !Ref AppTargetGroup

  AppInstanceA:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: !Ref LatestAmiId
      InstanceType: !Ref InstanceType
      SubnetId: !Ref AppSubnetA
      SecurityGroupIds:
        - !Ref AppSg
  AppInstanceC:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: !Ref LatestAmiId
      InstanceType: !Ref InstanceType
      SubnetId: !Ref AppSubnetC
      SecurityGroupIds:
        - !Ref AppSg

  DbSubnetGroup:
    Type: AWS::RDS::DBSubnetGroup
    Properties:
      DBSubnetGroupDescription: Database subnets
      SubnetIds:
        - !Ref DbSubnetA
        - !Ref DbSubnetC
  Database:
    Type: AWS::RDS::DBInstance
    Properties:
      Engine: mysql
      DBInstanceClass: !Ref DbInstanceClass
      AllocatedStorage: 20
      MultiAZ: true
      PubliclyAccessible: false
      DBSubnetGroupName: !Ref DbSubnetGroup
      VPCSecurityGroups:
        - !Ref DbSg
      MasterUsername: admin
      ManageMasterUserPassword: true

機械採点

検査は19項目で、主な項目は次のとおりです。

  • XML として読める
  • id が一意で、線の始点と終点が存在する
  • サブネットが VPC の枠の中にあり、EC2・RDS・NAT が正しいサブネットの中にある
  • IGW が VPC の枠の外縁にまたがるか、枠の外にある
  • ALB が public サブネットの枠の中か、2つの public サブネットの間にある
  • サブネットの枠どうしや、アイコンなどの図形どうしが重ならず、子が親の枠からはみ出さない

線の経路は検査に含まれません。

モデル 合格した項目 不合格の項目
Kimi K3 19 / 19 なし
Opus 5.5 19 / 19 なし
Sonnet 5.5 18 / 19 IGW が VPC の枠の内側に収まっている
GPT-5.6 Terra 18 / 19 RDS が DB サブネットの枠の中にない(RDS を1つだけ、2つの DB サブネットの間に置く)
GPT-5.6 Luna 16 / 19 RDS が DB サブネットの枠の中にない、IGW が VPC の枠の内側に収まっている、図形の重なりが1件

Opus 5.5 以外の4モデルは、サブネット6枚とも、親をたどると VPC に行き着きます。Opus 5.5 の XML は全図形が絶対座標で、サブネット6枚はいずれも VPC の子要素になっていません。検査は座標で内外を判定するため、この点で不合格にはなりません。

描画結果

構成図の依頼文です。この依頼文のあとに、入力テンプレートの全文を続けました。

構成図の依頼文
次の CloudFormation テンプレートの構成図を、draw.io(diagrams.net)で開ける形式で作ってください。ツールは使えません。

要件:
- 回答は、`.drawio` ファイルの中身全体(`<mxfile>` から `</mxfile>` まで、圧縮なしの XML)を、```xml のコードブロック 1 つだけで出してください。ブロックは回答の中で 1 つにしてください
- AWS のアーキテクチャアイコン(draw.io の AWS 図形)を使う
- VPC とサブネットは枠(グループ)で表し、リソースを置いた場所が分かるようにする
- リソース間の関係や通信の流れを、線(矢印)でつなぐ
- アイコンと枠には、リソースの名前が分かるラベルを付ける
- 描くのは、サービス名のラベルを付けたアイコン、線、エリア(枠)だけにする。XML のコメント、凡例、注記や説明のテキスト図形、線の上のラベルは入れない

構成図の見た目や配置の細部は任せます。

draw.io デスクトップ版のヘッドレス描画で出力しました。

  • Kimi K3

Kimi K3 が作成した構成図の描画結果

  • Opus 5.5

Opus 5.5 が作成した構成図の描画結果

  • Sonnet 5.5

Sonnet 5.5 が作成した構成図の描画結果

  • GPT-5.6 Terra

GPT-5.6 Terra が作成した構成図の描画結果

  • GPT-5.6 Luna

GPT-5.6 Luna が作成した構成図の描画結果

筆者の目視では次の違いがありました。

モデル AZ の枠 ALB の位置 RDS の Multi-AZ 線と文字の重なり、配置
Kimi K3 あり(AZ の枠の中にサブネット3枚ずつ) PublicSubnetA の中だけ Primary と Standby の2つ。Standby に線がない NAT から IGW への線が VPC の枠をぐるりと回る
Opus 5.5 あり(破線) 2つの public サブネットの間 Primary と Standby の2つを、点線の両矢印でつなぐ 少ない(NAT への破線が AppSubnetC の見出しに重なる)
Sonnet 5.5 なし(AZ はサブネット名に書く) 2つの public サブネットの間 Primary と Standby の2つを、点線の両矢印でつなぐ 少ない(NAT への破線が AppSubnetC の見出しに重なる)
GPT-5.6 Terra なし(AZ はサブネット名に書く) 2つの public サブネットの間 1つだけ。2つの DB サブネットの間に置く サブネット名が縦書きで、ラベルの2行が重なる。長い線が複数のサブネットを横切る
GPT-5.6 Luna なし 2つの public サブネットの間 1つだけ。DbSubnetGroup の枠の中で、2つの DB サブネットの間に置く 破線が多数の図形とラベルを横切る。ルートテーブルを VPC の枠の中の下端に置く

Luna の EC2 アイコンは、アイコン名の指定が誤っていて、グリフのない橙の四角で描画されました。XML では EC2 に resIcon=mxgraph.aws4.ec2_instance が指定されていて、resIcon=mxgraph.aws4.ec2 に替えるとグリフが出ます。

クレジットと所要時間

倍率は表示値、クレジットは実測値です。

モデル(倍率) 脆弱性指摘 クレジット 脆弱性指摘 所要時間 構成図 クレジット 構成図 所要時間
Kimi K3(2.40x) 1.20 30 秒 6.12 231 秒
Opus 5.5(2.00x) 1.55 52 秒 2.96 98 秒
Sonnet 5.5(1.30x) 0.83 32 秒 2.82 122 秒
GPT-5.6 Terra(2.20x) 1.07 28 秒 1.73 43 秒
GPT-5.6 Luna(0.60x) 0.44 28 秒 0.76 53 秒

クレジットの多い順は、倍率の大きい順と一致しませんでした。構成図では Terra が Opus 5.5 と Sonnet 5.5 を下回り、脆弱性指摘では Kimi K3 と Terra が Opus 5.5 を下回りました。

まとめ

2026年9月の Amazon Bedrock での提供開始に続き、Kiro でも Kimi K3 が experimental として選べるようになりました。

https://dev.classmethod.jp/articles/moonshot-ai-kimi-k3-bedrock/

Artificial Analysis の報告(2026年7月)では、Kimi K3 の総合性能は Opus 4.8 や GPT-5.5 と同程度で、Fable 5 や GPT-5.6 Sol には及ばないとされています。

https://artificialanalysis.ai/articles/kimi-k3-achieves-3-in-the-artificial-analysis-intelligence-index-comparable-to-opus-4-8-and-gpt-5-5

今回の評価では、CloudFormation テンプレートの脆弱性指摘は5モデルの指摘がほぼ重なり、Kimi K3 だけが挙げた指摘もありました。
Claude や GPT が解けない課題の対応や、見落とした点を拾うセカンドオピニオン役として、Kimi K3 をお試しください。


AI白書2026 配布中

クラスメソッドが独自に行なったAI診断調査をもとに、企業のAI活用の現在地を調査レポートとしてまとめました。企業規模別の活用度傾向に加え、規模を超えてAI活用を進める企業に共通する取り組みまで、自社の現在地を捉えるためのヒントにぜひ。

AI白書2026

無料でダウンロードする

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事