TIL
Today I Learned — 日々の学びを記録
Bedrock Converse API の tool use はモデルが1ターンで複数ツールを並列呼び出しする
Bedrock Converse API の tool use で 3 種類・計 4 回のツール呼び出しが必要なシナリオで、モデルが 1 回のレスポンスですべてを同時に要求した。逐次呼び出しを想定していたが、並列対応が必要だった。
ECS の NLB 用インフラロールポリシーの ARN に service-role/ プレフィックスはない
AmazonECSInfrastructureRolePolicyForLoadBalancers の ARN は service-role/ なし。他の ECS ポリシーと同じパターンで書くと AttachRolePolicy が失敗する。
ECS の update-service で Linear ↔ Canary を動的に切り替えられる
ECS サービスの再作成なしに、update-service の --deployment-configuration で Linear と Canary を動的に切り替えられることを確認した。
ElastiCache for Valkey のノードベースクラスターは CreateCacheCluster ではなく CreateReplicationGroup で作る
aws elasticache create-cache-cluster --engine valkey が InvalidParameterValue で失敗する。Valkey エンジンは CreateReplicationGroup API が必須だった。
RDS の StorageEncrypted: false は「暗号化されていない」を意味しない
Aurora Express Configuration のクラスターで StorageEncrypted: false が返るが、公式ドキュメントには RDS サービス所有キーで暗号化されていると明記されている。API レスポンスとドキュメントの記述が矛盾する例。
EKS Pod Identity セッションポリシーの AccessDenied は原因が明示される
セッションポリシー起因の拒否は「no session policy allows」、IAM ロール起因は「no identity-based policy allows」とエラーメッセージで区別できる。IAM の権限トラブルシューティングが格段にやりやすい。
Network Firewall Proxy は HTTP でも PreRequest フェーズのルールが効く
TLS インターセプトなしでも HTTP の absolute-form リクエストに対しては PreRequest フェーズの HTTP メソッドやヘッダーの検査が可能。ドキュメントの記述は HTTPS に限定した話だった。
Network Firewall Proxy の PrivateLink 経由アクセスでは SourceIp が NAT される
PrivateLink エンドポイント経由のクロス VPC アクセスでは request:SourceIp がエンドポイントの ENI IP に NAT される。SourceVpc や SourceVpce で代替する必要がある。
Aurora PostgreSQL の Blue/Green でカスタムパラメータグループ使用時は Green 用も事前作成が必要
カスタムパラメータグループを使っている Aurora PostgreSQL クラスターでメジャーバージョンアップグレードを伴う Blue/Green デプロイメントを作成すると InvalidParameterCombination で失敗する。Green 用のパラメータグループを明示的に指定する必要がある。