Amazon Managed Service for Apache Flink is a fully managed service that makes it easy to develop, deploy, and operate Apache Flink applications on AWS using Kiro IDE for development. Managed Service for Apache Flink supports Flink 1.20 and Flink 2.2. For new applications, default to Flink 2.2. For existing applications, use the user’s current Flink version. This guide provides a comprehensive overview of Managed Service for Apache Flink architecture, KPU-based scaling, service-level configuration, and key differences from self-managed Flink deployments.
Managed Service for Apache Flink abstracts infrastructure complexity while providing the full power of Apache Flink for stream processing, with a clear separation between service-level configuration managed by Managed Service for Apache Flink and application-level configuration controlled by developers through Kiro IDE.
Managed Service for Apache Flink abstracts away the complexity of managing Flink clusters while providing the full power of Apache Flink for stream processing. The service architecture consists of:
Control Plane:
Application lifecycle management through Managed Service for Apache Flink console and APIs
KPU-based automatic scaling and resource management
You do not pick instance types or manage TaskManagers directly. MSF abstracts both away — KPU is the only resource unit you configure. Selecting EC2 instance types is not a setting you can change, including via the console. Custom CPU/memory ratios per KPU also are not configurable in MSF.
Each KPU provides exactly 1 vCPU and 4 GB of memory (standardized resource allocation), plus 50 GB of running application storage.
Managed Service for Apache Flink automatically scales KPUs based on application throughput and backpressure metrics
You configure Parallelism (total task slots) and ParallelismPerKPU (slots per KPU) at the service level; MSF derives Allocated KPUs = Parallelism / ParallelismPerKPU
KPU allocation determines the maximum parallelism and resource capacity available to your application
Resource Scaling:
Automatic horizontal scaling based on real-time throughput and backpressure analysis
Service-level parallelism configuration through Managed Service for Apache Flink console overrides application defaults
Managed Service for Apache Flink manages TaskManager allocation and distribution across KPUs automatically
Pay-per-use pricing model - only pay for the KPUs your application actively uses
Scaling decisions are made by Managed Service for Apache Flink based on performance metrics, not manual configuration
Amazon S3 with various formats (Parquet, JSON, CSV)
Amazon DynamoDB for real-time updates
Amazon OpenSearch Service
Amazon Data Firehose
Custom sinks via AWS SDK
For Managed Service for Apache Flink vs self-managed Flink differences, MSF-specific constraints, and common MSF patterns, see msf-constraints-and-patterns.md.
After understanding Managed Service for Apache Flink architecture and capabilities:
Environment Setup: Configure your Kiro IDE development environment for Managed Service for Apache Flink development with Docker containerization
Development Patterns: Learn Managed Service for Apache Flink-optimized application patterns and templates
Local Development: Set up Docker-based local testing workflows in Kiro before Managed Service for Apache Flink deployment
Deployment: Understand Managed Service for Apache Flink deployment procedures and service-level configuration best practices
For detailed guidance on each of these areas, refer to the corresponding guides in the steering directory. All development workflows are optimized for Kiro IDE with Docker-based local development targeting Managed Service for Apache Flink deployment.