terraform

manifest


kubectl apply -f manifest/.
helm repo add kedacore <https://kedacore.github.io/charts>
helm repo update
helm install keda kedacore/keda --namespace keda --create-namespace
# lb-request.yaml

apiVersion: v1
kind: Secret
metadata:
  name: test-secrets
data:
  AWS_ACCESS_KEY_ID: QUtJQTUyUUdJTExQWE1GWlVORVU=
  AWS_SECRET_ACCESS_KEY: VllhSGo3bXF4Q0F5Myt3OU45SnVoNWR5bnVFZ3lFeWFKM1k5RVZuTw== # Required.
---
apiVersion: keda.sh/v1alpha1
kind: TriggerAuthentication
metadata:
  name: keda-trigger-auth-aws-credentials
spec:
  secretTargetRef:
  - parameter: awsAccessKeyID     # Required.
    name: test-secrets            # Required.
    key: AWS_ACCESS_KEY_ID        # Required.
  - parameter: awsSecretAccessKey # Required.
    name: test-secrets            # Required.
    key: AWS_SECRET_ACCESS_KEY    # Required.
---
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: flask-scaled
spec:
  scaleTargetRef:
    name: flask-deploy
  minReplicaCount: 2
  maxReplicaCount: 10
  triggers:
    - type: aws-cloudwatch
      metadata:
        namespace: AWS/ApplicationELB
        expression: SELECT SUM(RequestCount) FROM SCHEMA("AWS/ApplicationELB", LoadBalancer,TargetGroup) WHERE LoadBalancer = 'app/k8s-default-flasking-3031211bb2/e2176e786cd9b242'
        metricName: RequestCount
        targetMetricValue: '100'
        minMetricValue: '0'
        awsRegion: "ap-northeast-2"
        identityOwner: pod
        metricCollectionTime: '60'
        metricStat: Sum          
        metricStatPeriod: '60'
        metricUnit: Count
      authenticationRef:
        name: keda-trigger-auth-aws-credentials
kubectl apply -f lb-request.yaml