Resource Group: i2-redcap-dev-rg
Overview
The i2-redcap-dev-rg resource group is designed to support various applications and services related to the REDCap data management platform. This group includes a comprehensive architecture featuring application gateways, virtual machines, MySQL flexible servers, and managed identities. The deployed resources work cohesively to provide reliable, scalable, and secure access to REDCap’s functionalities for development purposes.
Resources
1. Application Gateway
- Type:
Microsoft.Network/applicationGateways
- Name:
i2-redcap-dev-gateway
- Purpose: Manages incoming traffic and routes requests to different backend services. This includes:
- Backend Address Pools: Routes traffic to various services, including a virtual machine and web applications.
- Frontend Configuration: Uses public IP addresses for external access.
- Listeners and Routing Rules: Configured to direct traffic based on defined paths to specific backend resources.
- Important Configurations:
- Public IP Address:
20.98.177.108
- Private Link: Subnets for better security and connection to the backend resources.
- Public IP Address:
2. Flexible MySQL Server
- Type:
Microsoft.DBforMySQL/flexibleServers
- Names:
i2-redcap-dev-flex-mysql
i2-redcap-dev-flex-mysql-02
i2-redcap-dev-v8-flex
- Purpose: Provides relational database capabilities to support the REDCap application.
- Important Configurations:
- Administrator Login:
i2admin
- Backup Configuration: Retains backups every 24 hours for 30 days.
- Networking: Public network access disabled, utilizing a private DNS zone to connect securely to the application.
- Administrator Login:
3. Virtual Machine
- Type:
Microsoft.Compute/virtualMachines
- Name:
i2-redcap-dev-web-vm-01
- Purpose: Hosts services for the application.
- Important Configurations:
- IP Configuration: Private IP Address
10.24.96.149
. - Network Interface: Attached to
i2-redcap-dev-web-vm-01
. - OS Profile: Linux-based VM with SSH public authentication enabled while disabling password authentication for enhanced security.
- IP Configuration: Private IP Address
4. Storage Account
- Type:
Microsoft.Storage/storageAccounts
- Name:
i2redcapdevstorage
- Purpose: Stores application data, logs, and files needed for running REDCap and associated services.
- Important Configurations:
- Blob Public Access: Enabled for public blob access.
- Encryption: Microsoft-managed key encryption for data protection.
5. User Assigned Identities
- Type:
Microsoft.ManagedIdentity/userAssignedIdentities
- Names:
i2-redcap-dev-appgw-identity
i2-redcap-dev-mysql-flex-ident
- Purpose: These managed identities are employed to securely access Azure resources without needing any credentials hard-coded into the applications.
Data Storage
Storage Overview
Data is primarily stored in the storage account i2redcapdevstorage
, which hosts blobs, files, and queues needed for application operations. The MySQL flexible servers store relational data critical to REDCap functionalities. The databases created include important collections such as:
customer_service
information_schema
mysql
performance_schema
redcap_appd87m1
These databases enable efficient data retrieval and management for the applications.
Networking
Virtual Network Configuration
- Virtual Network: Resources utilize the virtual network
i2-redcap-main-vnet
. - Subnets:
- Subnets defined for services such as
mysql-flex
andappsvc
. - Private endpoints (like
i2-redcap-dev-mysql-endpoint
) are connected to these subnets for secure communication.
- Subnets defined for services such as
- IP Addresses:
- Public IPs:
- Primary Public IP
20.98.177.108
- Reserved IPs for Application Gateway:
13.86.91.232
,52.238.248.112
, and monitoring52.176.154.40
.
- Primary Public IP
- Private IP:
10.24.96.149
for internal communication to the VM.
- Public IPs:
Virtual Network Peerings
The architecture allows components to communicate efficiently over the same network while ensuring isolation and security.
Security Overview
Security Measures
- Managed Identities: Protect sensitive information by avoiding hard-coded secrets.
- Network Security Groups (NSGs): Defined rules for inbound and outbound traffic, such as
AllowAnyHTTPSInbound
for HTTPS traffic. - Private Link Configuration: Ensures that MySQL servers only connect through the Azure backbone network without exposing the database to the public internet.
Recommendations
- Regularly review public IP allocation and configurations to avoid unnecessary exposure.
- Implement advanced threat protection for databases.
- Ensure logs and monitoring are set up for anomaly detection.
Other Information
Cost Management
- Use Azure Cost Management tools to monitor resource usage and optimize costs, especially focusing on the instances of VMs and storage accounts in general.
Scalability
- Auto-scaling is configured at the VMSS level, though currently disabled. Consider enabling this for better responsiveness to load changes.
Unique Configurations
- The design employs advanced features of Azure services to provide redundancy and protect against data loss. Utilizing flexible MySQL deployment can help optimize for performance and cost effectiveness.
This documentation serves as a comprehensive understanding of the resources in the i2-redcap-dev-rg resource group, facilitating quick orientation and efficient management.