{"id":18719449,"url":"https://github.com/dkorunic/cloudbench-https","last_synced_at":"2025-08-22T14:10:13.299Z","repository":{"id":151034440,"uuid":"154843300","full_name":"dkorunic/cloudbench-https","owner":"dkorunic","description":"poor-man AWS-based multi-AZ site benchmark","archived":false,"fork":false,"pushed_at":"2018-10-26T14:13:39.000Z","size":100,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-19T14:17:25.031Z","etag":null,"topics":["availability-zone","aws","aws-ec2","benchmark","cloud","curl","http","https"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dkorunic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-26T14:00:19.000Z","updated_at":"2018-10-26T19:34:23.000Z","dependencies_parsed_at":"2023-04-14T18:46:53.812Z","dependency_job_id":null,"html_url":"https://github.com/dkorunic/cloudbench-https","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dkorunic/cloudbench-https","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkorunic%2Fcloudbench-https","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkorunic%2Fcloudbench-https/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkorunic%2Fcloudbench-https/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkorunic%2Fcloudbench-https/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dkorunic","download_url":"https://codeload.github.com/dkorunic/cloudbench-https/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkorunic%2Fcloudbench-https/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271650860,"owners_count":24796725,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-22T02:00:08.480Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["availability-zone","aws","aws-ec2","benchmark","cloud","curl","http","https"],"created_at":"2024-11-07T13:26:08.055Z","updated_at":"2025-08-22T14:10:13.270Z","avatar_url":"https://github.com/dkorunic.png","language":"Python","readme":"cloudbench-https\n===\n\n## About\n\ncloudbench-https in a poor-man Pingdom-like reporting tool, aimed at spawning AWS EC2 instances in every public region and availability zone (at this moment of speaking 64 of them) and testing Web site reachability performance, displaying various timing information available from Curl timers in regards to DNS, TCP, SSL/TLS and TTFB information.\n\nThis stack consists of [Terraform](https://www.terraform.io/) infrastructure code that spawns 64+ EC2 instances with preferring single EC2 **t2.micro** instance per AZ and [Ansible](https://www.ansible.com/) playbook that configures software and runs test, delivering remote site timing information as final results.\n\nInformation being delivered from every AZ during testing is:\n\n  - **dns**: time in seconds from the start to the completed DNS resolving\n  - **tcpconn**: time in seconds from the start to the completed TCP connection to a remote host\n  - **sslconn**: time in seconds from the start to the completed SSL/SSH/etc. connect/handshake to a remote host\n  - **prexfr**: time in seconds from the start to the stage where everything is ready for the transfer (including all pre-transfer commands and negotiations)\n  - **startxfr**: time in seconds from the start to the first byte to be transferred\n  - **total**: time in seconds for the whole operation\n\nThis list of information is delivered per instance per AZ, so that it is possible to observe how well is the site performing across different regions (DNS-wise, CDN-wise, etc.) without any previous warmup.\n\n## Requirements\n\nSoftware needed:\n\n  - [Terraform](https://www.terraform.io/)\n  - [Ansible](https://docs.ansible.com/)\n\nAlso a working AWS EC2 credentials are required, typically stored in `$HOME/.aws/credentials`.\n\n## Usage\n\nClone project:\n\n```shell\ngit clone https://github.com/dkorunic/cloudbench-https\n```\n  \nConfigure remote Web site URL in `roles/curl/defaults/main.yml`, parameter to modify is `test_url`.\n \nMake sure you have AWS credentials configured in `$HOME/.aws/credentials`.\n\nReplace `public_key` in `cloudbench/module.tf` file with the contents of your `$HOME/.ssh/id_rsa.pub` file to be able to connect with Ansible to remote EC2 instances.\n\nInitialize Terraform:\n\n```shell\nterraform init\n```\n\nApply the Terraform plan:\n\n```shell\nterraform apply -auto-approve\n```\n\nApply Ansible playbook and watch the results:\n\n```shell\nansible-playbook site.yml 2\u003e\u00261 | tee log.txt\n```\n\nFinally destroy uneeded infrastructure:\n\n```shell\nterraform destroy -auto-approve\n```\n\nRequired timing information will be available at the end of log.txt as well as any other possible error information.\n\n## Demo\n\n![](demo.png)","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdkorunic%2Fcloudbench-https","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdkorunic%2Fcloudbench-https","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdkorunic%2Fcloudbench-https/lists"}