Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Assess and migrate workloads from AWS, GCP, or other clouds to Azure services.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
references/services/app-service/beanstalk-to-app-service.md
1# AWS Elastic Beanstalk to Azure App Service Migration23Detailed guidance for migrating AWS Elastic Beanstalk applications to Azure App Service.45## Service Mapping67| AWS Service | Azure Equivalent |8|-------------|------------------|9| Elastic Beanstalk | Azure App Service |10| Elastic Beanstalk Environment | App Service + App Service Plan |11| Platform Presets | Runtime Stacks |12| `.ebextensions/` | Bicep + App Settings |13| `Procfile` | Startup Command |14| RDS (PostgreSQL) | Azure Database for PostgreSQL Flexible Server |15| RDS (MySQL) | Azure Database for MySQL Flexible Server |16| RDS (SQL Server) | Azure SQL Database |17| ElastiCache (Redis) | Azure Cache for Redis |18| ElastiCache (Memcached) | Azure Cache for Redis |19| S3 | Azure Blob Storage |20| ALB / ELB | App Service built-in LB / Azure Front Door |21| Route 53 | Azure DNS |22| ACM (Certificate Manager) | App Service Managed Certificate |23| CloudWatch | Application Insights / Azure Monitor |24| CloudWatch Alarms | Azure Monitor Alerts |25| X-Ray | Application Insights (distributed tracing) |26| IAM Roles | Managed Identity + Azure RBAC |27| CodePipeline / CodeBuild | GitHub Actions / Azure DevOps |28| CloudFormation | Bicep / ARM Templates |29| Parameter Store | Azure App Configuration |30| Secrets Manager | Azure Key Vault |31| SQS | Azure Service Bus / Storage Queue |32| SNS | Azure Event Grid |33| Auto Scaling Group | App Service Autoscale |34| VPC | Azure VNet Integration |35| Security Groups | NSG + App Service Access Restrictions |3637## Platform Preset โ Runtime Stack Mapping3839| Beanstalk Platform | App Service Runtime Stack |40|--------------------|---------------------------|41| Node.js 20 | Node 20 LTS |42| Node.js 18 | Node 18 LTS |43| Python 3.11 | Python 3.11 |44| Python 3.12 | Python 3.12 |45| Java 17 (Corretto) | Java 17 (Microsoft Build of OpenJDK) |46| Java 21 (Corretto) | Java 21 (Microsoft Build of OpenJDK) |47| .NET 8 on Linux | .NET 8 |48| Go (Docker) | Custom Container (Go) |49| Ruby | Custom Container (Ruby) |50| PHP 8.x | PHP 8.x |51| Docker | Azure App Service (Custom Container) |5253## `.ebextensions/` Migration5455Beanstalk `.ebextensions/` YAML configs map to Bicep and App Settings:5657| `.ebextensions/` Feature | Azure Equivalent | Implementation |58|--------------------------|------------------|----------------|59| `option_settings` (env vars) | App Settings | Bicep `siteConfig.appSettings` |60| `packages` (yum/apt) | Startup script or Dockerfile | Custom container or startup command |61| `files` (config files) | Deployment package or Blob Storage | Include in app deployment |62| `commands` / `container_commands` | Startup command or deployment script | `az webapp config set --startup-file` |63| `Resources` (CloudFormation) | Bicep modules | Equivalent Azure resources |64| `services` (sysvinit) | WebJobs (continuous) or Azure Functions | Background processing โ App Service "Always On" only prevents idle unload; it is NOT a replacement for sysvinit-style background services |6566### Example: `.ebextensions/` โ Bicep6768```yaml69# .ebextensions/environment.config (AWS)70option_settings:71aws:elasticbeanstalk:application:environment:72NODE_ENV: production73DB_HOST: mydb.xxx.rds.amazonaws.com74```7576```bicep77// Bicep equivalent78resource webApp 'Microsoft.Web/sites@2023-12-01' = {79properties: {80siteConfig: {81appSettings: [82{ name: 'NODE_ENV', value: 'production' }83{ name: 'PGHOST', value: postgresServer.properties.fullyQualifiedDomainName }84]85}86}87}88```8990## RDS โ Azure Database Migration9192| RDS Feature | Azure Equivalent |93|-------------|------------------|94| Multi-AZ deployment | Zone-redundant HA |95| Read replicas | Read replicas |96| Automated backups | Automated backups (up to 35 days) |97| Parameter groups | Server parameters |98| Subnet groups | VNet integration + private endpoints |99| IAM authentication | Microsoft Entra authentication |100| RDS Proxy | Azure Database for PostgreSQL Flexible Server (built-in PgBouncer) |101102> ๐ก **Tip:** Use Azure Database Migration Service (DMS) for data migration from RDS.103104## Auto Scaling Migration105106| Beanstalk Scaling | App Service Autoscale |107|-------------------|----------------------|108| `MinSize` / `MaxSize` | Min/Max instance count |109| `Trigger` metric (CPU, Network) | Autoscale rules (CPU, Memory, HTTP queue) |110| `BreachDuration` | Time window + cool-down period |111| `ScalingAdjustment` | Scale-out/in increment |112| Time-based scaling | Schedule-based autoscale rules |113114```bicep115resource autoscale 'Microsoft.Insights/autoscalesettings@2022-10-01' = {116properties: {117targetResourceUri: appServicePlan.id118profiles: [{119capacity: { minimum: '2', maximum: '10', default: '2' }120rules: [{121metricTrigger: {122metricName: 'CpuPercentage'123operator: 'GreaterThan'124threshold: 70125timeAggregation: 'Average'126timeWindow: 'PT5M'127}128scaleAction: {129direction: 'Increase'130type: 'ChangeCount'131value: '1'132cooldown: 'PT5M'133}134}]135}]136}137}138```139140## ALB โ App Service Load Balancing141142| ALB Feature | Azure Equivalent |143|-------------|------------------|144| Path-based routing | App Service path mappings or Front Door rules |145| Host-based routing | Custom domains + Front Door |146| Health checks | App Service Health Check feature |147| SSL termination | Built-in TLS / Front Door |148| WAF | Azure Front Door WAF or App Gateway WAF |149| Sticky sessions | ARR Affinity (App Service) |150151> For global load balancing with WAF, use **Azure Front Door** instead of App Service built-in LB.152153## Environment Variables Migration154155| Source | Target | Notes |156|--------|--------|-------|157| `option_settings` (env vars) | App Settings | Non-sensitive config |158| `option_settings` (secrets) | Key Vault references | `@Microsoft.KeyVault(SecretUri=...)` |159| Parameter Store refs | App Configuration | Shared config across environments |160| Secrets Manager refs | Key Vault | Secrets with rotation |161| `.env` file | App Settings + Key Vault | Split by sensitivity |162163## Reference Links164165- [AWS to Azure services comparison](https://learn.microsoft.com/en-us/azure/architecture/aws-professional/)166- [App Service overview](https://learn.microsoft.com/en-us/azure/app-service/overview)167- [App Service autoscale](https://learn.microsoft.com/en-us/azure/azure-monitor/autoscale/autoscale-get-started)168- [Azure Database Migration Service](https://learn.microsoft.com/en-us/azure/dms/dms-overview)169