You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/container-apps/billing.md
+43-11Lines changed: 43 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,13 +6,24 @@ author: craigshoemaker
6
6
ms.service: container-apps
7
7
ms.custom: event-tier1-build-2022
8
8
ms.topic: conceptual
9
-
ms.date: 03/09/2022
9
+
ms.date: 03/30/2023
10
10
ms.author: cshoe
11
11
---
12
12
13
13
# Billing in Azure Container Apps
14
14
15
-
Azure Container Apps billing consists of two types of charges:
15
+
Billing in Azure Container apps is based on your [plan type](plans.md).
16
+
17
+
| Plan type | Description |
18
+
|--|--|
19
+
|[Consumption](#consumption-plan)| Serverless environment where you're only billed for the resources your apps use when they're running. |
20
+
| [Consumption + Dedicated workload profiles plan structure](#consumption-dedicated) | A fully managed environment that supports both Consumption-based apps and Dedicated workload profiles that offer customized compute options for your apps. You're billed for each node in each [workload profile](workload-profiles-overview.md).
21
+
22
+
Charges apply to resources allocated to each running replica. |
23
+
24
+
## Consumption plan
25
+
26
+
Azure Container Apps consumption plan billing consists of two types of charges:
16
27
17
28
-**[Resource consumption](#resource-consumption-charges)**: The amount of resources allocated to your container app on a per-second basis, billed in vCPU-seconds and GiB-seconds.
18
29
-**[HTTP requests](#request-charges)**: The number of HTTP requests your container app receives.
@@ -28,7 +39,7 @@ This article describes how to calculate the cost of running your container app.
28
39
> [!NOTE]
29
40
> If you use Container Apps with [your own virtual network](networking.md#managed-resources) or your apps utilize other Azure resources, additional charges may apply.
30
41
31
-
## Resource consumption charges
42
+
###Resource consumption charges
32
43
33
44
Azure Container Apps runs replicas of your application based on the [scaling rules and replica count limits](scale-app.md) you configure for each revision. You're charged for the amount of resources allocated to each replica while it's running.
34
45
@@ -41,16 +52,16 @@ The first 180,000 vCPU-seconds and 360,000 GiB-seconds in each subscription per
41
52
42
53
The rate you pay for resource consumption depends on the state of your container app's revisions and replicas. By default, replicas are charged at an *active* rate. However, in certain conditions, a replica can enter an *idle* state. While in an *idle* state, resources are billed at a reduced rate.
43
54
44
-
### No replicas are running
55
+
####No replicas are running
45
56
46
57
When a revision is scaled to zero replicas, no resource consumption charges are incurred.
47
58
48
-
### Minimum number of replicas are running
59
+
####Minimum number of replicas are running
49
60
50
-
Idle usage charges may apply when a revision is running under a specific set of circumstances. To be eligible for idle charges, a revision must meet the following criteria.
61
+
Idle usage charges may apply when a revision is running under a specific set of circumstances. To be eligible for idle charges, a revision must be:
51
62
52
-
-It is configured with a [minimum replica count](scale-app.md) greater than zero.
53
-
-It is scaled to the minimum replica count.
63
+
-Configured with a [minimum replica count](scale-app.md) greater than zero
64
+
-Scaled to the minimum replica count
54
65
55
66
Usage charges are calculated individually for each replica. A replica is considered idle when *all* of the following conditions are true:
56
67
@@ -60,14 +71,35 @@ Usage charges are calculated individually for each replica. A replica is conside
60
71
- The replica is using less than 0.01 vCPU cores.
61
72
- The replica is receiving less than 1,000 bytes per second of network traffic.
62
73
63
-
When a replica is idle, resource consumption charges are calculated at the reduced idle rates. When a replica is not idle, the active rates apply.
74
+
When a replica is idle, resource consumption charges are calculated at the reduced idle rates. When a replica isn't idle, the active rates apply.
64
75
65
-
### More than the minimum number of replicas are running
76
+
####More than the minimum number of replicas are running
66
77
67
78
When a revision is scaled above the [minimum replica count](scale-app.md), all of its running replicas are charged for resource consumption at the active rate.
68
79
69
-
## Request charges
80
+
###Request charges
70
81
71
82
In addition to resource consumption, Azure Container Apps also charges based on the number of HTTP requests received by your container app.
72
83
73
84
The first 2 million requests in each subscription per calendar month are free.
85
+
86
+
<aid="consumption-dedicated"></a>
87
+
88
+
## Consumption + Dedicated workload profiles plan structure (preview)
89
+
90
+
Azure Container Apps Consumption + Dedicated plan structure consists of two plans withing a single environment, each with their own billing model.
91
+
92
+
The billing for apps running in the Consumption plan within the Consumption + Dedicated plan structure is the same as the Consumption plan.
93
+
94
+
The billing for apps running in the Dedicated plan within the Consumption + Dedicated plan structure is as follows:
95
+
96
+
-**Dedicated workload profiles**: You're billed on a per-second basis for vCPU-seconds and GiB-seconds resources in all the workload profile instances in use. As profiles scale out, extra costs apply for the extra instances; as profiles scale in, billing is reduced.
97
+
98
+
-**Dedicated plan management**: You're billed a fixed cost for the Dedicated management plan when using Dedicated workload profiles. This cost is the same regardless of how many Dedicated workload profiles in use.
99
+
100
+
For instance, you are not billed any charges for Dedicated unless you use a Dedicated workload profile in your environment.
101
+
102
+
103
+
For pricing details in your account's currency, see [Azure Container Apps Pricing](https://azure.microsoft.com/pricing/details/container-apps/).
104
+
105
+
For best results, maximize the use of your allocated resources by calculating the needs of your container apps. Often you can run multiple apps on a single instance of a workload profile.
Copy file name to clipboardExpand all lines: articles/container-apps/containers.md
+27-7Lines changed: 27 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,12 +24,9 @@ Azure Container Apps supports:
24
24
Features include:
25
25
26
26
- There's no required base container image.
27
-
- Changes to the `template`ARM configuration section trigger a new [container app revision](application-lifecycle-management.md).
27
+
- Changes to the `template` configuration section trigger a new [container app revision](application-lifecycle-management.md).
28
28
- If a container crashes, it automatically restarts.
29
29
30
-
> [!NOTE]
31
-
> The only supported protocols for a container app's fully qualified domain name (FQDN) are HTTP and HTTPS through ports 80 and 443 respectively.
32
-
33
30
## Configuration
34
31
35
32
@@ -110,12 +107,12 @@ The following code is an example of the `containers` array in the [`properties.t
110
107
|`command`| The container's startup command. | Equivalent to Docker's [entrypoint](https://docs.docker.com/engine/reference/builder/) field. |
111
108
|`args`| Start up command arguments. | Entries in the array are joined together to create a parameter list to pass to the startup command. |
112
109
|`env`| An array of key/value pairs that define environment variables. | Use `secretRef` instead of the `value` field to refer to a secret. |
113
-
|`resources.cpu`| The number of CPUs allocated to the container. |Values must adhere to the following rules: the value must be greater than zero and less than or equal to 2, and can be any decimal number, with a maximum of two decimal places. For example, `1.25` is valid, but `1.555` is invalid. The default is 0.5 CPU per container. |
114
-
|`resources.memory`| The amount of RAM allocated to the container. |This value is up to `4Gi`. The only allowed units are [gibibytes](https://simple.wikipedia.org/wiki/Gibibyte) (`Gi`). Values must adhere to the following rules: the value must be greater than zero and less than or equal to `4Gi`, and can be any decimal number, with a maximum of two decimal places. For example, `1.25Gi` is valid, but `1.555Gi` is invalid.The default is `1Gi` per container.|
110
+
|`resources.cpu`| The number of CPUs allocated to the container. |With the Consumption plan, values must adhere to the following rules:<br><br>• greater than zero<br>• less than or equal to 2<br>• can be any decimal number (with a max of two decimal places)<br><br> For example, `1.25` is valid, but `1.555` is invalid.<br> The default is 0.25 CPU per container.<br><br>When using the Consumption workload profile in the Consumption + Dedicated plan structure, the same rules apply except CPU must be less than or equal to 4.<br><br>When using a Dedicated workload profile in the Consumption + Dedicated plan structure, the maximum CPU must be less than or equal to the number of cores available in the profile. |
111
+
|`resources.memory`| The amount of RAM allocated to the container. |With the Consumption plan, values must adhere to the following rules:<br><br>• greater than zero<br>• less than or equal to `4Gi`<br>• can be any decimal number (with a max of two decimal places)<br><br>For example, `1.25Gi` is valid, but `1.555Gi` is invalid.<br>The default is `0.5Gi` per container.<br><br>When using the Consumption workload profile in the Consumption + Dedicated plan structure, the same rules apply except memory must be less than or equal to `8Gi`.<br><br>When using a dedicated workload profile in the Consumption + Dedicated plan structure, the maximum memory must be less than or equal to the amount of memory available in the profile.|
115
112
|`volumeMounts`| An array of volume mount definitions. | You can define a temporary volume or multiple permanent storage volumes for your container. For more information about storage volumes, see [Use storage mounts in Azure Container Apps](storage-mounts.md).|
116
113
|`probes`| An array of health probes enabled in the container. | This feature is based on Kubernetes health probes. For more information about probes settings, see [Health probes in Azure Container Apps](health-probes.md).|
117
114
118
-
The total CPU and memory allocations requested for all the containers in a container app must add up to one of the following combinations.
115
+
In the Consumption plan, the total CPU and memory allocations requested for all the containers in a container app must add up to one of the following combinations.
119
116
120
117
| vCPUs (cores) | Memory |
121
118
|---|---|
@@ -128,9 +125,32 @@ The total CPU and memory allocations requested for all the containers in a conta
128
125
|`1.75`|`3.5Gi`|
129
126
|`2.0`|`4.0Gi`|
130
127
128
+
Alternatively, the Consumption workload profile in the Consumption + Dedicated plan structure, the total CPU and memory allocations requested for all the containers in a container app must add up to one of the following combinations.
129
+
130
+
| vCPUs (cores) | Memory |
131
+
|---|---|
132
+
|`0.25`|`0.5Gi`|
133
+
|`0.5`|`1.0Gi`|
134
+
|`0.75`|`1.5Gi`|
135
+
|`1.0`|`2.0Gi`|
136
+
|`1.25`|`2.5Gi`|
137
+
|`1.5`|`3.0Gi`|
138
+
|`1.75`|`3.5Gi`|
139
+
|`2.0`|`4.0Gi`|
140
+
|`2.25`|`4.5Gi`|
141
+
|`2.5`|`5.0Gi`|
142
+
|`2.75`|`5.5Gi`|
143
+
|`3.0`|`6.0Gi`|
144
+
|`3.25`|`6.5Gi`|
145
+
|`3.5`|`7.0Gi`|
146
+
|`3.75`|`7.5Gi`|
147
+
|`4.0`|`8.0Gi`|
148
+
131
149
- The total of the CPU requests in all of your containers must match one of the values in the vCPUs column.
132
150
- The total of the memory requests in all your containers must match the memory value in the memory column in the same row of the CPU column.
133
151
152
+
When you use a Dedicated workload profile in the Consumption + Dedicated plan structure, the total CPU and memory allocations requested for all the containers in a container app must be less than or equal to the cores and memory available in the profile.
153
+
134
154
## Multiple containers
135
155
136
156
You can define multiple containers in a single container app to implement the [sidecar pattern](/azure/architecture/patterns/sidecar). The containers in a container app share hard disk and network resources and experience the same [application lifecycle](./application-lifecycle-management.md).
Copy file name to clipboardExpand all lines: articles/container-apps/environment.md
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,7 +44,10 @@ Settings relevant to the Azure Container Apps environment API resource.
44
44
45
45
## Billing
46
46
47
-
Billing is relevant only to individual container apps and their resource usage. There are no base charges associated with the Container Apps environment.
47
+
Azure Container Apps has two different pricing structures.
48
+
49
+
- If you're using the Consumption only plan, or only the Consumption workload profile in the Consumption + Dedicated plan structure then billing is relevant only to individual container apps and their resource usage. There's no cost associated with the Container Apps environment.
50
+
- If you're using any Dedicated workload profiles in the Consumption + Dedicated plan structure, there's a fixed cost for the Dedicated plan management. This cost is for the entire environment regardless of how many Dedicated workload profiles you're using.
Copy file name to clipboardExpand all lines: articles/container-apps/firewall-integration.md
+25-10Lines changed: 25 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,28 +2,29 @@
2
2
title: Securing a custom VNET in Azure Container Apps
3
3
description: Firewall settings to secure a custom VNET in Azure Container Apps
4
4
services: container-apps
5
-
author: JennyLawrance
5
+
author: CaryChai
6
6
ms.service: container-apps
7
7
ms.custom: event-tier1-build-2022
8
8
ms.topic: reference
9
-
ms.date: 07/15/2022
10
-
ms.author: jennylaw
9
+
ms.date: 03/29/2023
10
+
ms.author: cachai
11
11
---
12
12
13
-
# Securing a custom VNET in Azure Container Apps
13
+
# Securing a custom VNET in Azure Container Apps with Network Security Groups
14
14
15
15
Network Security Groups (NSGs) needed to configure virtual networks closely resemble the settings required by Kubernetes.
16
16
17
-
You can lock down a network via NSGs with more restrictive rules than the default NSG rules to control all inbound and outbound traffic for the Container App Environment.
17
+
You can lock down a network via NSGs with more restrictive rules than the default NSG rules to control all inbound and outbound traffic for the Container Apps environment at the subscription level.
18
18
19
-
Using custom user-defined routes (UDRs) or ExpressRoutes, other than with UDRs of selected destinations that you own, are not yet supported for Container App Environments with VNETs. Therefore, securing outbound traffic with a firewall is not yet supported.
19
+
In the workload profiles architecture, user-defined routes (UDRs) and securing outbound traffic with a firewall are supported. Learn more in the [networking concepts document](./networking.md#user-defined-routes-udr---preview).
20
+
21
+
In the Consumption only architecture, custom user-defined routes (UDRs) and ExpressRoutes aren't supported.
20
22
21
23
## NSG allow rules
22
24
23
25
The following tables describe how to configure a collection of NSG allow rules.
24
-
25
26
>[!NOTE]
26
-
> The subnet associated with a Container App Environment requires a CIDR prefix of `/23` or larger.
27
+
> The subnet associated with a Container App Environment on the Consumption only architecture requires a CIDR prefix of `/23` or larger. On the workload profiles architecture (preview), a `/27` or larger is required.
27
28
28
29
### Inbound
29
30
@@ -32,16 +33,30 @@ The following tables describe how to configure a collection of NSG allow rules.
32
33
| Any |\*| Infrastructure subnet address space | Allow communication between IPs in the infrastructure subnet. This address is passed as a parameter when you create an environment. For example, `10.0.0.0/21`. |
33
34
| Any |\*| AzureLoadBalancer | Allow the Azure infrastructure load balancer to communicate with your environment. |
34
35
35
-
### Outbound with ServiceTags
36
+
### Outbound with service tags
37
+
38
+
The following service tags are required when using NSGs on the Consumption only architecture:
36
39
37
40
| Protocol | Port | ServiceTag | Description
38
41
|--|--|--|--|
39
42
| UDP |`1194`|`AzureCloud.<REGION>`| Required for internal AKS secure connection between underlying nodes and control plane. Replace `<REGION>` with the region where your container app is deployed. |
40
43
| TCP |`9000`|`AzureCloud.<REGION>`| Required for internal AKS secure connection between underlying nodes and control plane. Replace `<REGION>` with the region where your container app is deployed. |
41
44
| TCP |`443`|`AzureMonitor`| Allows outbound calls to Azure Monitor. |
42
45
46
+
The following service tags are required when using NSGs on the workload profiles architecture:
47
+
48
+
>[!Note]
49
+
> If you are using Azure Container Registry (ACR) with NSGs configured on your virtual network, create a private endpoint on your ACR to allow Container Apps to pull images through the virtual network.
50
+
51
+
| Protocol | Port | Service Tag | Description
52
+
|--|--|--|--|
53
+
| TCP |`443`|`MicrosoftContainerRegistry`| This is the service tag for container registry for microsoft containers. |
54
+
| TCP |`443`|`AzureFrontDoor.FirstParty`| This is a dependency of the `MicrosoftContainerRegistry` service tag. |
55
+
43
56
### Outbound with wild card IP rules
44
57
58
+
The following IP rules are required when using NSGs on both the Consumption only architecture and the workload profiles architecture:
59
+
45
60
| Protocol | Port | IP | Description |
46
61
|--|--|--|--|
47
62
| TCP |`443`|\*| Allowing all outbound on port `443` provides a way to allow all FQDN based outbound dependencies that don't have a static IP. |
@@ -52,5 +67,5 @@ The following tables describe how to configure a collection of NSG allow rules.
52
67
53
68
#### Considerations
54
69
55
-
- If you are running HTTP servers, you might need to add ports `80` and `443`.
70
+
- If you're running HTTP servers, you might need to add ports `80` and `443`.
56
71
- Adding deny rules for some ports and protocols with lower priority than `65000` may cause service interruption and unexpected behavior.
Copy file name to clipboardExpand all lines: articles/container-apps/log-options.md
+5-2Lines changed: 5 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,7 +27,10 @@ You can choose between these logs destinations:
27
27
- Azure storage account to archive.
28
28
- Azure event hub for data ingestion and analytic services. For more information, see [Azure Event Hubs](../event-hubs/event-hubs-about.md).
29
29
- An Azure partner monitoring solution such as, Datadog, Elastic, Logz.io and others. For more information, see [Partner solutions](../partner-solutions/overview.md).
30
-
-**None**: You can disable the storage of log data. You'll still be able to view real-time container logs via the **Logs stream** feature in your container app. For more information, see [Log streaming](log-streaming.md).
30
+
-**None**: You can disable the storage of log data. When disabled, you can still view real-time container logs via the **Logs stream** feature in your container app. For more information, see [Log streaming](log-streaming.md).
31
+
32
+
> [!NOTE]
33
+
> Azure Monitor is not currently supported in the Consumption + Dedicated plan structure.
31
34
32
35
When *None* or the *Azure Monitor* destination is selected, the **Logs** menu item providing the Log Analytics query editor in the Azure portal is disabled.
33
36
@@ -43,7 +46,7 @@ Use these steps to configure the logging options for your Container Apps environ
43
46
-**None**: This option disables the storage of log data.
1. If you have selected **Azure Monitor** as your logs destination, you must configure **Diagnostic settings**. The **Diagnostic settings** item will appear below the **Logging options** menu item.
49
+
1. If you have selected **Azure Monitor** as your logs destination, you must configure **Diagnostic settings**. The **Diagnostic settings** item appears below the **Logging options** menu item.
0 commit comments