Confirm section ownership, speaking order and outstanding technical actions.
Three connected cloud environments, two explicit Site-to-Site VPNs and a resilient two-Availability-Zone application tier in Ireland—supported by monitored recovery and controlled teardown.
The authorised school deployment is now operational under the eg334s-team2 project prefix. Its internet-facing Application Load Balancer spans eu-west-1a and eu-west-1b and distributes HTTP traffic across Web Node 1 (10.1.1.119) and Web Node 2 (10.1.2.111).
427617722186eg334s-team2-rgClaim boundary. Test 9 abruptly stopped the eu-west-1a application target without deregistration or draining. Across 203 one-second requests, 198 returned HTTP 200 and five transient failures were retained while ALB health detection converged in 36.8 seconds. The eu-west-1b target remained healthy and served 129 responses; both targets and private-path pings finished healthy. This proves active-active application resilience, not zero-interruption failover, whole-AZ failure or regional HA.
Confirm section ownership, speaking order and outstanding technical actions.
Validate VPNs, ALB, monitoring and access. Rebuild VPN #2 only if parked or unhealthy.
Deliver the shared team presentation and execute the approved live demonstration.
Complete dependency-ordered decommissioning and retain two-person verification.
Access and checkpoint preparation. Obtain the two AWS administrator controls, verify team logins, confirm report ownership and agree the presentation order.
Checkpoint and decision gate. Record ownership, speaking order and any corrective actions arising from the assessment.
Individual validation. Each member performs the approved connectivity test, reviews the relevant IaC and validates the report and shared-deck statements they may defend.
Integration rehearsal. Rehearse VPN, ALB and resilience evidence; reconcile monitoring, cost, test and teardown records.
Freeze and readiness gate. Run the complete team rehearsal on 24 Aug. On 25 Aug, verify infrastructure health and rebuild VPN #2 only if it was parked or validation fails.
Assess, close and decommission. Present on 26 Aug, complete permitted corrections, then execute and peer-verify teardown before 30 Aug at 23:59 SGT.
| Session | Date | Lecturer | Mode | Activity |
|---|---|---|---|---|
| 1 | Fri, 24 Jul | Wilson Huan | Sync-Physical | Project discussion and group formation |
| 2 | Mon, 27 Jul | Wilson Huan | Sync-Physical | Project discussion and group formation |
| 3 | Wed, 29 Jul | Wilson Huan | Sync-Online | Project session |
| 4 | Fri, 31 Jul | Kor Hian Loon | Sync-Online | Project session |
| 5 | Mon, 3 Aug | Kor Hian Loon | Sync-Online | Project session |
| 6 | Wed, 5 Aug | Wilson Huan | Sync-Online | Project session |
| 7 | Fri, 7 Aug | Kor Hian Loon | Sync-Online | Checkpoint assessment |
| 8 | Tue, 11 Aug | Kor Hian Loon | Sync-Online | National Day public-holiday make-up lesson |
| 9 | Wed, 12 Aug | Wilson Huan | Sync-Online | Project session |
| 10 | Fri, 14 Aug | Kor Hian Loon | Sync-Online | Project session |
| 11 | Mon, 17 Aug | Kor Hian Loon | Sync-Online | Project session |
| 12 | Wed, 19 Aug | Wilson Huan | Sync-Online | Project session |
| 13 | Fri, 21 Aug | Kor Hian Loon | Sync-Online | Project session |
| 14 | Mon, 24 Aug | Kor Hian Loon | Sync-Online | Final preparation and rehearsal |
| 15 | Wed, 26 Aug | Wilson Huan | Sync-Online | Group presentation and technical demonstration |
All dates are SGT. The 25 Aug activity is a readiness gate, not an automatic rebuild. Teardown must be verified across us-east-1, eu-west-1, Azure and project-specific Cloudflare services.
60% is individual (Checkpoint + Presentation). Build the system as a team; own and defend your own section alone.
| Performance indicator | Excellent (top band) | What it takes |
|---|---|---|
| Organisation & Content (60) Organisation & supporting materials; Content |
Agenda exists, coherent & interesting sequence; supporting materials used innovatively & explained in context; can explain all details, constraints and work-arounds. | Have a clear agenda; every diagram/screenshot explained in context; be able to explain the whole project's details, limits and how you worked around them. |
| Presentation Skills (40) Delivery; Q&A |
Interesting, eloquent, enthusiastic delivery (not heavily scripted); handles all Q&A well and anticipates questions. | Rehearse so you're not reading slides; pre-empt likely assessor questions and prepare answers. |
| Performance indicator | Excellent (top band) | What it takes |
|---|---|---|
| Report Presentation (20) Writing; Presentation & supporting materials |
Exceptionally clear, precise, concise English; few typos; professional layout; all illustrations well formatted. | Proofread hard; consistent styles/margins; clean, labelled figures and screenshots. |
| Technical Content (30) Organisation & structure; Literature survey; Quality of analysis |
Structure entirely correct, all sections placed; exemplary range of references; well-informed, authoritative discussion of a complex problem with depth. | Use a logical, complete structure; cite an exemplary range of authoritative references; show reasoned technical analysis, not just description. |
Verified on 27 Jul 2026 against the supplied official Presentation Assessment Rubrics and Report Assessment Rubrics PDFs. Presentation is marked out of 100 (60 + 40); the report rubric has 50 rubric marks (20 + 30) and the report contributes 20% of the module assessment.
Not yet confirmed by the team. The brief labels its contents page as a sample for reference only, so the order and owner chips shown here are planning placeholders. Use the matrix to develop the proposal; do not treat it as the approved Responsibility Assignment Table. Changes save to the shared planning matrix that every visitor sees.
10.0.0.0/16 present in the eu-west-1 route table, learned by propagation, not typedcurl http://10.1.1.61 from the Azure VM returned the AWS web server page, now served by the template itself · a real workload across clouds. VPN #1 was proven with ICMP, not HTTP, so this row does not apply to it.10.0.0.0/16 from VPN #1 and 10.2.0.0/16 from VPN #2. Azure↔Virginia transit is outside scope because the VGW is intentionally non-transitive.Known by design: on-prem cannot reach Azure directly (tested: 100% loss). An AWS VGW does not do transitive routing between two VPN connections. Topology is hub-and-spoke with AWS public as the hub, matching the brief. Full mesh would need a Transit Gateway.
AWS public cloud is the hub: its current VGW terminates VPN #1 and VPN #2, each with two AWS-provided tunnel endpoints. Because a VGW is not transitive, Azure↔Virginia routing is intentionally unavailable in the current design. The live banner, map and routing matrix are authoritative for current availability.
Nothing on this list is typed by hand. The
live-data workflow runs scripts/inventory.sh, which only ever calls describe
and list, and refreshes this feed automatically. Every required query records success or
failure; a failed table is shown as unknown, never none. Anything here that is not inside a
CloudFormation stack or the Azure resource group has to be deleted by hand at teardown,
because delete-stack and az group delete will not touch it.
Green = done. Amber = AWS side done, Azure pending. Grey = not started. Anything off this chain (bonus, report polish, slides) is parallel work you sacrifice first if time runs short.
This is a technical milestone count, not an overall completion percentage. Status is defined in the shared page source and changes only with reviewed evidence.
Working allocation only. The team has not confirmed the report section order or final ownership. These cards show current preparation areas and must not be read as approved section assignments.
Proposed speaking focus: architecture, executive summary, conclusion and CIDR sign-off.
PROVISIONALProposed speaking focus: VPC/VNet build, both VPN connections, VGW Ireland and customer gateway Virginia.
PROVISIONALProposed speaking focus: delivery, critical path, risk, monitoring, recovery and teardown.
PROVISIONALProposed speaking focus: IP addressing, routing, test evidence and the public-subnet web server.
PROVISIONALProposed speaking focus: Virginia workloads, DNS/DHCP, constraints and lessons learned.
PROVISIONALPreparation guide, not ownership sign-off. The team now has one shared presentation deck. Speaking ownership remains provisional until the team confirms the order and Responsibility Assignment Table. Use the shared TEAM REVIEW deck and the working report.
Decision record: report order, accountable section owners and presentation roles are TBD by the full team, coordinated by Casper, target: 7 Aug checkpoint. Confirmation sequence: agree the report order → assign one accountable owner to each section → update the Responsibility Assignment Table and this page → then run the readiness check.
The test to apply after ownership is confirmed. Have someone outside the team open the assigned material at random and ask one question. If the owner must read from the document to answer, more preparation is needed.
Interactive access is still a single point of failure. The automated refresh uses short-lived OIDC access and the operator scripts are shared, but the demo sessions, SSH keys and recovery path have not been proven from a second device. Backup operator TBD by the team by 12 Aug. Closure requires one end-to-end rehearsal with Bernard observing but not operating.
eg334s-team2 prefix in AWS Virginia and Ireland. The Azure workload is deployed in East Asia (Hong Kong); VPN #1 and VPN #2 each have one AWS tunnel endpoint UP, and the Ireland ALB has one healthy Apache target in each Availability Zone.
Deployed architecture. VPN #1 and VPN #2 terminate on Ireland VGW vgw-02efe604037a218cf. The VGW exchanges routes with each remote network but does not forward traffic from one VPN connection into the other; Virginia–Azure transit remains outside the topology.
Evidence boundary. The identifiers and addresses below are dated deployment evidence and can change after a rebuild. The live target-health and VPN status must be checked again before a demonstration.
This view traces the public application path, VPN #1 between Virginia and Ireland, and VPN #2 between Ireland and Azure East Asia. It also marks the VGW routing boundary so the design does not imply unsupported inter-VPN transit.
The table separates application delivery, internal forwarding, encrypted transit and the management/evidence plane. Provider-generated values are dated school-environment evidence, not portable inputs.
| Connection | Source component / address | Destination component / address | Route or next hop | Protocol / ports | Return path and observed state |
|---|---|---|---|---|---|
| Public application entry | Internet client Dynamic public source address |
eg334s-team2-alb-alb-705364735.eu-west-1.elb.amazonaws.comAWS-managed ALB node addresses can change. |
Public DNS resolves the internet-facing ALB; listener selects the shared target group. | TCP/80HTTP |
Selected target → ALB → client. Acceptance: listener active and both targets healthy. |
| ALB → Web Node 1 | ALB service nodes ALB security group |
Web Node 1 Apache EC2 · 10.1.1.119:80eu-west-1a |
Target group sends requests to the registered instance in subnet 10.1.1.0/24. |
TCP/80HTTP + health checks |
Target → ALB → client. Acceptance: target healthy in eu-west-1a. |
| ALB → Web Node 2 | ALB service nodes ALB security group |
Web Node 2 Apache EC2 · 10.1.2.111:80eu-west-1b |
Same target group sends requests to the ASG-managed instance in subnet 10.1.2.0/24. |
TCP/80HTTP + health checks |
Target → ALB → client. Acceptance: desired 1 and target healthy in eu-west-1b. |
| Virginia workload → VPN router | Private test host10.0.1.104 |
strongSwan EC2/ENI10.0.1.55 |
Virginia route table targets the strongSwan instance/ENI for 10.1.0.0/16. No current route is published for 10.2.0.0/16. |
Private payload ICMP / permitted test traffic |
Router forwards replies to 10.0.1.104.IPv4 forwarding persistently enabled · source/destination check disabled |
| VPN #1 · Virginia ↔ Ireland | strongSwan Elastic IP 174.129.120.215Private CIDR 10.0.0.0/16 |
AWS endpoints34.247.246.9 UP176.34.108.143 DOWN |
vpn-0304048c980934f5a terminates on vgw-02efe604037a218cf. |
IKEv1 · staticUDP/500UDP/4500 NAT-T |
Ireland learns 10.0.0.0/16 through VGW propagation.Acceptance: at least one tunnel endpoint UP. |
| VPN #2 · Ireland ↔ East Asia | AWS endpoints52.51.60.239 UP52.211.121.132 DOWN |
Azure VNet Gateway Public IP 20.24.123.36Private CIDR 10.2.0.0/16 |
vpn-0106da6f9a20b1302 connects the Ireland VGW to eg334s-team2-vpngw. |
IKEv2 · route-based/staticUDP/500UDP/4500 |
Azure LNG represents 10.1.0.0/16; Ireland learns 10.2.0.0/16 through the VGW. Acceptance requires Azure Connected plus private ICMP/HTTP. |
| Azure gateway → workload | VNet Gateway GatewaySubnet 10.2.255.0/27 |
nginx VM10.2.1.4Subnet 10.2.1.0/24 |
Azure VNet system route delivers traffic to the workload subnet; the workload NSG is evaluated. | Private ICMPTCP/80 HTTP |
VM returns through the VNet Gateway route for the Ireland prefix 10.1.0.0/16. |
| AWS telemetry and evidence flow | Both AWS VPCs CloudTrail CloudWatch |
Retained S3 audit storage CloudWatch dashboard SNS topic |
Provider-managed service delivery; separate from the application data path. | VPC Flow Logs CloudTrail API events CloudWatch metrics |
Provides dated verification, alarm notification and teardown evidence. |
| Azure management flow | Authorised operator Azure control plane |
Azure VM and resource groupeg334s-team2-rg |
Run Command requires VM action permission. Reader permits inspection only; it does not permit command execution. | Azure management-plane HTTPS | Activity Log records changes. Additional team access remains a separate, least-privilege administration task. |
A 20-page evidence-led report covering the accepted school deployment, two-VPN topology, two active Ireland application targets, Test 9, IaC controls, evidence boundaries and dependency-ordered teardown.
Working submission artefact. School deployment and measured Test 9 results are incorporated; final team approval remains pending.
One shared 15-slide presentation aligned to the assessment rubric and accepted school architecture: two VPNs, two active Ireland targets, security and monitoring controls, Test 9 evidence, Q&A and teardown.
Current working copy. Final speaking order requires team confirmation.
Account-neutral CloudFormation, Azure Bicep and strongSwan configuration for Virginia, Ireland and the Azure second-cloud cell. The accepted deployment uses Azure East Asia because suitable low-cost VM capacity was restricted in Singapore. The package covers VPN #1, VPN #2, the two-AZ ALB, active secondary, audit logging, alarms, evidence storage, validation, deployment and teardown.
Download a single region or service template below. The complete ZIP remains the recommended option for a coordinated rebuild because it also contains validation scripts, runbooks and the checksum manifest.
The account-neutral package was used for the accepted school deployment. The active-secondary stack avoids custom IAM; the advanced IAM/Lambda recovery template remains optional.
Completeness boundary. The archive contains every project-controlled template, configuration skeleton, runbook, package index and safety script required for the staged rebuild. AWS-generated tunnel endpoints and VPN pre-shared keys are inserted during attended deployment and are intentionally absent. The package was used for the accepted school deployment; validation and live acceptance are separate evidence records.
A concise operator view for team members to verify the two supported encrypted paths after the school build. It publishes target commands—not passwords, SSH keys, access tokens, account identifiers or VPN pre-shared keys.
Both AWS regions, the Azure cell and VPN #1/VPN #2 are deployed. Confirm current target health and tunnel state before each test; team-member execution still depends on individually scoped AWS access and Azure Run Command permission.
Sign in with an individually assigned school identity. Use the Virginia test host or Ireland hub only after scoped Session Manager access is enabled.
Sign in with the assigned school identity. Reader permits inspection; test execution requires an additional narrowly scoped Run Command role. Target resource group: eg334s-team2-rg.
Start from the Virginia Amazon Linux 2 private test host. The 10.1.0.0/16 route uses strongSwan 10.0.1.55, then VPN #1 and Ireland VGW.
ping -c 4 10.1.1.119
curl -fsS --max-time 10 http://10.1.1.119/Expected: ICMP replies and the Ireland Apache page.
Start from the Ireland primary Apache host. The VGW has learned 10.0.0.0/16 through VPN #1; replies return through strongSwan.
ping -c 4 10.0.1.104Expected: private-address ICMP replies from the Virginia test host.
Start from the Ireland primary Apache host. The VGW learns 10.2.0.0/16 through VPN #2; the Azure VNet gateway then delivers to the East Asia workload subnet.
ping -c 4 10.2.1.4
curl -fsS --max-time 10 http://10.2.1.4/Acceptance: ICMP replies and the Azure nginx page.
Run through authenticated Azure Run Command. The local network gateway represents Ireland 10.1.0.0/16; traffic returns through the same VPN connection.
ping -c 4 10.1.1.119
curl -fsS --max-time 10 http://10.1.1.119/Acceptance: ICMP replies and the Ireland Apache page.
The accepted school deployment now includes a professional Test 9 genuine-action recording. It shows the live SGT event timeline, ALB target health, continuous HTTP sampling and authenticated Virginia-to-Ireland private pings. Credentials and VPN secrets remain excluded.
eu-west-1a. It is not a whole-Availability-Zone, ALB, VGW, VPC or Ireland Region failure, and it does not claim zero interruption.Controlled cold-recovery drill · 30 Jul 2026 — before active-active was enabled, a zero-capacity recovery ASG launched a replacement and restored service in 218 seconds against the accepted 600-second objective. This is retained for audit evidence only and is not part of the current active-active demonstration sequence. HISTORICAL · PASS 218 S
Deployed design reference, not a substitute for live telemetry. The diagram follows the reconciled CloudFormation and Bicep design: Virginia has one public subnet; the Ireland application entry spans public subnets in eu-west-1a and eu-west-1b; Azure has one workload subnet and one GatewaySubnet. VPN #1 and VPN #2 are the current encrypted paths. The strongSwan EC2 owns the Elastic IP, has IPv4 forwarding persistently enabled and source/destination checking disabled, and routes traffic for the separate Amazon Linux 2 ICMP/SSH test host. Provider-managed addresses can change after rebuilding, and the VGW remains deliberately non-transitive. The live map and state banner above are authoritative for current availability. Open editable vector · Open historical commissioning capture.
Resilience boundary and measured result. The 30 Jul figure records the earlier cold-recovery test, which passed in 218 seconds against the accepted 600-second objective. From 31 Jul the operating baseline is active-active: one healthy target in each Ireland AZ. A 30-request distribution sample split 15/15 with no failure. An abrupt-stop test exposed a short ALB health-detection window (143 HTTP 200 and 7 transient failures across 150 samples), so zero-interruption failover is not claimed. This remains application-service resilience only: the VPC, VGW and VPN connections are separate dependencies. Open historical recovery vector · 30 Jul recovery evidence · 31 Jul active-active evidence.
Why the public evidence is trustworthy. GitHub Actions uses AWS and Azure OIDC to collect state normally hourly and the larger inventory approximately every three hours. Complete, error-aware JSON is written to Workers KV as the primary path; committed files are the browser fallback. The Cloudflare watchdog checks KV every five minutes and dispatches a freshness-gated workflow only when needed, while the native GitHub schedule is an independent fallback. The dashboard distinguishes fresh, stale, partial and unreachable: freshness never substitutes for completeness, and no VPN PSK, SSH key or cloud credential is published. Open editable vector.
Figure 6.1. The cross-cloud build order. Step 3 is the hinge: AWS only generates the tunnel addresses and pre-shared keys once the VPN connection exists, so neither cloud can be completed first. The seam has to be walked once, in order, by hand.
Click to enlarge
Figure 5.7. The VPN environment and the services around it. The two VPN connections are the assets being protected; AWS supplies two tunnel endpoints for each connection. The current templates define both VPC Flow Logs, the multi-region CloudTrail, SNS and both VPN alarms. AWS Budgets and the CloudWatch dashboard remain separate account-level controls. The retained central S3 bucket is intentionally left after stack deletion until evidence is preserved and it is explicitly emptied and removed. Current deployed ownership must be proved from describe-stack-resources; until a complete inventory succeeds, it is TBD rather than assumed. Open the ownership matrix.
These screenshots prove the tested topology at the time they were captured. Some identifiers changed during later rebuilds; the live map and current-state banner above are authoritative for the current deployment.
Both VPN connections Available on the same Virtual Private Gateway. This single frame is the proof of the hub topology.
VPN #1 to the simulated on-premises cell. Customer gateway 52.201.145.0, tunnel 34.247.143.4 Up.
VPN #2 to Azure. Customer gateway 40.119.233.66, tunnel 52.49.122.112 Up. This is the cross-cloud link.
The Azure network 10.2.0.0/16 propagated to the VGW, Active, Propagated: Yes. Learned automatically, not typed in.
The hub route table. Four routes, with both remote networks learned through Virtual Private Gateway propagation.
The abrupt-stop video is now linked from the recovered local backup, so the dashboard no longer points to a dead CloudFront host. Test 9 shows the active-active ALB failure and the earlier 218-second recovery clip remains historical reference only.
Test 4 proves application traffic crossed an encrypted path between two cloud providers and returned a response. Test 5 deliberately preserves the VGW negative test: knowing the boundary of the chosen architecture is part of demonstrating it correctly. Test 6 proves the accepted service-recovery objective.
HubRecoverySeconds threshold: 600 seconds vpn-065016cdb8d06a873 vpn-03dcb879c286f5ecd
EG334S-audit-trail fl-0963dc40ce2f1c698 (eu-west-1) + fl-0ef531e2d2d6d1173 (us-east-1)EG334S-MultiCloud-Monitoring (eu-west-1)/32 on the on-premises hosts, with no public SSH ingress on the hub server. The published CloudFormation templates have no permissive default: deployment requires an explicit valid /32, and scripts/validate-iac.sh rejects an open administrator default.Security groups decide what is allowed. Alarms, trails and flow logs decide what is noticed. The VPN #2 alarm firing on a real outage is stronger proof than a pair of green ticks: it shows the detection path works end to end, from metric to alarm to SNS to inbox.
Decision: protect the AWS hub application without duplicating or replacing the VPN infrastructure. The accepted objective is to restore the hub web service within 10 minutes of a detected EC2 failure. This is a controlled application-service recoverability drill—not full High Availability, regional disaster recovery, or VGW/VPN failover.
PASS · 3m 38s RTO ≤ 10 min standby 0 EC2 NOT FULL HA Azure proven separately
The failed component is the hub web-server EC2 instance. The recovery stack therefore imports the existing VPC, security group and propagated route table, then launches a replacement in eu-west-1b. It does not create or modify the Virtual Private Gateway, customer gateways or either Site-to-Site VPN connection.
This keeps the blast radius small. The working VPN control plane remains in place while only the stateless application host is replaced.
The secondary Auto Scaling group now has min=1, desired=1 and max=1. This keeps one Apache target online in eu-west-1b while the original target remains online in eu-west-1a.
The secondary t3.micro, its 8 GiB gp3 disk and public IPv4 are billed continuously. Route 53, alarms, Lambda, EventBridge, Parameter Store and DNS queries remain additional small control costs. Returning to desired zero would reduce cost but would also end the active-active operating claim.
stopped or terminated. A separate two-of-two, one-minute StatusCheckFailed alarm covers EC2 system or instance failure.eg334s-hub-recovery-HubRecoveryAsg from desired capacity 0 to 1.running. The DNS updater waits until both EC2 system and instance status checks report ok.hub.eg334s.internal changes to the replacement private IP. A VPC-attached Lambda then requests the service through that stable name and requires HTTP 200.EG334S/Recovery:HubRecoverySeconds records the automated interval. EG334S-Hub-Recovery-Over-10-Minutes alarms if the measured recovery exceeds 600 seconds.10.1.1.61 and recovery capacity returns to zero. The order matters: never remove the replacement before primary health and DNS restoration are confirmed.Primary stop initiated: i-074bf0cb910a99e02 at 14:48:00 SGT. Replacement: i-0007949b2f976f068 at 10.1.2.154. Result: private DNS and the public ALB returned HTTP 200 after 218 seconds. The primary was restarted, private DNS returned to 10.1.1.61, recovery capacity returned to zero, and all four project alarms were OK.
Claim boundary. This proves recovery of the stateless hub EC2 application inside the existing VPC. It does not prove recovery from loss of eu-west-1, the VPC, the VGW, Route 53 or stateful application data. It also does not preserve the instance's public IPv4 address. Team tests should use hub.eg334s.internal from associated private networks rather than treating a public IP as the failover endpoint.
Azure scope. VPN #2 was live and proven with genuine Ireland–Singapore private-path tests before the recovery drill. The 218-second metric measures AWS hub application recovery through private DNS and the public ALB; it does not claim uninterrupted Azure-client service during every transition.
Checking billing APIs…
Default-Services-Monitor, not one configured for this project, and its subscription requires an anomaly of ≥ $100 AND ≥ 40%. Peak spend here is about $7.85/day, so the $100 condition cannot be met. Its notification address also differs from the SNS topic address; confirm which inbox is actively monitored.bernard-admin holds AdministratorAccess and simulate-principal-policy returns allowed for iam:CreateRole, iam:PassRole, budgets:ModifyBudget and ec2:StopInstances. An earlier note claimed lab IAM blocked Budget Actions. That was true of the previous account and of the agent guardrail, not of this account.PayAsYouGo_2014-09-01, which has no included credit to protect, so Azure reports the limit as Off and offers no way to enable it. That is why spend here is uncapped and why a budget with alerts is the only native control available. For a hard cap you would need a budget wired to an action group that triggers an automation runbook to deallocate resources, which is the Azure equivalent of AWS Budget Actions.Project tag was activated on 25 Jul and now reports Status: Active. An earlier note claimed it was not activatable from a linked account. That was wrong, and it was never tested. Note the lag: activation only applies to usage recorded from that point on, so it will not retrospectively split earlier spend.How these numbers were obtained. Actual month-to-date spend comes from the Azure Cost Management API and AWS Cost Explorer. Projected daily run rates are estimates calculated from the Azure Retail Prices API and AWS Price List API against the real resource inventory. At the 25 Jul rate check, Azure VPN Gateway VpnGw1AZ was $0.21/hr, the Azure VM Standard_D2als_v7 was $0.101/hr, and each AWS Site-to-Site VPN connection was $0.05/hr.
Actual versus projected, and why they differ so much. The earlier $283 figure was a projection of what leaving everything running to the deadline would have cost. The current month-to-date values are displayed above from the billing APIs. Azure remains lower than the projection because the gateway runs only in short bursts—built, verified and torn down again—rather than continuously.
How fresh can this be? Azure Cost Management returns same-day data, though the current day keeps trickling in for several hours. AWS Cost Explorer lags a day or more and flags its figures as Estimated. So "live cost" does not exist on either cloud. What is real time is the resource inventory, which is what actually matters for catching something left running. Any team member with the documented read-only access can run ./scripts/refresh-cost.sh; it fails closed if either cloud login or a required billing field is unavailable.
Control lesson. The first guardrails covered AWS even though credits reduce its net bill to approximately zero, while the Pay-As-You-Go Azure subscription carried the cash cost. Azure now has its own monthly budget and alerts.
Guardrails are alert-only: the cloud emails you, you act. The cheapest guardrail is still teardown · delete-stack on AWS and az group delete on Azure between work sessions.
Owner means whoever can actually act. The programme manager tracks every risk on this list and chases all of them, but only owns the ones where he holds the lever. A risk assigned to someone who cannot discharge it is not managed, it is just parked.
This is a historical evidence record, not the hourly operational reading. Current tunnel, alarm, compute and cost summaries come from the live banner and map. Infrastructure facts below were captured after the 25 Jul rebuild; working-artefact metadata was updated on 28 Jul.
vgw-0bf466d711cc93ac4, VPN #1 vpn-065016cdb8d06a873, VPN #2 vpn-03dcb879c286f5ecd, both VPN connections, both flow logs. Verified with describe-vpn-connections, describe-customer-gateways, describe-flow-logs.SourceDestCheck=false on the strongSwan instance, GatewaySubnet 10.2.255.0/27 with nsg: None, workload subnet 10.2.1.0/24 with its NSG attached, local network gateway configured for the current AWS VPN #2 endpoint and 10.1.0.0/16.IsLogging: true, SNS has a confirmed email subscription, both AWS budgets remain at $40 and $3, and the Azure budget remains at $25.ttl=254, against the ~69 ms recorded earlier. Within normal jitter, same path.i-074bf0cb910a99e02; replacement i-0007949b2f976f068 served HTTP through private DNS and the public ALB at 10.1.2.154 in 218 seconds. Primary, DNS and zero-capacity steady state were restored; all four alarms were OK. This is recoverability evidence, not full HA. Evidence and claim boundary.Assessment documents verified and artefacts reconciled 31 Jul 2026. The assessment weightings, scope, milestones, report requirements and both rubrics were checked against the supplied official files. The report content order shown in the brief is an example for reference, not a mandatory sequence. The current working report was rendered and checked at 21 pages; the shared deck was rendered across all 15 slides. Both include the measured active-active failover boundary and remain subject to team review. One infrastructure limitation remains unverified: the orphaned IAM role sits on the previous lab account, which this session has no access to, so its continued existence is reported, not observed.
Re-run this before the demo. Infrastructure claims decay. The shared ./scripts/verify-teardown.sh and ./scripts/refresh-cost.sh tools are now in this repository. Both refuse to report success if authentication or a required query fails. Use the provisional evidence register to replace historical captures after the 25 Aug rebuild.
eg334s-hub-recovery firstaz group delete --name eg334s-rg --yesaz resource list --tag Project=EG334S returns emptyAWS order matters: delete eg334s-vpn2-aws before eg334s-vpn1-awspublic, it borrows that VGW.
Note: an orphaned IAM role from the locked-down lab account (eg334s-vpn1-onprem-SsmRole-*) can't be self-deleted · flag to lab admin. IAM is global, not regional.
eg334s-vpn2-aws borrows the virtual private gateway owned by eg334s-vpn1-awspublic. Delete VPN #2 first so the owner stack can remove the gateway cleanly.
After teardown, run the authenticated verification script across both AWS regions and Azure. Retain its PASS / FAIL / ERROR transcript as the M6 completion evidence.
The historical deployment used a separate VPN #2 stack that borrowed the hub VGW by parameter, so CloudFormation did not enforce deletion order. The current published hub template can stage VPN #2 inside the same stack. Which model is live is TBD until stack-resource inventory succeeds; follow the observed model, not an assumption.
The shared verification script checks the project-named AWS resources returned by the complete inventory plus every resource in eg334s-rg, and fails closed with ERROR if authentication or any required query fails. Account-level budgets, the CloudWatch dashboard, key pairs, legacy IAM and the Cloudflare evidence site remain explicit manual/TBD controls in the ownership matrix.
Shared evidence record · technical milestones are source-controlled, not browser-local. Times in Asia/Singapore. Built for EG334S. Live status is in the banner and map above; the update stamp is below.
Le nozze di Figaro, K. 492, Act III, No. 21, Sull’aria … Che soave zeffiretto, the Letter Duet. Five interpretations. Press play above. Full tracks need an active Spotify session in this browser, otherwise Spotify serves previews. Turn this off before the assessed demo.