{"id":16292,"date":"2021-05-03T12:27:15","date_gmt":"2021-05-03T10:27:15","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/"},"modified":"2021-05-03T12:27:15","modified_gmt":"2021-05-03T10:27:15","slug":"building-a-postgresql-ec2-ami-for-testing-the-latest-commits","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/","title":{"rendered":"Building a PostgreSQL EC2 AMI for testing the latest commits"},"content":{"rendered":"<p>Testing the latest features or bug fixes in PostgreSQL can easily be done by pulling the latest commits from the git repository and compile PostgreSQL from source code. I am doing that frequently on my local sandbox VM but this becomes limited when I need more CPUs or more memory. This is where the public cloud really shines, as you can easily deploy new VMs, do your tests and get rid of it afterwards with just a view clicks or commands. Bringing up a Debian VM in AWS, which already has the latest development snapshot up and running is something that can be done quite fast.<\/p>\n<p><!--more--><\/p>\n<p>As a starting point I&#8217;ve used the official Debian AMI:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-1.jpg\" alt=\"\" width=\"877\" height=\"644\" class=\"aligncenter size-full wp-image-49549\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-2-1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-2-1.jpg\" alt=\"\" width=\"1000\" height=\"253\" class=\"aligncenter size-full wp-image-49551\" \/><\/a><\/p>\n<p>For creating your own customized AMI you could go with a micro or even a nano instance, but if you want to compile fast, more CPUs are better:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-3.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-3.jpg\" alt=\"\" width=\"1000\" height=\"572\" class=\"aligncenter size-full wp-image-49552\" \/><\/a><\/p>\n<p>Your <a href=\"https:\/\/aws.amazon.com\/vpc\/?vpc-blogs.sort-by=item.additionalFields.createdDate&amp;vpc-blogs.sort-order=desc\" target=\"_blank\" rel=\"noopener\">VPC<\/a> should already be configured (or just use the default one) and if you want to connect from outside AWS you&#8217;ll need a public IP address:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-4.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-4.jpg\" alt=\"\" width=\"1000\" height=\"448\" class=\"aligncenter size-full wp-image-49553\" \/><\/a><\/p>\n<p>How much storage you&#8217;ll need, depends on the tests you want to do. For now it is not really important as you can change that later on, once the AMI is ready:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-5.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-5.jpg\" alt=\"\" width=\"1000\" height=\"301\" class=\"aligncenter size-full wp-image-49554\" \/><\/a><\/p>\n<p>Tags are always a good idea, especially if you have many instances running:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-6.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-6.jpg\" alt=\"\" width=\"1000\" height=\"247\" class=\"aligncenter size-full wp-image-49555\" \/><\/a><\/p>\n<p>Of course you should configure the security group to allow SSH access:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-7.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-7.jpg\" alt=\"\" width=\"1000\" height=\"459\" class=\"aligncenter size-full wp-image-49556\" \/><\/a><\/p>\n<p>Review, provide your key pair and launch the instance:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-8.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-8.jpg\" alt=\"\" width=\"1000\" height=\"531\" class=\"aligncenter size-full wp-image-49557\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-9.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-9.jpg\" alt=\"\" width=\"702\" height=\"440\" class=\"aligncenter size-full wp-image-49558\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-10.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-10.jpg\" alt=\"\" width=\"1000\" height=\"164\" class=\"aligncenter size-full wp-image-49559\" \/><\/a><\/p>\n<p>Once it is running grab the public IP address and connect (the user for Debian is &#8220;admin&#8221;, not &#8220;ec2-user&#8221;):<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\ndwe@ltdwe:~$ ssh -i \/home\/dwe\/Documents\/aws\/dwe-key-pair.pem admin@3.122.206.167\nThe authenticity of host '3.122.206.167 (3.122.206.167)' can't be established.\nECDSA key fingerprint is SHA256:E\/W08OSWhym0k2SVQafxu3rCljqEVg\/VC744sz3ilog.\nAre you sure you want to continue connecting (yes\/no\/[fingerprint])? yes\nWarning: Permanently added '3.122.206.167' (ECDSA) to the list of known hosts.\nLinux ip-10-0-1-35 4.19.0-16-cloud-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64\n\nThe programs included with the Debian GNU\/Linux system are free software;\nthe exact distribution terms for each program are described in the\nindividual files in \/usr\/share\/doc\/*\/copyright.\n\nDebian GNU\/Linux comes with ABSOLUTELY NO WARRANTY, to the extent\npermitted by applicable law.\n<\/pre>\n<p>Updating the OS to the latest release is always something I am doing as the first step:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nadmin@ip-10-0-1-35:~$ sudo apt update &amp;&amp; sudo apt dist-upgrade -y\n<\/pre>\n<p>Install all packages you need for the compilation from source code (and some more in the list below):<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nadmin@ip-10-0-1-35:~$ sudo apt install libldap2-dev libpython-dev libreadline-dev libssl-dev bison flex libghc-zlib-dev libcrypto++-dev libxml2-dev libxslt1-dev tcl tclcl-dev bzip2 wget screen libpam0g-dev libperl-dev make unzip libpam0g-dev python libsystemd-dev sudo llvm-7 llvm-7-dev clang pkg-config gcc g++ liblz4-dev pkg-config git -y\n<\/pre>\n<p>Configure the OS group and user you&#8217;ll use for the PostgreSQL installation:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nadmin@ip-10-0-1-35:~$ sudo groupadd postgres\nadmin@ip-10-0-1-35:~$ sudo useradd -g postgres -m -s \/bin\/bash postgres\n<\/pre>\n<p>Clone the PostgreSQL git repository:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1]\">\nadmin@ip-10-0-1-35:~$ sudo su - postgres -c \"git clone git:\/\/git.postgresql.org\/git\/postgresql.git\"\nCloning into 'postgresql'...\nremote: Enumerating objects: 836887, done.\nremote: Counting objects: 100% (836887\/836887), done.\nremote: Compressing objects: 100% (121635\/121635), done.\nremote: Total 836887 (delta 719772), reused 828577 (delta 712107), pack-reused 0\nReceiving objects: 100% (836887\/836887), 255.06 MiB | 32.09 MiB\/s, done.\nResolving deltas: 100% (719772\/719772), done.\n<\/pre>\n<p>This is the small script that will do all the work for us:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nadmin@ip-10-0-1-35:~$ sudo su - postgres\npostgres@ip-10-0-1-35:~$ cat compile.sh \n#!\/bin\/bash\n\nrm -rf \/home\/postgres\/pgdata\ncd \/home\/postgres\/postgresql\ngit pull\nmake distclean\n.\/configure --prefix=\/home\/postgres\/pgdev\nmake -j4 all\nmake install\ncd contrib\nmake -j4 install\n\/home\/postgres\/pgdev\/bin\/initdb -D \/home\/postgres\/pgdata\n\/home\/postgres\/pgdev\/bin\/pg_ctl -D \/home\/postgres\/pgdata start -l \/dev\/null\n\/home\/postgres\/pgdev\/bin\/psql -c \"select version()\"\n<\/pre>\n<p>Once PostgreSQL is installed create a new AMI from the EC2 instance:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-11.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-11.jpg\" alt=\"\" width=\"703\" height=\"493\" class=\"aligncenter size-full wp-image-49575\" \/><\/a><\/p>\n<p>Having the new AMI ready we can easily launch an instance based on the AMI:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-13.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-13.jpg\" alt=\"\" width=\"1000\" height=\"439\" class=\"aligncenter size-full wp-image-49577\" \/><\/a><\/p>\n<p>In the &#8220;Advanced Details&#8221; section provide the call to the script:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-16.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-16.jpg\" alt=\"\" width=\"1016\" height=\"418\" class=\"aligncenter size-full wp-image-49582\" \/><\/a><\/p>\n<p>When the instance started up, you can follow the progress in the cloud init log file:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-17-1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-17-1.jpg\" alt=\"\" width=\"800\" height=\"252\" class=\"aligncenter size-full wp-image-49584\" \/><\/a><\/p>\n<p>Happy testing \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Testing the latest features or bug fixes in PostgreSQL can easily be done by pulling the latest commits from the git repository and compile PostgreSQL from source code. I am doing that frequently on my local sandbox VM but this becomes limited when I need more CPUs or more memory. This is where the public [&hellip;]<\/p>\n","protected":false},"author":29,"featured_media":16293,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1865,229],"tags":[2330,133,1883,77],"type_dbi":[],"class_list":["post-16292","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aws","category-database-administration-monitoring","tag-ami","tag-aws","tag-ec2","tag-postgresql"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Building a PostgreSQL EC2 AMI for testing the latest commits - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building a PostgreSQL EC2 AMI for testing the latest commits\" \/>\n<meta property=\"og:description\" content=\"Testing the latest features or bug fixes in PostgreSQL can easily be done by pulling the latest commits from the git repository and compile PostgreSQL from source code. I am doing that frequently on my local sandbox VM but this becomes limited when I need more CPUs or more memory. This is where the public [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-05-03T10:27:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"877\" \/>\n\t<meta property=\"og:image:height\" content=\"644\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Daniel Westermann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@westermanndanie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Westermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/\"},\"author\":{\"name\":\"Daniel Westermann\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"headline\":\"Building a PostgreSQL EC2 AMI for testing the latest commits\",\"datePublished\":\"2021-05-03T10:27:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/\"},\"wordCount\":392,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-1.jpg\",\"keywords\":[\"AMI\",\"AWS\",\"EC2\",\"PostgreSQL\"],\"articleSection\":[\"AWS\",\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/\",\"name\":\"Building a PostgreSQL EC2 AMI for testing the latest commits - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-1.jpg\",\"datePublished\":\"2021-05-03T10:27:15+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-1.jpg\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-1.jpg\",\"width\":877,\"height\":644},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Building a PostgreSQL EC2 AMI for testing the latest commits\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\",\"name\":\"Daniel Westermann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"caption\":\"Daniel Westermann\"},\"description\":\"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.\",\"sameAs\":[\"https:\/\/x.com\/westermanndanie\"],\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Building a PostgreSQL EC2 AMI for testing the latest commits - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/","og_locale":"en_US","og_type":"article","og_title":"Building a PostgreSQL EC2 AMI for testing the latest commits","og_description":"Testing the latest features or bug fixes in PostgreSQL can easily be done by pulling the latest commits from the git repository and compile PostgreSQL from source code. I am doing that frequently on my local sandbox VM but this becomes limited when I need more CPUs or more memory. This is where the public [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/","og_site_name":"dbi Blog","article_published_time":"2021-05-03T10:27:15+00:00","og_image":[{"width":877,"height":644,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-1.jpg","type":"image\/jpeg"}],"author":"Daniel Westermann","twitter_card":"summary_large_image","twitter_creator":"@westermanndanie","twitter_misc":{"Written by":"Daniel Westermann","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/"},"author":{"name":"Daniel Westermann","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"headline":"Building a PostgreSQL EC2 AMI for testing the latest commits","datePublished":"2021-05-03T10:27:15+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/"},"wordCount":392,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-1.jpg","keywords":["AMI","AWS","EC2","PostgreSQL"],"articleSection":["AWS","Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/","url":"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/","name":"Building a PostgreSQL EC2 AMI for testing the latest commits - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-1.jpg","datePublished":"2021-05-03T10:27:15+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-1.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/aws-pg-ami-1.jpg","width":877,"height":644},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/building-a-postgresql-ec2-ami-for-testing-the-latest-commits\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Building a PostgreSQL EC2 AMI for testing the latest commits"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66","name":"Daniel Westermann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","caption":"Daniel Westermann"},"description":"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.","sameAs":["https:\/\/x.com\/westermanndanie"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/16292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=16292"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/16292\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/16293"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=16292"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=16292"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=16292"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=16292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}