Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
GitHub Copilot for Azure plugin providing Azure service management and development assistance inside Claude Code and IDEs.
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