<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Amazon EC2 Mac Instances Archives - The NOKIA Blog</title>
	<atom:link href="https://thenokiablog.com/tag/amazon-ec2-mac-instances/feed/" rel="self" type="application/rss+xml" />
	<link>https://thenokiablog.com/tag/amazon-ec2-mac-instances/</link>
	<description></description>
	<lastBuildDate>Tue, 25 Aug 2026 16:11:02 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://thenokiablog.com/wp-content/uploads/2024/03/cropped-Cjdowner-Cryptocurrency-Flat-ICON-ICX.512-32x32.png</url>
	<title>Amazon EC2 Mac Instances Archives - The NOKIA Blog</title>
	<link>https://thenokiablog.com/tag/amazon-ec2-mac-instances/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Happy 20th Birthday, Amazon EC2</title>
		<link>https://thenokiablog.com/happy-20th-birthday-amazon-ec2/</link>
		
		<dc:creator><![CDATA[Mister Nokia]]></dc:creator>
		<pubDate>Tue, 25 Aug 2026 16:11:02 +0000</pubDate>
				<category><![CDATA[Nokia Mobile Phone]]></category>
		<category><![CDATA[Amazon Bedrock]]></category>
		<category><![CDATA[Amazon CloudWatch]]></category>
		<category><![CDATA[Amazon EC2]]></category>
		<category><![CDATA[Amazon EC2 Mac Instances]]></category>
		<category><![CDATA[Amazon EMR]]></category>
		<category><![CDATA[Amazon SageMaker]]></category>
		<category><![CDATA[Amazon SageMaker AI]]></category>
		<category><![CDATA[Auto Scaling]]></category>
		<category><![CDATA[AWS Fargate]]></category>
		<category><![CDATA[AWS Inferentia]]></category>
		<category><![CDATA[AWS Lambda]]></category>
		<category><![CDATA[AWS Local Zones]]></category>
		<category><![CDATA[AWS Outposts]]></category>
		<category><![CDATA[AWS re:Invent]]></category>
		<category><![CDATA[AWS Trainium]]></category>
		<category><![CDATA[AWS Wavelength]]></category>
		<category><![CDATA[Compute]]></category>
		<category><![CDATA[Elastic Load Balancing]]></category>
		<category><![CDATA[Foundation models]]></category>
		<category><![CDATA[Generative AI]]></category>
		<category><![CDATA[Graviton]]></category>
		<category><![CDATA[Launch]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Regions]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Storage]]></category>
		<guid isPermaLink="false">https://thenokiablog.com/happy-20th-birthday-amazon-ec2/</guid>

					<description><![CDATA[<p>Twenty years ago today, Jeff Barr wrote a blog post that launched the Amazon EC2 Beta....</p>
<p>The post <a href="https://thenokiablog.com/happy-20th-birthday-amazon-ec2/">Happy 20th Birthday, Amazon EC2</a> appeared first on <a href="https://thenokiablog.com">The NOKIA Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<table id="amazon-polly-audio-table">
<tbody>
<tr>
<td id="amazon-polly-audio-tab">
<div id="amazon-polly-by-tab">
            <img decoding="async" src="https://thenokiablog.com/wp-content/uploads/2026/08/happy-20th-birthday-amazon-ec2.png" alt="Voiced by Polly" width="554" height="56">
           </div>
</td>
</tr>
</tbody>
</table>
<p><img fetchpriority="high" decoding="async" class="size-full wp-image-105375 alignright" src="https://thenokiablog.com/wp-content/uploads/2026/08/happy-20th-birthday-amazon-ec2.jpg" alt width="250" height="250">Twenty years ago today, Jeff Barr wrote a blog post that launched the Amazon EC2 Beta. That single post introduced resizable Linux virtual servers in the cloud, billed by the hour, with one instance type (<code>m1.small</code>) in one Region (US East). It was minimal yet useful, and it changed how the world thinks about computing infrastructure.</p>
<p>In 2021, Jeff covered the fifteen years of EC2 with the backstory and memorable EC2 launches. Over the last five years, AWS has continued to push the boundaries of what cloud computing can deliver, building custom silicon for general-purpose and AI workloads and expanding EC2 into new form factors and deployment models that our customers in 2006 could not have imagined.</p>
<p><strong><u>The 20 years in brief</u></strong><br>In his 15th anniversary post, Jeff chose important milestones of EC2 that established the foundational building blocks that customers still rely on today. Amazon Elastic Block Store (2008) provided persistent block storage. Elastic Load Balancing, Auto Scaling, and Amazon CloudWatch (2009) made applications scalable and highly available. Amazon Virtual Private Cloud (2009) gave customers logically isolated networks. AWS Nitro System (2017) enabled faster innovation and enhanced security. AWS Graviton processors (2018) were designed for cost-sensitive scale-out workloads.</p>
<p>Over 20 years, EC2 grew from one to over 1,200 instance types to meet customer needs across general-purpose, compute-, memory-, and storage-optimized, accelerated computing, and high-performance computing families. These instances expanded from one AWS Region to 39 Regions globally. AWS also extended EC2 beyond the Region boundary with AWS Outposts (2018) running EC2 instances locally, AWS Local Zones (2019) place globally, and AWS Wavelength (2019) inside global 5G telecommunications carrier networks.</p>
<div class="internal-linking-related-contents"><a href="https://thenokiablog.com/html-element-select-envato-tuts/" class="template-2"><span class="cta">Read more</span><span class="postTitle">HTML Element: select | Envato Tuts+</span></a></div><p><img decoding="async" loading="lazy" class="aligncenter wp-image-105383 size-full" src="https://thenokiablog.com/wp-content/uploads/2026/08/happy-20th-birthday-amazon-ec2-1.jpg" alt width="1800" height="974"></p>
<p>While I hate to play favorites, I want to choose some of my favorite EC2 launches of the past five years:</p>
<ul>
<li><strong>AWS Inferentia for ML inference at scale</strong> (2019): We introduced purpose-built ML inference instances (inf1) with AWS Inferentia chips. Amazon EC2 Inf2 instances became generally available in April 2023 for large-scale generative AI inference workloads. Together with the Inferentia family, AWS Trainium instances now give customers a full stack of AWS-designed silicon optimized for every phase of the AI lifecycle both inference and training.</li>
<li><strong>EC2 Mac instances</strong> (2020): The first Mac instances (mac1) were built on Apple Mac mini with Intel Core i7 (Coffee Lake) on the AWS Nitro System. Mac M1 (mac2) instances launched in July 2022 as the first Arm-based macOS instances on EC2. M2 Pro Mac instances followed in 2023, M4 and M4 Pro Mac instances in 2025, M3 Ultra Mac instances and M4 Max Mac instances in 2026, giving Apple developers a complete range of cloud-based build and test environments for macOS, iOS, iPadOS, tvOS, watchOS, and visionOS apps.</li>
<li>AWS Trainium for full-stack AI workloads at scale (2021)<strong>:</strong> In November 2021, we previewed Trn1 instances with AWS Trainium accelerators optimized for high-performance deep learning training. In December 2024, Trn2 instances powered by AWS Trainium2 launched, with Trn2 UltraServers linking 64 Trainium2 accelerators via NeuronLink for training trillion-parameter foundation models. At AWS re:Invent 2025, Trn3 UltraServers powered by AWS Trainium3 deliver the best token economics for next-generation agentic, reasoning, and video generation applications. A single Trn3 UltraServer interconnects up to 144 Trainium3 chips to train and serve the largest frontier models. Now, AWS Trainium3 delivers the leading price-performance for high-performance AI training and inference at scale.</li>
<li>EC2 Capacity Blocks for ML (2023): This new EC2 usage model further democratizes ML democratizes ML by making it easy to access GPU instances to train and deploy ML and generative AI models. You reserve the GPU capacity you need (initially P5 instances) for a future date and only for the duration you require.&nbsp;In November 2024, EC2 Capacity Blocks for ML added supported for provisioning in a matter of minutes and extending up to six months. Now, EC2 Capacity Blocks for ML supports P6-B300, P6-B200, P5e, P5en, P4d, P4de, Trn1, Trn2, and Trn3 instances in addition to P5.</li>
<li>AWS Graviton5 (2025): Building on eight years of Graviton innovation since 2018, we previewed Graviton5 chips in AWS re:Invent 2025 and launched M9g and M9gd instances powered by Graviton5 and built on the sixth-generation AWS Nitro System. C9g and C9gd followed in June 2026. Now, <span class="rgqa_8711ccd9 rgqa_98b54368 rgqa_14dafab9 rgqa_275611e5" data-rg-n="BodyText">Graviton5 features 192 cores, a 5x larger cache, and up to 33% lower inter-core latency, making it well suited for the growing demands of agentic AI workloads such as real-time reasoning, code generation, and multi-step task orchestration that require continuous, high-throughput CPU compute at scale.</span></li>
<li>AWS Nitro Isolation Engine (2026): Customers wanted to see, not just hear from us, proof of workload isolation in the Nitro Hypervisor. The Nitro Isolation Engine is a purpose-built component inside the Nitro Hypervisor, harnessing formal verification to provide mathematical assurance that customer workloads are isolated from each other and AWS operators, pioneering a new standard for mathematically proven cloud security. This feature is also based on the sixth-generation AWS Nitro System which has continued to evolve since our introduction in 2017.</li>
</ul>
<p><strong><u>The foundation underneath it all</u></strong><br>Despite two decades of innovation, the fundamental value proposition of Amazon EC2 has not changed. Customers use it to get secure, resizable compute capacity in minutes, pay only for what they consume, and scale on demand without long-term commitments. That same flexibility now extends to AI workloads at a scale no one anticipated in 2006.</p>
<p>EC2 remains the foundational compute layer of AWS. Amazon ECS, Amazon EKS, AWS Lambda, AWS Fargate, AWS Batch, Amazon EMR, Amazon SageMaker AI, and Amazon Bedrock ultimately run on EC2 capacity. Every architectural pattern customers have built over the past twenty years, from simple web servers to trillion-parameter foundation model training clusters, starts with a decision to launch an instance.</p>
<div class="internal-linking-related-contents"><a href="https://thenokiablog.com/skipping-the-whm-getting-started-wizard-cpanel-blog/" class="template-2"><span class="cta">Read more</span><span class="postTitle">Skipping the WHM Getting Started Wizard | cPanel Blog</span></a></div><p>We made strong foundational decisions in 2006, and we left room for the service to grow. Twenty years later, that strategy of creating services that are minimal-yet-useful, launching quickly, and iterating rapidly in response to your feedback continues to guide how we build. The next twenty years of cloud computing will demand capabilities we have not yet imagined. Amazon EC2 will continue to be the foundation where your workloads run.</p>
<p>To learn more about Amazon EC2, visit the Amazon EC2 product page or check out what&rsquo;s new with EC2.</p>
<p>&mdash; Channy</p>
<p><!-- '"` --></p>
<p>The post <a href="https://thenokiablog.com/happy-20th-birthday-amazon-ec2/">Happy 20th Birthday, Amazon EC2</a> appeared first on <a href="https://thenokiablog.com">The NOKIA Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AWS Weekly Roundup: AWS Transform at 1 year, Claude Platform on AWS, EC2 M3 Ultra Mac instances, and more (May 18, 2026)</title>
		<link>https://thenokiablog.com/aws-weekly-roundup-aws-transform-at-1-year-claude-platform-on-aws-ec2-m3-ultra-mac-instances-and-more-may-18-2026/</link>
		
		<dc:creator><![CDATA[Mister Nokia]]></dc:creator>
		<pubDate>Mon, 18 May 2026 19:13:20 +0000</pubDate>
				<category><![CDATA[Nokia Mobile Phone]]></category>
		<category><![CDATA[Amazon Bedrock]]></category>
		<category><![CDATA[Amazon EC2]]></category>
		<category><![CDATA[Amazon EC2 Mac Instances]]></category>
		<category><![CDATA[Amazon Redshift]]></category>
		<category><![CDATA[AWS Trainium]]></category>
		<category><![CDATA[AWS Transform]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Graviton]]></category>
		<category><![CDATA[Kiro]]></category>
		<category><![CDATA[Launch]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Startup]]></category>
		<guid isPermaLink="false">https://thenokiablog.com/aws-weekly-roundup-aws-transform-at-1-year-claude-platform-on-aws-ec2-m3-ultra-mac-instances-and-more-may-18-2026/</guid>

					<description><![CDATA[<p>Just a year ago, we launched AWS Transform for .NET, Mainframe and VMware workloads, the first...</p>
<p>The post <a href="https://thenokiablog.com/aws-weekly-roundup-aws-transform-at-1-year-claude-platform-on-aws-ec2-m3-ultra-mac-instances-and-more-may-18-2026/">AWS Weekly Roundup: AWS Transform at 1 year, Claude Platform on AWS, EC2 M3 Ultra Mac instances, and more (May 18, 2026)</a> appeared first on <a href="https://thenokiablog.com">The NOKIA Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<table id="amazon-polly-audio-table">
<tbody>
<tr>
<td id="amazon-polly-audio-tab">
<div id="amazon-polly-by-tab">
            <img decoding="async" src="https://thenokiablog.com/wp-content/uploads/2026/05/aws-weekly-roundup-aws-transform-at-1-year-claude-platform-on-aws-ec2-m3-ultra-mac-instances-and-more-may-18-2026.png" alt="Voiced by Polly" width="554" height="56">
           </div>
</td>
</tr>
</tbody>
</table>
<p><img loading="lazy" decoding="async" class="wp-image-103968 size-full alignright" src="https://thenokiablog.com/wp-content/uploads/2026/05/aws-weekly-roundup-aws-transform-at-1-year-claude-platform-on-aws-ec2-m3-ultra-mac-instances-and-more-may-18-2026.jpg" alt width="250" height="250">Just a year ago, we launched AWS Transform for .NET, Mainframe and VMware workloads, the first agentic AI service purpose-built for modernizing enterprise applications at scale. At re:Invent 2025, we introduced AWS Transform custom, which enables organizations to modernize and transform code at scale using AWS-managed and custom transformations. You can upgrade language versions, migrate frameworks, optimize performance, and analyze code bases using transformations that are ready to use or can be customized to meet your organization&rsquo;s specific requirements. We also introduced full-stack Windows modernization capabilities and Reimagine capabilities and automated testing functionality for mainframe.</p>
<p>In 12 months, thousands of customers migrated hundreds of thousands of servers, saved 1.6+ million hours, and processed 4.5+ billion lines of code with AWS Transform. Celebrating its 1-year anniversary, AWS Transform agents now available in Kiro, Claude, Cursor, and Codex, including the agent builder toolkit Kiro power for building customized transformation agents.</p>
<p>To learn what happened in 12 months, the four things we learned, and how that evolved our roadmap, visit the one-year anniversary blog post.</p>
<p><strong>Last week&rsquo;s launches</strong><br>
        <br>Here are last week&rsquo;s launches that caught my attention:</p>
<ul>
<li>The general availability of Claude Platform on AWS &ndash; You can get direct access to Anthropic&rsquo;s native Claude Platform experience, including APIs, console, and early-access beta features, directly through your existing AWS account, without managing separate accounts, billing, or tracking. Claude Platform on AWS is operated by Anthropic, and customer data is processed outside the AWS security boundary. To learn more, visit the deep dive blog post.</li>
<li>Amazon EC2 M3 Ultra Mac instances &ndash; These instances are built on Apple M3 Ultra Mac Studio computers featuring a 28-core CPU, 60-core GPU, 32-core Neural Engine, and 256GB of unified memory. Compared to EC2 M4 Max Mac instances, M3 Ultra Mac instances provide 2x the unified memory, 1.75x the CPU cores, 1.5x the GPU cores, and 2x the Neural Engine cores, giving Apple developers the headroom to run significantly more Xcode simulators in parallel and accelerate on-device ML workflows to improve product time to market.</li>
<li>Amazon Redshift RG instances powered by AWS Graviton &ndash; These instances deliver better performance, running data warehouse and data lake workloads up to 2.4x as fast as previous generation RA3 instances, at 30% lower price per vCPU. RG instances include Redshift&rsquo;s custom-built vectorized data lake query engine that processes Apache Iceberg and Parquet data on your cluster nodes.</li>
<li>Amazon Bedrock Advanced Prompt Optimization &ndash; You can optimize your prompts for any model on Bedrock, while comparing your original prompts to your optimized prompts across up to 5 models simultaneously. You can also use this if you are migrating to a new model or just want to get better performance on your current model.</li>
<li>AWS Security Agent full repository code scanning (preview) &ndash; You can use a new capability in AWS Security Agent that performs deep, context-aware security analysis of your entire codebase. When vulnerabilities are found, the scanner generates code remediation&mdash;specific fixes tied to the exact file and line&mdash;enabling teams to remediate security vulnerabilities faster than ever before. This capability is available at no additional charge for existing AWS Security Agent customers during the preview.</li>
<li>AWS Interconnect &ndash; multicloud connectivity with Oracle Cloud Infrastructure (preview) &ndash; You can quickly provision resilient, scalable private connections to other cloud providers using AWS Interconnect &ndash; multicloud connectivity. OCI is the latest CSP to adopt the open specification that powers AWS Interconnect. This allows AWS to provide a consistent, simple experience to our customers on OCI (preview), Google Cloud (generally available), and Microsoft Azure (coming later in 2026).</li>
</ul>
<div class="internal-linking-related-contents"><a href="https://thenokiablog.com/html-element-select-envato-tuts/" class="template-2"><span class="cta">Read more</span><span class="postTitle">HTML Element: select | Envato Tuts+</span></a></div><p><strong>Additional updates</strong><br>
        <br>Here are some additional news items that you might find interesting:</p>
<ul>
<li>Accelerate AI research and education with Build on Trainium program &ndash; Read how the next generation of AI researchers is using Amazon chips to accelerate discovery. AWS invested $110 million to give university researchers access to purpose-built AI chips. AWS Trainium is speeding up AI research at UC Berkeley, MIT, Carnegie Mellon, and more. All research is open source, meaning improvements flow back to the broader developer community.</li>
<li>A full list of AWS Community Days 2026 &ndash; There&rsquo;s something different about an event where the speakers are your peers, the organizers are volunteers who do this out of passion, and the agenda was shaped by the community itself. That&rsquo;s exactly what AWS Community Days are, and they&rsquo;re happening in cities across every continent, every year.</li>
<li>The Kiro Startups Credit program is back &ndash; Thousands of founders applied in the first round, and now applications are open again. Apply to receive up to one year of Kiro Pro+ credits automatically applied to your organization&rsquo;s AWS account.</li>
</ul>
<p>For a full list of AWS blog posts, be sure to keep an eye on the AWS Blogs page.</p>
<p>Learn more about AWS, browse and join upcoming AWS-led in-person and virtual events, startup events, and developer-focused events including AWS Summits. Join the AWS Builder Center to connect with builders, share solutions, and access content that supports your development.</p>
<p>That&rsquo;s all for this week. Check back next Monday for another Weekly Roundup!</p>
<div class="internal-linking-related-contents"><a href="https://thenokiablog.com/skipping-the-whm-getting-started-wizard-cpanel-blog/" class="template-2"><span class="cta">Read more</span><span class="postTitle">Skipping the WHM Getting Started Wizard | cPanel Blog</span></a></div><p>&mdash; Channy</p>
<p>       <!-- '"` --></p>
<p>The post <a href="https://thenokiablog.com/aws-weekly-roundup-aws-transform-at-1-year-claude-platform-on-aws-ec2-m3-ultra-mac-instances-and-more-may-18-2026/">AWS Weekly Roundup: AWS Transform at 1 year, Claude Platform on AWS, EC2 M3 Ultra Mac instances, and more (May 18, 2026)</a> appeared first on <a href="https://thenokiablog.com">The NOKIA Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AWS Weekly Roundup: AWS Lambda for Rust, NLB for QUIC protocol, Amazon DCV for Mac, and more (November 17, 2025)</title>
		<link>https://thenokiablog.com/aws-weekly-roundup-aws-lambda-for-rust-nlb-for-quic-protocol-amazon-dcv-for-mac-and-more-november-17-2025/</link>
		
		<dc:creator><![CDATA[Mister Nokia]]></dc:creator>
		<pubDate>Mon, 17 Nov 2025 17:59:08 +0000</pubDate>
				<category><![CDATA[Nokia Mobile Phone]]></category>
		<category><![CDATA[Amazon CloudFront]]></category>
		<category><![CDATA[Amazon EC2]]></category>
		<category><![CDATA[Amazon EC2 Mac Instances]]></category>
		<category><![CDATA[Amazon Elastic Kubernetes Service]]></category>
		<category><![CDATA[Amazon EventBridge]]></category>
		<category><![CDATA[Amazon Nova]]></category>
		<category><![CDATA[Announcements]]></category>
		<category><![CDATA[AWS Heroes]]></category>
		<category><![CDATA[AWS Lambda]]></category>
		<category><![CDATA[AWS re:Invent]]></category>
		<category><![CDATA[Containers]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Launch]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Resilience]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Serverless]]></category>
		<category><![CDATA[Week in Review]]></category>
		<guid isPermaLink="false">https://thenokiablog.com/aws-weekly-roundup-aws-lambda-for-rust-nlb-for-quic-protocol-amazon-dcv-for-mac-and-more-november-17-2025/</guid>

					<description><![CDATA[<p>The weeks before AWS re:Invent, my team is full steam ahead preparing content for the conference....</p>
<p>The post <a href="https://thenokiablog.com/aws-weekly-roundup-aws-lambda-for-rust-nlb-for-quic-protocol-amazon-dcv-for-mac-and-more-november-17-2025/">AWS Weekly Roundup: AWS Lambda for Rust, NLB for QUIC protocol, Amazon DCV for Mac, and more (November 17, 2025)</a> appeared first on <a href="https://thenokiablog.com">The NOKIA Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<table id="amazon-polly-audio-table">
<tbody>
<tr>
<td id="amazon-polly-audio-tab">
<div id="amazon-polly-by-tab">
            <img loading="lazy" decoding="async" src="https://thenokiablog.com/wp-content/uploads/2025/11/aws-weekly-roundup-aws-lambda-for-rust-nlb-for-quic-protocol-amazon-dcv-for-mac-and-more-november-17-2025.png" alt="Voiced by Polly" width="554" height="56">
           </div>
</td>
</tr>
</tbody>
</table>
<p>The weeks before AWS re:Invent, my team is full steam ahead preparing content for the conference. I can&rsquo;t wait to meet you at one of my three talks: CMP346 : Supercharge AI/ML on Apple Silicon with EC2 Mac, CMP344: Speed up Apple application builds with CI/CD on EC2 Mac, and DEV416: Develop your AI Agents and MCP Tools in Swift.</p>
<p>Last week, AWS announced three new AWS Heroes. The AWS Heroes program recognizes a vibrant, worldwide group of AWS experts whose enthusiasm for knowledge-sharing has a real impact within the community. Welcome to the community, Dimple, Rola, and Vivek.</p>
<p>We also opened the GenAI Loft in Tel Aviv, Israel. AWS Gen AI Lofts are collaborative spaces and immersive experiences for startups and developers. The Loft content is tailored to address local customer needs &ndash; from startups and enterprises to public sector organizations, bringing together developers, investors, and industry experts under one roof.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-101091" src="https://thenokiablog.com/wp-content/uploads/2025/11/aws-weekly-roundup-aws-lambda-for-rust-nlb-for-quic-protocol-amazon-dcv-for-mac-and-more-november-17-2025.jpg" alt="GenAI Loft - TLV" width="1024" height="683"></p>
<div class="internal-linking-related-contents"><a href="https://thenokiablog.com/html-element-select-envato-tuts/" class="template-2"><span class="cta">Read more</span><span class="postTitle">HTML Element: select | Envato Tuts+</span></a></div><p>The loft is open in Tel Aviv until Wednesday, November 19. If you&rsquo;re in the area, check the list of sessions, workshops, and hackathons today.</p>
<p>If you are a serverless developer, last week was really rich with news. Let&rsquo;s start with these.</p>
<p><strong><u>Last week&rsquo;s launches<br>
          <br></u></strong>Here are the launches that got my attention this week:</p>
<ul>
<li>AWS Lambda officially supports Rust , AWS Lambda supports Java 25, and AWS Lambda adds an experimental runtime interface client for Swift &ndash; What a busy time for the Lambda service team! The support for the Rust programming language is now generally available. Although the runtime interface client existed for years, it has just been graduated to version 1.0.0. My colleagues Julian and Darko wrote a blog post to showcase the benefits of using Rust for your Lambda functions. Java 25 also has changes that make Lambda functions written in Java more efficient. My colleague Lefteris wrote a blog post to describe these benefits.</li>
<li>AWS Lambda announces Provisioned Mode for SQS event source mapping &ndash; This provides you with the benefits to optimize throughput and handle traffic spikes by provisioning event polling resources.</li>
<li>Amazon EventBridge introduces enhanced visual rule builder &ndash; The Amazon EventBridge enhanced visual rule builder simplifies event-driven application development with an intuitive interface, comprehensive event catalog, and integration with the EventBridge Schema Registry.</li>
<li>AWS Service Reference Information now supports SDK Operation to Action mapping &ndash; Besides the serverless news, this is the biggest announcement of the week in my opinion. The service reference information now includes which operations are supported by AWS services and which IAM permissions are needed to call a given operation. This will help you answer questions such as &ldquo;I want to call a specific AWS service operation, which IAM permissions do I need?&rdquo; You can automate the retrieval of service reference information through a simple JSON based API.</li>
<li>AWS Network Load Balancer (NLB) now supports QUIC protocol in passthrough mode &ndash; This provides ultra-low latency traffic forwarding with session stickiness using QUIC Connection IDs. This capability reduces application latency by 25-30% for mobile-first applications through minimized handshakes and connection resilience. NLB operates in passthrough mode, forwarding QUIC traffic directly to targets while maintaining customer control over TLS certificates and end-to-end encryption. The blog post has the details.</li>
<li>Application Load Balancer (ALB) support client credential flow with JWT verification &ndash; This one is important for API developers too. This simplifies the deployment of secure machine-to-machine (M2M) and service-to-service (S2S) communications. This provides ALB with the ability to verify JWTs, reducing architectural complexity and simplifying security implementation.</li>
<li>AWS KMS now supports Edwards-curve Digital Signature Algorithm (EdDSA) &ndash; This capability provides 128-bit security equivalent to NIST P-256 with faster signing performance and compact sizes (64-byte signatures, 32-byte public keys). Ed25519 is ideal for IoT devices and blockchain applications requiring small key and signature sizes.</li>
<li>Amazon DCV now supports Amazon EC2 Mac instances &ndash; This provides high-performance remote desktop access with 4K resolution and 60 FPS performance. You can connect from Windows, Linux, macOS, or web clients with features including time zone redirection and audio output.</li>
<li>Amazon Linux 2023 version 2025110 is released &ndash; It now includes packages for Mountpoint for Amazon S3, the Swift 6.2.1 toolchain, and Node.js 24. Installing Swift on Amazon Linux 2023 virtual machines or containers is now as easy as <code>sudo dnf install -y swiftlang</code>.</li>
</ul>
<p><strong><u>Additional updates</u></strong><br>
        <br>Here are some additional projects, blog posts, and news items that I found interesting:</p>
<ul>
<li>Amazon Elastic Kubernetes Service gets independent affirmation of its zero operator access design &ndash; Amazon EKS offers a zero operator access posture. AWS personnel cannot access your content. This is achieved through a combination of AWS Nitro System-based instances, restricted administrative APIs, and end-to-end encryption. An independent review by NCC Group confirmed the effectiveness of these security measures.</li>
<li>Make your web apps hands-free with Amazon Nova Sonic &ndash; Amazon Nova Sonic, a foundation model from AAmazon Bedrock, provides you with the ability to create natural, low-latency, bidirectional speech conversations for applications. This provides users with the ability to collaborate with applications through voice and embedded intelligence, unlocking new interaction patterns and enhancing usability. This blog post demonstrates a reference app, Smart Todo App. It shows how voice can be integrated to provide a hands-free experience for task management.</li>
<li>AWS X-Ray SDKs &amp; Daemon migration to OpenTelemetry &ndash; AWS X-Ray is transitioning to OpenTelemetry as its primary instrumentation standard for application tracing. OpenTelemetry-based instrumentation solutions are recommended for producing traces from applications and sending them to AWS X-Ray. X-Ray&rsquo;s existing console experience and functionality continue to be fully supported and remains unchanged by this transition.</li>
<li>Powering the world&rsquo;s largest events: How Amazon CloudFront delivers at scale &ndash; Amazon CloudFront achieved a record-breaking peak of 268 terabits per second on November 1, 2025, during major game delivery workloads&mdash;enough bandwidth to simultaneously stream live sports in HD to approximately 45 million concurrent viewers. This milestone demonstrates the CloudFront massive scale, powered by 750+ edge locations across 440+ cities globally and 1,140+ embedded PoPs within 100+ ISPs, with the latest generation delivering 3x the performance of previous versions.</li>
</ul>
<div class="internal-linking-related-contents"><a href="https://thenokiablog.com/skipping-the-whm-getting-started-wizard-cpanel-blog/" class="template-2"><span class="cta">Read more</span><span class="postTitle">Skipping the WHM Getting Started Wizard | cPanel Blog</span></a></div><p><strong><u>Upcoming AWS events</u></strong><br>
        <br>Check your calendars so that you can sign up for these upcoming events:</p>
<ul>
<li>AWS Builder Loft &ndash; A community tech space in San Francisco where you can learn from expert sessions, join hands-on workshops, explore AI and emerging technologies, and collaborate with other builders to accelerate your ideas. Browse the upcoming sessions and join the events that interest you.</li>
<li>AWS Community Days &ndash; Join community-led conferences that feature technical discussions, workshops, and hands-on labs led by experienced AWS users and industry leaders from around the world. I will deliver the opening keynote at the last Community Day of the year in Kinshasa, Democratic Republic of Congo (November 22). The next Community Day will be in Timi&#351;oara, Rom&acirc;nia (April 2026). The call for papers is now open.</li>
<li>AWS Skills Center Seattle 4th Anniversary Celebration &ndash; A free, public event on November 20 with a keynote, learned panels, recruiter insights, raffles, and virtual participation options.</li>
</ul>
<p>Join the AWS Builder Center to learn, build, and connect with builders in the AWS community. Browse here for upcoming in-person events, developer-focused events, and events for startups.</p>
<p>That&rsquo;s all for this week. Check back next Monday for another Weekly Roundup!</p>
<p>       &mdash; seb</p>
<div class="internal-linking-related-contents"><a href="https://thenokiablog.com/gone-phishing-cpanel-blog/" class="template-2"><span class="cta">Read more</span><span class="postTitle">Gone Phishing | cPanel Blog</span></a></div><p>This post is part of our&nbsp;Weekly Roundup&nbsp;series. Check back each week for a quick roundup of interesting news and announcements from AWS!</p>
<p>       <!-- '"` --></p>
<p>The post <a href="https://thenokiablog.com/aws-weekly-roundup-aws-lambda-for-rust-nlb-for-quic-protocol-amazon-dcv-for-mac-and-more-november-17-2025/">AWS Weekly Roundup: AWS Lambda for Rust, NLB for QUIC protocol, Amazon DCV for Mac, and more (November 17, 2025)</a> appeared first on <a href="https://thenokiablog.com">The NOKIA Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AWS Weekly Roundup: Strands Agents 1M+ downloads, Cloud Club Captain, AI Agent Hackathon, and more (September 15, 2025)</title>
		<link>https://thenokiablog.com/aws-weekly-roundup-strands-agents-1m-downloads-cloud-club-captain-ai-agent-hackathon-and-more-september-15-2025/</link>
		
		<dc:creator><![CDATA[Mister Nokia]]></dc:creator>
		<pubDate>Mon, 15 Sep 2025 16:45:14 +0000</pubDate>
				<category><![CDATA[Nokia Mobile Phone]]></category>
		<category><![CDATA[Amazon Bedrock]]></category>
		<category><![CDATA[Amazon CloudFront]]></category>
		<category><![CDATA[Amazon EC2]]></category>
		<category><![CDATA[Amazon EC2 Mac Instances]]></category>
		<category><![CDATA[Announcements]]></category>
		<category><![CDATA[AWS Cloud Development Kit]]></category>
		<category><![CDATA[AWS CloudFormation]]></category>
		<category><![CDATA[AWS CloudTrail]]></category>
		<category><![CDATA[AWS Lambda]]></category>
		<category><![CDATA[AWS re:Invent]]></category>
		<category><![CDATA[AWS Trainium]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Generative AI]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Serverless]]></category>
		<category><![CDATA[Startup]]></category>
		<category><![CDATA[Week in Review]]></category>
		<guid isPermaLink="false">https://thenokiablog.com/aws-weekly-roundup-strands-agents-1m-downloads-cloud-club-captain-ai-agent-hackathon-and-more-september-15-2025/</guid>

					<description><![CDATA[<p>Last week, Strands Agents, AWS open source for agentic AI SDK just hit 1 million downloads...</p>
<p>The post <a href="https://thenokiablog.com/aws-weekly-roundup-strands-agents-1m-downloads-cloud-club-captain-ai-agent-hackathon-and-more-september-15-2025/">AWS Weekly Roundup: Strands Agents 1M+ downloads, Cloud Club Captain, AI Agent Hackathon, and more (September 15, 2025)</a> appeared first on <a href="https://thenokiablog.com">The NOKIA Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<table id="amazon-polly-audio-table">
<tbody>
<tr>
<td id="amazon-polly-audio-tab">
<div id="amazon-polly-by-tab">
            <img loading="lazy" decoding="async" src="https://thenokiablog.com/wp-content/uploads/2025/09/aws-weekly-roundup-strands-agents-1m-downloads-cloud-club-captain-ai-agent-hackathon-and-more-september-15-2025.png" alt="Voiced by Polly" width="554" height="56">
           </div>
</td>
</tr>
</tbody>
</table>
<p><img loading="lazy" decoding="async" class="size-full wp-image-99283 alignright" src="https://thenokiablog.com/wp-content/uploads/2025/09/aws-weekly-roundup-strands-agents-1m-downloads-cloud-club-captain-ai-agent-hackathon-and-more-september-15-2025.jpg" alt width="200" height="200">Last week, Strands Agents, AWS open source for agentic AI SDK just hit 1 million downloads and earned 3,000+ GitHub Stars less than 4 months since launching as a preview in May 2025. With Strands Agents, you can build production-ready, multi-agent AI systems in a few lines of code.</p>
<p>We&rsquo;ve continuously improved features including support for multi-agent patterns, A2A protocol, and Amazon Bedrock AgentCore. You can use a collection of sample implementations to help you get started with building intelligent agents using Strands Agents. We always welcome your contribution and feedback to our project including bug reports, new features, corrections, or additional documentation.</p>
<p>Here is the latest research article of Amazon Science about the future of agentic AI and questions that scientists are asking about agent-to-agent communications, contextual understanding, common sense reasoning, and more. You can understand the technical topic of agentic AI with with relatable examples, including one about our personal behaviors about leaving doors open or closed, locked or unlocked.</p>
<p><strong>Last week&rsquo;s launches</strong><br>Here are some launches that got my attention:</p>
<ul>
<li>Amazon EC2 M4 and M4 Pro Mac instances &ndash; New M4 Mac instances offer up to 20% better application build performance compared to M2 Mac instances, while M4 Pro Mac instances deliver up to 15% better application build performance compared to M2 Pro Mac instances. These instances are ideal for building and testing applications for Apple platforms such as iOS, macOS, iPadOS, tvOS, watchOS, visionOS, and Safari.</li>
<li> LocalStack integration in Visual Studio Code (VS Code) &ndash; You can use LocalStack to locally emulate and test your serverless applications using the familiar VS Code interface without switching between tools or managing complex setup, thus simplifying your local serverless development process.</li>
<li>AWS Cloud Development Kit (AWS CDK) Refactor (Preview) &ndash;You can rename constructs, move resources between stacks, and reorganize CDK applications while preserving the state of deployed resources. By using AWS CloudFormation&rsquo;s refactor capabilities with automated mapping computation, CDK Refactor eliminates the risk of unintended resource replacement during code restructuring.</li>
<li>AWS CloudTrail MCP Server &ndash; New AWS CloudTrail MCP server allows AI assistants to analyze API calls, track user activities, and perform advanced security analysis across your AWS environment through natural language interactions. You can explore more AWS MCP servers for working with AWS service resources.</li>
<li>Amazon CloudFront support for IPv6 origins &ndash; Your applications can send IPv6 traffic all the way to their origins, allowing them to meet their architectural and regulatory requirements for IPv6 adoption. End-to-end IPv6 support improves network performance for end users connecting over IPv6 networks, and also removes concerns for IPv4 address exhaustion for origin infrastructure.</li>
</ul>
<div class="internal-linking-related-contents"><a href="https://thenokiablog.com/html-element-select-envato-tuts/" class="template-2"><span class="cta">Read more</span><span class="postTitle">HTML Element: select | Envato Tuts+</span></a></div><p>For a full list of AWS announcements, be sure to keep an eye on the What&rsquo;s New with AWS? page.</p>
<p><strong>Other AWS news</strong><br>Here are some additional news items that you might find interesting:</p>
<ul>
<li>A city in the palm of your hand &ndash; Check out this interactive feature that explains how our AWS Trainium chip designers think like city planners, optimizing every nanometer to move data at near light speed.</li>
<li>Measuring the effectiveness of software development tools and practices &ndash; Read how Amazon developers that identified specific challenges before adopting AI tools cut costs by 15.9% year-over-year using our cost-to-serve-software framework (CTS-SW). They deployed more frequently and reduced manual interventions by 30.4% by focusing on the right problems first.</li>
<li>Become an AWS Cloud Club Captain &ndash; Join a growing network of student cloud enthusiasts by becoming an AWS Cloud Club Captain! As a Captain, you&rsquo;ll get to organize events and building cloud communities while developing leadership skills. Application window is open September 1-28, 2025.</li>
</ul>
<p><strong>Upcoming AWS events</strong><br>Check your calendars and sign up for these upcoming AWS events as well as AWS re:Invent and AWS Summits:</p>
<ul>
<li>AWS AI Agent Global Hackathon &ndash; This is your chance to dive deep into our powerful generative AI stack and create something truly awesome. From September 8 to October 20, you have the opportunity to create AI agents using AWS suite of AI services, competing for over $45,000 in prizes and exclusive go-to-market opportunities.</li>
<li>AWS Gen AI Lofts &ndash; You can learn AWS AI products and services with exclusive sessions and meet industry-leading experts, and have valuable networking opportunities with investors and peers. Register in your nearest city: Mexico City (September 30&ndash;October 2), Paris (October 7&ndash;21), London (Oct 13&ndash;21), and Tel Aviv (November 11&ndash;19).</li>
<li>AWS Community Days &ndash; Join community-led conferences that feature technical discussions, workshops, and hands-on labs led by expert AWS users and industry leaders from around the world: Aotearoa and Poland (September 18), South Africa&nbsp;(September 20),&nbsp;Bolivia&nbsp;(September 20),&nbsp;Portugal (September 27), Germany (October 7), and Hungary (October 16).</li>
</ul>
<p>You can browse all upcoming AWS events and AWS startup events.</p>
<div class="internal-linking-related-contents"><a href="https://thenokiablog.com/skipping-the-whm-getting-started-wizard-cpanel-blog/" class="template-2"><span class="cta">Read more</span><span class="postTitle">Skipping the WHM Getting Started Wizard | cPanel Blog</span></a></div><p>That&rsquo;s all for this week. Check back next Monday for another Weekly Roundup!</p>
<p>&mdash; Channy</p>
<p>       <!-- '"` --></p>
<p>The post <a href="https://thenokiablog.com/aws-weekly-roundup-strands-agents-1m-downloads-cloud-club-captain-ai-agent-hackathon-and-more-september-15-2025/">AWS Weekly Roundup: Strands Agents 1M+ downloads, Cloud Club Captain, AI Agent Hackathon, and more (September 15, 2025)</a> appeared first on <a href="https://thenokiablog.com">The NOKIA Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Announcing Amazon EC2 M4 and M4 Pro Mac instances</title>
		<link>https://thenokiablog.com/announcing-amazon-ec2-m4-and-m4-pro-mac-instances/</link>
		
		<dc:creator><![CDATA[Mister Nokia]]></dc:creator>
		<pubDate>Fri, 12 Sep 2025 16:30:25 +0000</pubDate>
				<category><![CDATA[Nokia Mobile Phone]]></category>
		<category><![CDATA[Amazon EC2]]></category>
		<category><![CDATA[Amazon EC2 Mac Instances]]></category>
		<category><![CDATA[Amazon VPC]]></category>
		<category><![CDATA[AWS CLI]]></category>
		<category><![CDATA[AWS Management Console]]></category>
		<category><![CDATA[AWS re:Invent]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Launch]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Regions]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Storage]]></category>
		<guid isPermaLink="false">https://thenokiablog.com/announcing-amazon-ec2-m4-and-m4-pro-mac-instances/</guid>

					<description><![CDATA[<p>As someone who has been using macOS since 2001 and Amazon EC2 Mac instances since their...</p>
<p>The post <a href="https://thenokiablog.com/announcing-amazon-ec2-m4-and-m4-pro-mac-instances/">Announcing Amazon EC2 M4 and M4 Pro Mac instances</a> appeared first on <a href="https://thenokiablog.com">The NOKIA Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<table id="amazon-polly-audio-table">
<tbody>
<tr>
<td id="amazon-polly-audio-tab">
<div id="amazon-polly-by-tab">
            <img loading="lazy" decoding="async" src="https://thenokiablog.com/wp-content/uploads/2025/09/announcing-amazon-ec2-m4-and-m4-pro-mac-instances.png" alt="Voiced by Polly" width="554" height="56">
           </div>
</td>
</tr>
</tbody>
</table>
<p>As someone who has been using macOS since 2001 and Amazon EC2 Mac instances since their launch 4 years ago, I&rsquo;ve helped numerous customers scale their continuous integration and delivery (CI/CD) pipelines on AWS. Today, I&rsquo;m excited to share that Amazon EC2 M4 and M4 Pro Mac instances are now generally available.</p>
<p>Development teams building applications for Apple platforms need powerful computing resources to handle complex build processes and run multiple iOS simulators simultaneously. As development projects grow larger and more sophisticated, teams require increased performance and memory capacity to maintain rapid development cycles.</p>
<p><span><strong>Apple M4 Mac mini at the core<br></strong></span>EC2 M4 Mac instances (known as <code>mac-m4.metal</code> in the API) are built on Apple M4 Mac mini computers and are built on the AWS Nitro System. They feature Apple silicon M4 chips with 10-core CPU (four performance and six efficiency cores), 10-core GPU, 16-core Neural Engine, and 24 GB unified memory, delivering enhanced performance for iOS and macOS application build workloads. When building and testing applications, M4 Mac instances deliver up to 20 percent better application build performance compared to EC2 M2 Mac instances.</p>
<p>EC2 M4 Pro Mac (<code>mac-m4pro.metal</code> in the API) instances are powered by Apple silicon M4 Pro chips with 14-core CPU, 20-core GPU, 16-core Neural Engine, and 48 GB unified memory. These instances offer up to 15 percent better application build performance compared to EC2 M2 Pro Mac instances. The increased memory and computing power make it possible to run more tests in parallel using multiple device simulators.</p>
<div class="internal-linking-related-contents"><a href="https://thenokiablog.com/html-element-select-envato-tuts/" class="template-2"><span class="cta">Read more</span><span class="postTitle">HTML Element: select | Envato Tuts+</span></a></div><p>Each M4 and M4 Pro Mac instance now comes with 2 TB of local storage, providing low-latency storage for improved caching and build and test performance.</p>
<p>Both instance types support macOS Sonoma version 15.6 and later as Amazon Machine Images (AMIs). The AWS Nitro System provides up to 10 Gbps of Amazon Virtual Private Cloud (Amazon VPC) network bandwidth and 8 Gbps of Amazon Elastic Block Store (Amazon EBS) storage bandwidth through high-speed Thunderbolt connections.</p>
<p>Amazon EC2 Mac instances integrate seamlessly with AWS services, which means you can:</p>
<p><span><strong>Let me show you how to get started<br></strong></span>You can launch an EC2 M4 or M4 Pro Mac instances through the AWS Management Console, AWS Command Line Interface (AWS CLI), or AWS SDKs.</p>
<div class="internal-linking-related-contents"><a href="https://thenokiablog.com/skipping-the-whm-getting-started-wizard-cpanel-blog/" class="template-2"><span class="cta">Read more</span><span class="postTitle">Skipping the WHM Getting Started Wizard | cPanel Blog</span></a></div><p>For this demo, let&rsquo;s start an M4 Pro instance from the console. I first allocate a dedicated host to run my instances. On the AWS Management Console, I navigate to EC2, then <strong>Dedicated Hosts</strong>, and I select <strong>Allocate Dedicated Host</strong>.</p>
<p>Then, I enter a <strong>Name tag</strong> and I select the <strong>Instance family</strong> (<code>mac-m4pro</code>) and an <strong>Instance type</strong> (<code>mac-m4pro.metal</code>). I choose one <strong>Availability Zone</strong> and I clear <strong>Host maintenance</strong>.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-98959" src="https://thenokiablog.com/wp-content/uploads/2025/09/announcing-amazon-ec2-m4-and-m4-pro-mac-instances-1.png" alt="EC2 Mac M$ - Dedicated hosts" width="1024" height="766"></p>
<p>Alternatively, I can use the command line interface:</p>
<pre><code class="lang-sh">aws ec2 allocate-hosts                          
        --availability-zone-id "usw2-az4"       
        --auto-placement "off"                  
        --host-recovery "off"                   
        --host-maintenance "off"                
        --quantity 1                            
        --instance-type "mac-m4pro.metal"</code></pre>
<div class="internal-linking-related-contents"><a href="https://thenokiablog.com/gone-phishing-cpanel-blog/" class="template-2"><span class="cta">Read more</span><span class="postTitle">Gone Phishing | cPanel Blog</span></a></div><p>After the dedicated host is allocated to my account, I select the host I just allocated, then I select the <strong>Actions</strong> menu and choose <strong>Launch instance(s) onto host</strong>.</p>
<p>Notice the console gives you, among other information, the <strong>Latest supported macOS versions</strong> for this type of host. In this case, it&rsquo;s macOS 15.6.</p>
<p><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-98960" src="https://thenokiablog.com/wp-content/uploads/2025/09/announcing-amazon-ec2-m4-and-m4-pro-mac-instances-2.png" alt="EC2 Mac M4 - Dedicated hosts Launch" width="800" height="505">&nbsp;</p>
<p>On the Launch an instance page, I enter a <strong>Name</strong>. I select a macOS Sequoia <strong>Amazon Machine Image (AMI)</strong>. I make sure the <strong>Architecture</strong> is 64-bit Arm and the <strong>Instance type</strong> is <code>mac-m4pro.metal</code>.</p>
<p>The rest of the parameters arn&rsquo;t specific to Amazon EC2 Mac: the network and storage configuration. When starting an instance for development use, make sure you select a volume with minimum 200 Gb or more. The default 100 Gb volume size isn&rsquo;t sufficient to download and install Xcode.</p>
<p><img decoding="async" loading="lazy" class="aligncenter size-large wp-image-98961" src="https://thenokiablog.com/wp-content/uploads/2025/09/announcing-amazon-ec2-m4-and-m4-pro-mac-instances-3.png" alt="EC2 Mac M4 - Dedicated hosts Launch Details" width="743" height="1024">When ready, I select the <strong>Launch instance</strong> orange button on the bottom of the page. The instance will rapidly appear as <strong><span>Running</span></strong> in the console. However, it might take up to 15 minutes to allow you to connect over SSH.</p>
<p>Alternatively, I can use this command:</p>
<pre><code class="lang-sh">aws ec2 run-instances 
    --image-id "ami-000420887c24e4ac8"   # AMI ID depends on the region !
    --instance-type "mac-m4pro.metal"   
    --key-name "my-ssh-key-name"        
    --network-interfaces '{"AssociatePublicIpAddress":true,"DeviceIndex":0,"Groups":["sg-0c2f1a3e01b84f3a3"]}'  # Security Group ID depends on your config
    --tag-specifications '{"ResourceType":"instance","Tags":[{"Key":"Name","Value":"My Dev Server"}]}' 
    --placement '{"HostId":"h-0e984064522b4b60b","Tenancy":"host"}'  # Host ID depends on your config 
    --private-dns-name-options '{"HostnameType":"ip-name","EnableResourceNameDnsARecord":true,"EnableResourceNameDnsAAAARecord":false}' 
    --count "1" </code></pre>
<p><span><strong>Install Xcode from the Terminal<br></strong></span>After the instance is reachable, I can connect using SSH to it and install my development tools. I use xcodeinstall to download and install Xcode 16.4.</p>
<p>From my laptop, I open a session with my Apple developer credentials:</p>
<pre><code class="lang-sh"># on my laptop, with permissions to access AWS Secret Manager
&raquo; xcodeinstall authenticate -s eu-central-1                                                                                               

Retrieving Apple Developer Portal credentials...
Authenticating...
&#128272; Two factors authentication is enabled, enter your 2FA code: 067785
&#9989; Authenticated with MFA.</code></pre>
<p>I connect to the EC2 Mac instance I just launched. Then, I download and install Xcode:</p>
<pre><code class="lang-sh">&raquo; ssh ec2-user@44.234.115.119                                                                                                                                                                   

Warning: Permanently added '44.234.115.119' (ED25519) to the list of known hosts.
Last login: Sat Aug 23 13:49:55 2025 from 81.49.207.77

    &#9484;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9488;   __|  __|_  )
    &#9474; &#9591;&#9581;&#9583;&#9591; &#9474;   _|  (     /
    &#9474;  &#9492;&#9582;  &#9474;  ___|___|___|
    &#9474; &#9584;&#9472;&#9532;&#9583; &#9474;  Amazon EC2
    &#9492;&#9472;&#9472;&#9472;&#9524;&#9472;&#9472;&#9496;  macOS Sequoia 15.6

ec2-user@ip-172-31-54-74 ~ % brew tap sebsto/macos
==&gt; Tapping sebsto/macos
Cloning into '/opt/homebrew/Library/Taps/sebsto/homebrew-macos'...
remote: Enumerating objects: 227, done.
remote: Counting objects: 100% (71/71), done.
remote: Compressing objects: 100% (57/57), done.
remote: Total 227 (delta 22), reused 63 (delta 14), pack-reused 156 (from 1)
Receiving objects: 100% (227/227), 37.93 KiB | 7.59 MiB/s, done.
Resolving deltas: 100% (72/72), done.
Tapped 1 formula (13 files, 61KB).

ec2-user@ip-172-31-54-74 ~ % brew install xcodeinstall 
==&gt; Fetching downloads for: xcodeinstall
==&gt; Fetching sebsto/macos/xcodeinstall
==&gt; Downloading https://github.com/sebsto/xcodeinstall/releases/download/v0.12.0/xcodeinstall-0.12.0.arm64_sequoia.bottle.tar.gz
Already downloaded: /Users/ec2-user/Library/Caches/Homebrew/downloads/9f68a7a50ccfdc479c33074716fd654b8528be0ec2430c87bc2b2fa0c36abb2d--xcodeinstall-0.12.0.arm64_sequoia.bottle.tar.gz
==&gt; Installing xcodeinstall from sebsto/macos
==&gt; Pouring xcodeinstall-0.12.0.arm64_sequoia.bottle.tar.gz
&#127866;  /opt/homebrew/Cellar/xcodeinstall/0.12.0: 8 files, 55.2MB
==&gt; Running `brew cleanup xcodeinstall`...
Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`.
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).
==&gt; No outdated dependents to upgrade!

ec2-user@ip-172-31-54-74 ~ % xcodeinstall download -s eu-central-1 -f -n "Xcode 16.4.xip"
                        Downloading Xcode 16.4
100% [============================================================] 2895 MB / 180.59 MBs
[ OK ]
&#9989; Xcode 16.4.xip downloaded

ec2-user@ip-172-31-54-74 ~ % xcodeinstall install -n "Xcode 16.4.xip"
Installing...
[1/6] Expanding Xcode xip (this might take a while)
[2/6] Moving Xcode to /Applications
[3/6] Installing additional packages... XcodeSystemResources.pkg
[4/6] Installing additional packages... CoreTypes.pkg
[5/6] Installing additional packages... MobileDevice.pkg
[6/6] Installing additional packages... MobileDeviceDevelopment.pkg
[ OK ]
&#9989; file:///Users/ec2-user/.xcodeinstall/download/Xcode%2016.4.xip installed

ec2-user@ip-172-31-54-74 ~ % sudo xcodebuild -license accept

ec2-user@ip-172-31-54-74 ~ % 
</code></pre>
<p><img decoding="async" loading="lazy" class="aligncenter size-large wp-image-98993" src="https://thenokiablog.com/wp-content/uploads/2025/09/announcing-amazon-ec2-m4-and-m4-pro-mac-instances-4.png" alt="EC2 Mac M4 - install xcode" width="1024" height="865"></p>
<p><span><strong>Things to know<br></strong></span>Select an EBS volume with minimum 200 Gb for development purposes. The 100 Gb default volume size is not sufficient to install Xcode. I usually select 500 Gb. When you increase the EBS volume size after the launch of the instance, remember to resize the APFS filesystem.</p>
<p>Alternatively, you can choose to install your development tools and framework on the low-latency local 2 Tb SSD drive available in the Mac mini. Pay attention that the content of that volume is bound to the instance lifecycle, not the dedicated host. This means that everything will be deleted from the internal SSD storage when you stop and restart the instance.</p>
<p>The<code>mac-m4.metal</code> and <code>mac-m4pro.metal</code> instances support macOS Sequoia 15.6 and later.</p>
<p>You can migrate your existing EC2 Mac instances when the migrated instance runs macOS 15 (Sequoia). Create a custom AMI from your existing instance and start an M4 or M4 Pro instance from this AMI.</p>
<p>Finally, I suggest checking the tutorials I wrote to help you to get started with Amazon EC2 Mac:</p>
<p><span><strong>Pricing and availability<br></strong></span>EC2 M4 and M4 Pro Mac instances are currently available in US East (N. Virginia) and US West (Oregon), with additional Regions planned for the future.</p>
<p>Amazon EC2 Mac instances are available for purchase as Dedicated Hosts through the On-Demand and Savings Plans pricing models. Billing for EC2 Mac instances is per second with a 24-hour minimum allocation period to comply with the Apple macOS Software License Agreement. At the end of the 24-hour minimum allocation period, the host can be released at any time with no further commitment</p>
<p>As someone who works closely with Apple developers, I&rsquo;m curious to see how you&rsquo;ll use these new instances to accelerate your development cycles. The combination of increased performance, enhanced memory capacity, and integration with AWS services opens new possibilities for teams building applications for iOS, macOS, iPadOS, tvOS, watchOS, and visionOS platforms. Beyond application development, Apple silicon&rsquo;s Neural Engine makes these instances cost-effective candidates for running machine learning (ML) inference workloads. I&rsquo;ll be discussing this topic in detail at AWS re:Invent 2025, where I&rsquo;ll share benchmarks and best practices for optimizing ML workloads on EC2 Mac instances.</p>
<p>To learn more about EC2 M4 and M4 Pro Mac instances, visit the Amazon EC2 Mac Instances page or refer to the EC2 Mac documentation. You can start using these instances today to modernize your Apple development workflows on AWS.</p>
<p>       &mdash; seb<br>
       <!-- '"` --></p>
<p>The post <a href="https://thenokiablog.com/announcing-amazon-ec2-m4-and-m4-pro-mac-instances/">Announcing Amazon EC2 M4 and M4 Pro Mac instances</a> appeared first on <a href="https://thenokiablog.com">The NOKIA Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AWS Weekly Roundup: Amazon EC2, Amazon Q Developer, IPv6 updates, and more (September 1, 2025)</title>
		<link>https://thenokiablog.com/aws-weekly-roundup-amazon-ec2-amazon-q-developer-ipv6-updates-and-more-september-1-2025/</link>
		
		<dc:creator><![CDATA[Mister Nokia]]></dc:creator>
		<pubDate>Mon, 01 Sep 2025 12:59:02 +0000</pubDate>
				<category><![CDATA[Nokia Mobile Phone]]></category>
		<category><![CDATA[Amazon API Gateway]]></category>
		<category><![CDATA[Amazon DynamoDB]]></category>
		<category><![CDATA[Amazon EC2]]></category>
		<category><![CDATA[Amazon EC2 Mac Instances]]></category>
		<category><![CDATA[Amazon Q]]></category>
		<category><![CDATA[Amazon Q Developer]]></category>
		<category><![CDATA[AWS Client VPN]]></category>
		<category><![CDATA[AWS Heroes]]></category>
		<category><![CDATA[AWS re:Invent]]></category>
		<category><![CDATA[AWS Training and Certification]]></category>
		<category><![CDATA[Compute]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Generative AI]]></category>
		<category><![CDATA[Graviton]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Week in Review]]></category>
		<guid isPermaLink="false">https://thenokiablog.com/aws-weekly-roundup-amazon-ec2-amazon-q-developer-ipv6-updates-and-more-september-1-2025/</guid>

					<description><![CDATA[<p>My LinkedIn feed was absolutely packed this week with pictures from the AWS Heroes Summit event...</p>
<p>The post <a href="https://thenokiablog.com/aws-weekly-roundup-amazon-ec2-amazon-q-developer-ipv6-updates-and-more-september-1-2025/">AWS Weekly Roundup: Amazon EC2, Amazon Q Developer, IPv6 updates, and more (September 1, 2025)</a> appeared first on <a href="https://thenokiablog.com">The NOKIA Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<table id="amazon-polly-audio-table">
<tbody>
<tr>
<td id="amazon-polly-audio-tab">
<div id="amazon-polly-by-tab">
            <img loading="lazy" decoding="async" src="https://thenokiablog.com/wp-content/uploads/2025/09/aws-weekly-roundup-amazon-ec2-amazon-q-developer-ipv6-updates-and-more-september-1-2025.png" alt="Voiced by Polly" width="554" height="56">
           </div>
</td>
</tr>
</tbody>
</table>
<p>My LinkedIn feed was absolutely packed this week with pictures from the AWS Heroes Summit event in Seattle. It was heartwarming to see so many familiar faces and new Heroes coming together.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-99063 size-large" src="https://thenokiablog.com/wp-content/uploads/2025/09/aws-weekly-roundup-amazon-ec2-amazon-q-developer-ipv6-updates-and-more-september-1-2025.jpg" alt="AWS Heroes Summit 2025" width="1024" height="790"></p>
<p>For those not familiar with the AWS Heroes program, it&rsquo;s a global community recognition initiative that honors individuals who make outstanding contributions to the AWS community. These Heroes share their deep AWS knowledge through content creation, speaking at events, organizing community gatherings, and contributing to open-source projects.</p>
<p>The AWS Heroes Summit brings these exceptional community leaders together, providing a unique platform for knowledge exchange, networking, and collaboration. As someone who regularly interacts with Heroes through our AWS initiatives, I always find these summits invaluable &ndash; they offer deep technical discussions, early access to AWS roadmaps, and opportunities to provide direct feedback to AWS service teams. The insights and connections made at these events often translate into better resources and guidance for the broader AWS community.</p>
<div class="internal-linking-related-contents"><a href="https://thenokiablog.com/html-element-select-envato-tuts/" class="template-2"><span class="cta">Read more</span><span class="postTitle">HTML Element: select | Envato Tuts+</span></a></div><p><strong><u>Last week&rsquo;s launches</u></strong></p>
<p>In addition to this inspiring community, here are some AWS launches that caught my attention:</p>
<ul>
<li>AWS expands Internet Protocol v6 (IPv6) support to AWS App Runner, AWS Client VPN, and RDS Data API &mdash; Three more AWS services now support IPv6 connectivity, helping you meet compliance requirements and removes the need for handling address translation between IPv4 and IPv6. AWS App Runner now supports IPv6-based inbound and outbound traffic on both public and private App Runner service endpoints. AWS Client VPN announced support for remote access to IPv6 workloads, allowing you to establish secure VPN connections to your IPv6-enabled VPC resources. Finally, RDS Data API now supports IPv6, enabling dual-stack configuration (IPv4 and IPv6) connectivity for your Aurora databases.</li>
<li>We launched two new instance families this week: the new storage-optimized I8ge and the general-purpose M8i instances &mdash;Our I8ge instances, powered by AWS Graviton4 processors, deliver up to 60% better compute performance compared to their Graviton2-based predecessors. These instances feature third-generation AWS Nitro SSDs, providing up to 55% better real-time storage performance per TB and significantly lower I/O latency. With 120 TB of storage and sizes up to 48xlarge (including two metal options), they offer the highest storage density among AWS Graviton-based storage optimized instances. We also launched M8i and M8i-flex instances with custom Intel Xeon 6 processors. These instances deliver up to 15% better price-performance and 2.5x more memory bandwidth than their predecessors. M8i-flex instances are ideal for general-purpose workloads, available from large to 16xlarge. For demanding applications, you can choose from our SAP-certified M8i instances in 13 sizes, including 2 bare metal options and a new 96xlarge size.</li>
<li>Amazon EC2 Mac Dedicated hosts now support Host Recovery and Reboot-based host maintenance &mdash; you can enable two new capabilities for your EC2 Mac Dedicated Hosts: Host Recovery and Reboot-based Host Maintenance. Host Recovery automatically detects potential hardware issues on Mac Dedicated Hosts and seamlessly migrates Mac instances to a new replacement host, minimizing disruption to workloads. Reboot-based Host Maintenance automatically stops and restarts instances on replacement hosts when scheduled maintenance events occur, eliminating the need for manual intervention during planned maintenance windows.</li>
<li>Amazon Q Developer now supports MCP admin control &mdash; Administrators have now the ability to enable or disable the MCP functionality for all the Q Developer clients in their organization. When an administrator disables the functionality, users will not be allowed to add any MCP servers, nor will any previously defined servers be initialized.</li>
</ul>
<p><strong><u>Other AWS news</u></strong></p>
<p>Here are some additional projects and blog posts that you might find interesting:</p>
<ul>
<li>Mastering Amazon Q Developer with Rules &mdash; I read an interesting article about Amazon Q Developer&rsquo;s rules feature this weekend that I want to share with you. What caught my attention is how it solves a pain point I often encounter when working with AI assistants &ndash; having to repeatedly explain my coding preferences and standards. With rules, you define your preferences once in Markdown files, and Amazon Q Developer automatically follows them for every interaction. I particularly like how transparent the system is, showing which rules it&rsquo;s following, and how it helps maintain consistency across teams. Since implementing rules in my projects, I&rsquo;ve seen more consistent code quality, all while reducing the cognitive load of having to repeatedly explain our standards.</li>
<li>Strategies for excelling across all four exam domains of the AWS Certified Machine Learning &ndash; Specialty certification. The AWS Training &amp; Certification team, where I spent my first three years at AWS, shared how to prepare for the AWS Certified Machine Learning &ndash; Specialty certification, whether you&rsquo;re starting from scratch or building upon existing AWS Certifications. They share the prerequisites and guidance to help you get ready for this certification and demonstrate your expertise in building ML solutions with AWS.</li>
<li>As is now our tradition after Prime Day, we shared the impressive metrics showing how AWS services scaled to support one of the world&rsquo;s largest shopping events. Amazon Prime Day 2025 was the biggest ever, setting records for both sales volume and total items sold during the 4-day event. This year was particularly special as we saw a significant transformation in the Prime Day experience through advancements in our generative AI offerings, with customers using Alexa+, Rufus, and AI Shopping Guides to discover deals and get product information. The numbers are staggering &ndash; Amazon DynamoDB handled tens of trillions of API calls while maintaining high availability, delivering single-digit millisecond responses and peaking at 151 million requests per second. Amazon API Gateway processed over 1 trillion internal service requests&mdash;a 30 percent increase in requests on average per day compared to Prime Day 2024.</li>
</ul>
<div class="internal-linking-related-contents"><a href="https://thenokiablog.com/skipping-the-whm-getting-started-wizard-cpanel-blog/" class="template-2"><span class="cta">Read more</span><span class="postTitle">Skipping the WHM Getting Started Wizard | cPanel Blog</span></a></div><p><strong><u>Upcoming AWS events</u></strong><br>Check your calendars and sign up for these upcoming AWS events:</p>
<ul>
<li>AWS Summits &mdash; Join free online and in-person events that bring the cloud computing community together to connect, collaborate, and learn about AWS. Register in your nearest city: Toronto (September 4), Los Angeles (September 17), and Bogot&aacute; (October 9).</li>
<li>AWS re:Invent 2025 &mdash; This flagship annual conference is coming to Las Vegas from December 1&ndash;5. The event catalog is now available. Mark your calendars for this not to be missed gathering of the AWS community.</li>
<li>AWS Community Days &mdash; Join community-led conferences that feature technical discussions, workshops, and hands-on labs led by expert AWS users and industry leaders from around the world: Adria (September 5), Baltic (September 10), Aotearoa (September 18), South Africa (September 20), Bolivia (September 20), Portugal (September 27).</li>
</ul>
<p>Join the AWS Builder Center to learn, build, and connect with builders in the AWS community. Browse here for upcoming in-person and virtual developer-focused events.</p>
<p>That&rsquo;s all for this week. Check back next Monday for another Weekly Roundup!</p>
<p>       &mdash; seb<br>
       <!-- '"` --></p>
<p>The post <a href="https://thenokiablog.com/aws-weekly-roundup-amazon-ec2-amazon-q-developer-ipv6-updates-and-more-september-1-2025/">AWS Weekly Roundup: Amazon EC2, Amazon Q Developer, IPv6 updates, and more (September 1, 2025)</a> appeared first on <a href="https://thenokiablog.com">The NOKIA Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Configure System Integrity Protection (SIP) on Amazon EC2 Mac instances</title>
		<link>https://thenokiablog.com/configure-system-integrity-protection-sip-on-amazon-ec2-mac-instances/</link>
		
		<dc:creator><![CDATA[Mister Nokia]]></dc:creator>
		<pubDate>Wed, 21 May 2025 17:36:31 +0000</pubDate>
				<category><![CDATA[Nokia Mobile Phone]]></category>
		<category><![CDATA[Amazon EC2]]></category>
		<category><![CDATA[Amazon EC2 Mac Instances]]></category>
		<category><![CDATA[Announcements]]></category>
		<category><![CDATA[AWS CLI]]></category>
		<category><![CDATA[AWS Management Console]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Launch]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Regions]]></category>
		<guid isPermaLink="false">https://thenokiablog.com/configure-system-integrity-protection-sip-on-amazon-ec2-mac-instances/</guid>

					<description><![CDATA[<p>I&#8217;m pleased to announce developers can now programmatically disable Apple System Integrity Protection (SIP) on their...</p>
<p>The post <a href="https://thenokiablog.com/configure-system-integrity-protection-sip-on-amazon-ec2-mac-instances/">Configure System Integrity Protection (SIP) on Amazon EC2 Mac instances</a> appeared first on <a href="https://thenokiablog.com">The NOKIA Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<table id="amazon-polly-audio-table">
<tbody>
<tr>
<td id="amazon-polly-audio-tab">
<div id="amazon-polly-by-tab">
            <img loading="lazy" decoding="async" src="https://thenokiablog.com/wp-content/uploads/2025/06/configure-system-integrity-protection-sip-on-amazon-ec2-mac-instances.png" alt="Voiced by Polly" width="554" height="56">
           </div>
</td>
</tr>
</tbody>
</table>
<p>I&rsquo;m pleased to announce developers can now programmatically disable Apple System Integrity Protection (SIP) on their Amazon EC2 Mac instances. System Integrity Protection (SIP), also known as rootless, is a security feature introduced by Apple in OS X El Capitan (2015, version 10.11). It&rsquo;s designed to protect the system from potentially harmful software by restricting the power of the root user account. SIP is enabled by default on macOS.</p>
<p>SIP safeguards the system by preventing modification of protected files and folders, restricting access to system-owned files and directories, and blocking unauthorized software from selecting a startup disk. The primary goal of SIP is to address the security risk linked to unrestricted root access, which could potentially allow malware to gain full control of a device with just one password or vulnerability. By implementing this protection, Apple aims to ensure a higher level of security for macOS users, especially considering that many users operate on administrative accounts with weak or no passwords.</p>
<p>While SIP provides excellent protection against malware for everyday use, developers might occasionally need to temporarily disable it for development and testing purposes. For instance, when creating a new device driver or system extension, disabling SIP is necessary to install and test the code. Additionally, SIP might block access to certain system settings required for your software to function properly. Temporarily disabling SIP grants you the necessary permissions to fine-tune programs for macOS. However, it&rsquo;s crucial to remember that this is akin to briefly disabling the vault door for authorized maintenance, not leaving it permanently open.</p>
<p>Disabling SIP on a Mac requires physical access to the machine. You have to restart the machine in recovery mode, then disable SIP with the <code>csrutil</code> command line tool, then restart the machine again.</p>
<div class="internal-linking-related-contents"><a href="https://thenokiablog.com/html-element-select-envato-tuts/" class="template-2"><span class="cta">Read more</span><span class="postTitle">HTML Element: select | Envato Tuts+</span></a></div><p>Until today, you had to operate with the standard SIP settings on EC2 Mac instances. The physical access requirement and the need to boot in recovery mode made integrating SIP with the Amazon EC2 control plane and EC2 API challenging. But that&rsquo;s no longer the case! You can now disable and re-enable SIP at will on your Amazon EC2 Mac instances. Let me show you how.</p>
<p><span><strong>Let&rsquo;s see how it works<br></strong></span>Imagine I have an Amazon EC2 Mac instance started. It&rsquo;s a <code>mac2-m2.metal</code> instance, running on an Apple silicon M2 processor. Disabling or enabling SIP is as straightforward as calling a new EC2 API: <code>CreateMacSystemIntegrityProtectionModificationTask</code>. This API is asynchronous; it starts the process of changing the SIP status on your instance. You can monitor progress using another new EC2 API: <code>DescribeMacModificationTasks</code>. All I need to know is the instance ID of the machine I want to work with.</p>
<p><span><strong>Prerequisites<br></strong></span>On Apple silicon based EC2 Mac instances and more recent type of machines, before calling the new EC2 API, I must set the <code>ec2-user</code> user password and enable secure token for that user on macOS. This requires connecting to the machine and typing two commands in the terminal.</p>
<pre><code class="lang-bash"># on the target EC2 Mac instance
# Set a password for the ec2-user user
~ % sudo /usr/bin/dscl . -passwd /Users/ec2-user
New Password: (MyNewPassw0rd)

# Enable secure token, with the same password, for the ec2-user
# old password is the one you just set with dscl
~ % sysadminctl -newPassword MyNewPassw0rd -oldPassword MyNewPassw0rd
2025-03-05 13:16:57.261 sysadminctl[3993:3033024] Attempting to change password for ec2-user&hellip;
2025-03-05 13:16:58.690 sysadminctl[3993:3033024] SecKeychainCopyLogin returned -25294
2025-03-05 13:16:58.690 sysadminctl[3993:3033024] Failed to update keychain password (-25294)
2025-03-05 13:16:58.690 sysadminctl[3993:3033024] - Done

# The error about the KeyChain is expected. I never connected with the GUI on this machine, so the Login keychain does not exist
# you can ignore this error.  The command below shows the list of keychains active in this session
~ % security list
    "/Library/Keychains/System.keychain"

# Verify that the secure token is ENABLED
~ % sysadminctl -secureTokenStatus ec2-user
2025-03-05 13:18:12.456 sysadminctl[4017:3033614] Secure token is ENABLED for user ec2-user
</code></pre>
<p><span><strong>Change the SIP status<br></strong></span>I don&rsquo;t need to connect to the machine to toggle the SIP status. I only need to know its instance ID. I open a terminal on my laptop and use the AWS Command Line Interface (AWS CLI) to retrieve the Amazon EC2 Mac instance ID.</p>
<pre><code class="lang-bash"> aws ec2 describe-instances 
         --query "Reservations[].Instances[?InstanceType == 'mac2-m2.metal' ].InstanceId" 
         --output text

i-012a5de8da47bdff7</code></pre>
<div class="internal-linking-related-contents"><a href="https://thenokiablog.com/skipping-the-whm-getting-started-wizard-cpanel-blog/" class="template-2"><span class="cta">Read more</span><span class="postTitle">Skipping the WHM Getting Started Wizard | cPanel Blog</span></a></div><p>Now, still from the terminal on my laptop, I disable SIP with the <code>create-mac-system-integrity-protection-modification-task</code> command:</p>
<pre><code class="lang-bash">echo '{"rootVolumeUsername":"ec2-user","rootVolumePassword":"MyNewPassw0rd"}' &gt; tmpCredentials
aws ec2 create-mac-system-integrity-protection-modification-task 
--instance-id "i-012a5de8da47bdff7" 
--mac-credentials fileb://./tmpCredentials 
--mac-system-integrity-protection-status "disabled" &amp;&amp; rm tmpCredentials

{
    "macModificationTask": {
        "instanceId": "i-012a5de8da47bdff7",
        "macModificationTaskId": "macmodification-06a4bb89b394ac6d6",
        "macSystemIntegrityProtectionConfig": {},
        "startTime": "2025-03-14T14:15:06Z",
        "taskState": "pending",
        "taskType": "sip-modification"
    }
}</code></pre>
<p>After the task is started, I can check its status with the <code>aws ec2 describe-mac-modification-tasks</code> command.</p>
<pre><code class="lang-json">{
    "macModificationTasks": [
        {
            "instanceId": "i-012a5de8da47bdff7",
            "macModificationTaskId": "macmodification-06a4bb89b394ac6d6",
            "macSystemIntegrityProtectionConfig": {
                "debuggingRestrictions": "",
                "dTraceRestrictions": "",
                "filesystemProtections": "",
                "kextSigning": "",
                "nvramProtections": "",
                "status": "disabled"
            },
            "startTime": "2025-03-14T14:15:06Z",
            "tags": [],
            "taskState": "in-progress",
            "taskType": "sip-modification"
        },
...</code></pre>
<p>The instance initiates the process and a series of reboots, during which it becomes unreachable. This process can take 60&ndash;90 minutes to complete. After that, when I see the status in the console becoming available again, I connect to the machine through SSH or EC2 Instance Connect, as usual.</p>
<pre><code class="lang-bash">&#10140;  ~ ssh ec2-user@54.99.9.99
Warning: Permanently added '54.99.9.99' (ED25519) to the list of known hosts.
Last login: Mon Feb 26 08:52:42 2024 from 1.1.1.1

    &#9484;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9488;   __|  __|_  )
    &#9474; &#9591;&#9581;&#9583;&#9591; &#9474;   _|  (     /
    &#9474;  &#9492;&#9582;  &#9474;  ___|___|___|
    &#9474; &#9584;&#9472;&#9532;&#9583; &#9474;  Amazon EC2
    &#9492;&#9472;&#9472;&#9472;&#9524;&#9472;&#9472;&#9496;  macOS Sonoma 14.3.1

&#10140;  ~ uname -a
Darwin Mac-mini.local 23.3.0 Darwin Kernel Version 23.3.0: Wed Dec 20 21:30:27 PST 2023; root:xnu-10002.81.5~7/RELEASE_ARM64_T8103 arm64

&#10140; ~ csrutil --status 
System Integrity Protection status: disabled.
</code></pre>
<p><span><strong>When to disable SIP<br></strong></span>Disabling SIP should be approached with caution because it opens up the system to potential security risks. However, as I mentioned in the introduction of this post, you might need to disable SIP when developing device drivers or kernel extensions for macOS. Some older applications might also not function correctly when SIP is enabled.</p>
<div class="internal-linking-related-contents"><a href="https://thenokiablog.com/gone-phishing-cpanel-blog/" class="template-2"><span class="cta">Read more</span><span class="postTitle">Gone Phishing | cPanel Blog</span></a></div><p>Disabling SIP is also required to turn off Spotlight indexing. Spotlight can help you quickly find apps, documents, emails and other items on your Mac. It&rsquo;s very convenient on desktop machines, but not so much on a server. When there is no need to index your documents as they change, turning off Spotlight will release some CPU cycles and disk I/O.</p>
<p><span><strong>Things to know<br></strong></span>There are a couple of additional things to know about disabling SIP on Amazon EC2 Mac:</p>
<ul>
<li>Disabling SIP is available through the API and AWS SDKs, the AWS CLI, and the AWS Management Console.</li>
<li>On Apple silicon, the setting is volume based. So if you replace the root volume, you need to disable SIP again. On Intel, the setting is Mac host based, so if you replace the root volume, SIP will still be disabled.</li>
<li>After disabling SIP, it will be enabled again if you stop and start the instance. Rebooting an instance doesn&rsquo;t change its SIP status.</li>
<li>SIP status isn&rsquo;t transferable between EBS volumes. This means SIP will be disabled again after you restore an instance from an EBS snapshot or if you create an AMI from an instance where SIP is enabled.</li>
</ul>
<p>These new APIs are available in all Regions where Amazon EC2 Mac is available, at no additional cost. Try them today.</p>
<p>       &mdash; seb<br>
       <!-- '"` --></p>
<p>The post <a href="https://thenokiablog.com/configure-system-integrity-protection-sip-on-amazon-ec2-mac-instances/">Configure System Integrity Protection (SIP) on Amazon EC2 Mac instances</a> appeared first on <a href="https://thenokiablog.com">The NOKIA Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AWS CodeBuild for macOS adds support for Fastlane</title>
		<link>https://thenokiablog.com/aws-codebuild-for-macos-adds-support-for-fastlane/</link>
		
		<dc:creator><![CDATA[Mister Nokia]]></dc:creator>
		<pubDate>Wed, 05 Feb 2025 23:00:35 +0000</pubDate>
				<category><![CDATA[Nokia Mobile Phone]]></category>
		<category><![CDATA[Amazon EC2 Mac Instances]]></category>
		<category><![CDATA[Announcements]]></category>
		<category><![CDATA[AWS Amplify]]></category>
		<category><![CDATA[AWS CodeBuild]]></category>
		<category><![CDATA[AWS Management Console]]></category>
		<category><![CDATA[AWS Mobile Development]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Developer Tools]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Launch]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Regions]]></category>
		<category><![CDATA[Storage]]></category>
		<guid isPermaLink="false">https://thenokiablog.com/aws-codebuild-for-macos-adds-support-for-fastlane/</guid>

					<description><![CDATA[<p>I&#8217;m pleased to announce the availability of Fastlane in your AWS CodeBuild for macOS environments. AWS...</p>
<p>The post <a href="https://thenokiablog.com/aws-codebuild-for-macos-adds-support-for-fastlane/">AWS CodeBuild for macOS adds support for Fastlane</a> appeared first on <a href="https://thenokiablog.com">The NOKIA Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<table id="amazon-polly-audio-table">
<tbody>
<tr>
<td id="amazon-polly-audio-tab">
<div id="amazon-polly-by-tab">
            <img loading="lazy" decoding="async" src="https://thenokiablog.com/wp-content/uploads/2025/02/aws-codebuild-for-macos-adds-support-for-fastlane.png" alt="Voiced by Polly" width="554" height="56">
           </div>
</td>
</tr>
</tbody>
</table>
<p>I&rsquo;m pleased to announce the availability of Fastlane in your AWS CodeBuild for macOS environments. AWS CodeBuild is a fully managed continuous integration service that compiles source code, runs tests, and produces ready-to-deploy software packages.</p>
<p>Fastlane is an open source tool suite designed to automate various aspects of mobile application development. It provides mobile application developers with a centralized set of tools to manage tasks such as code signing, screenshot generation, beta distribution, and app store submissions. It integrates with popular continuous integration and continuous deployment (CI/CD) platforms and supports both iOS and Android development workflows. Although Fastlane offers significant automation capabilities, developers may encounter challenges during its setup and maintenance. Configuring Fastlane can be complex, particularly for teams unfamiliar with the syntax and package management system of Ruby. Keeping Fastlane and its dependencies up to date requires ongoing effort, because updates to mobile platforms or third-party services may necessitate adjustments to existing workflows.</p>
<p>When we introduced CodeBuild for macOS in August 2024, we knew that one of your challenges was to install and maintain Fastlane in your build environment. Although it was possible to manually install Fastlane in a custom build environment, at AWS, we remove the undifferentiated heaving lifting from your infrastructure so you can spend more time on the aspects that matter for your business. Starting today, Fastlane is installed by default, and you can use the familiar command <code>fastlane build</code>in your <code>buildspec.yaml</code> file.</p>
<p><span><strong>Fastlane and code signing<br></strong></span>To distribute an application on the App Store, developers must sign their binary with a private key generated on the Apple Developer portal. This private key, along with the certificate that validates it, must be accessible during the build process. This can be a challenge for development teams because they need to share the development private key (which allows deployment on selected test devices) among team members. Additionally, the distribution private key (which enables publishing on the App Store) must be available during the signing process before uploading the binary to the App Store.</p>
<div class="internal-linking-related-contents"><a href="https://thenokiablog.com/html-element-select-envato-tuts/" class="template-2"><span class="cta">Read more</span><span class="postTitle">HTML Element: select | Envato Tuts+</span></a></div><p>Fastlane is a versatile build system in that it also helps developers with the management of development and distribution keys and certificates. Developers can use <code>fastlane match</code> to share signing materials in a team and make them securely and easily accessible on individual developers&rsquo; machines and on the CI environment. <code>match</code> allows the storage of private keys, the certificates, and the mobile provisioning profiles on a secured share storage. It makes sure that the local build environment, whether it&rsquo;s a developer laptop or a server machine in the cloud, stays in sync with the shared storage. At build time, it securely downloads the required certificates to sign your app and configures the build machine to allow the <code>codesign</code> utility to pick them up.</p>
<p><code>match</code> allows the sharing of signing secrets through GitHub, GitLab, Google Cloud Storage, Azure DevOps, and Amazon Simple Storage Service (Amazon S3).</p>
<p>If you already use one of these and you&rsquo;re migrating your projects to CodeBuild, you don&rsquo;t have much to do. You only need to make sure your CodeBuild build environment has access to the shared storage (see step 3 in the demo).</p>
<p><span><strong>Let&rsquo;s see how it works<br></strong></span>If you&rsquo;re new to Fastlane or CodeBuild, let&rsquo;s see how it works.</p>
<div class="internal-linking-related-contents"><a href="https://thenokiablog.com/skipping-the-whm-getting-started-wizard-cpanel-blog/" class="template-2"><span class="cta">Read more</span><span class="postTitle">Skipping the WHM Getting Started Wizard | cPanel Blog</span></a></div><p>For this demo, I start with an existing iOS project. The project is already configured to be built on CodeBuild. You can refer to my previous blog post, Add macOS to your continuous integration pipelines with AWS CodeBuild, to learn more details.</p>
<p>I&rsquo;ll show you how to get started in three steps:</p>
<ul>
<li>Import your existing signing materials to a shared private GitHub repository</li>
<li>Configure <code>fastlane</code> to build and sign your project</li>
<li>Use <code>fastlane</code>with CodeBuild</li>
</ul>
<p><strong>Step 1: Import your signing materials</strong></p>
<p>Most of the <code>fastlane</code> documentation I read explains how to create a new key pair and a new certificate to get started. Although this is certainly true for new projects, in real life, you probably already have your project and your signing keys. So, the first step is to import these existing signing materials.</p>
<div class="internal-linking-related-contents"><a href="https://thenokiablog.com/gone-phishing-cpanel-blog/" class="template-2"><span class="cta">Read more</span><span class="postTitle">Gone Phishing | cPanel Blog</span></a></div><p>Apple App Store uses different keys and certificates for development and distribution (there are also ad hoc and enterprise certificates, but these are outside the scope of this post). You must have three files for each usage (that&rsquo;s a total of six files):</p>
<ul>
<li>A <code>.mobileprovision</code> file that you can create and download from the Apple developer console. The provisioning profile links your identity, the app identity, and the entitlements the app might have.</li>
<li>A <code>.cer</code> file, which is the certificate emitted by Apple to validate your private key. You can download this from the Apple Developer portal. Select the certificate, then select <strong>Download</strong>.</li>
<li>A <code>.p12</code> file, which contains your private key. You can download the key when you create it in the Apple Developer portal. If you didn&rsquo;t download it but have it on your machine, you can export it from the Apple Keychain app. Note that the KeyChain.app is hidden in macOS 15.x. You can open it with <code>open /System/Library/CoreServices/Applications/Keychain Access.app</code>. Select the key you want to export and right click to select <strong>Export.</strong></li>
</ul>
<table>
<tbody>
<tr>
<td><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-93462" src="https://thenokiablog.com/wp-content/uploads/2025/02/aws-codebuild-for-macos-adds-support-for-fastlane-1.png" alt="Export p12 files from Keychain" width="1024" height="561"></td>
<td><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-93463" src="https://thenokiablog.com/wp-content/uploads/2025/02/aws-codebuild-for-macos-adds-support-for-fastlane-2.png" alt width="1286" height="450"></td>
</tr>
</tbody>
</table>
<p>When you have these files, create a <code>fastlane/Matchfile</code> file with the following content:</p>
<pre><code class="lang-ruby">git_url("https://github.com/sebsto/secret.git")
storage_mode("git")
type("development")
# or use appstore to use the distribution signing key and certificate
# type("appstore")</code></pre>
<p>Be sure to replace the URL of your GitHub repository and <span><strong>make sure this repository is private</strong></span>. It will serve as a storage for your signing key and certificate.</p>
<p>Then, I import my existing files with the <code>fastlane match import --type appstore</code> command. I repeat the command for each environment: <code>appstore</code> and <code>development</code>.</p>
<p>The very first time, <code>fastlane</code> prompts me for my Apple Id username and password. It connects to App Store Connect to verify the validity of the certificates or to create new ones when necessary. The session cookie is stored in <code>~/.fastlane/spaceship/&lt;your apple user id&gt;/cookie</code>.</p>
<p><code>fastlane match</code> also asks for a password. It uses this password to generate a key to crypt the signing materials on the storage. Don&rsquo;t forget this password because it will be used at build time to import the signing materials on the build machine.</p>
<p>Here is the command and its output in full:</p>
<pre><code class="lang-bash"> fastlane match import --type appstore

[&#10004;] &#128640;
[16:43:54]: Successfully loaded '~/amplify-ios-getting-started/code/fastlane/Matchfile' &#128196;

+-----------------------------------------------------+
| Detected Values from './fastlane/Matchfile'         |
+--------------+--------------------------------------+
| git_url.     | https://github.com/sebsto/secret.git |
| storage_mode | git                                  |
| type         | development                          |
+--------------+--------------------------------------+

[16:43:54]: Certificate (.cer) path:
./secrets/sebsto-apple-dist.cer
[16:44:07]: Private key (.p12) path:
./secrets/sebsto-apple-dist.p12
[16:44:12]: Provisioning profile (.mobileprovision or .provisionprofile) path or leave empty to skip
this file:
./secrets/amplifyiosgettingstarteddist.mobileprovision
[16:44:25]: Cloning remote git repo...
[16:44:25]: If cloning the repo takes too long, you can use the `clone_branch_directly` option in match.
[16:44:27]: Checking out branch master...
[16:44:27]: Enter the passphrase that should be used to encrypt/decrypt your certificates
[16:44:27]: This passphrase is specific per repository and will be stored in your local keychain
[16:44:27]: Make sure to remember the password, as you'll need it when you run match on a different machine
[16:44:27]: Passphrase for Match storage: ********
[16:44:30]: Type passphrase again: ********
security: SecKeychainAddInternetPassword &lt;NULL&gt;: The specified item already exists in the keychain.
[16:44:31]: &#128275; Successfully decrypted certificates repo
[16:44:31]: Repo is at: '/var/folders/14/nwpsn4b504gfp02_mrbyd2jr0000gr/T/d20250131-41830-z7b4ic'
[16:44:31]: Login to App Store Connect (sebsto@mac.com)
[16:44:33]: Enter the passphrase that should be used to encrypt/decrypt your certificates
[16:44:33]: This passphrase is specific per repository and will be stored in your local keychain
[16:44:33]: Make sure to remember the password, as you'll need it when you run match on a different machine
[16:44:33]: Passphrase for Match storage: ********
[16:44:37]: Type passphrase again: ********
security: SecKeychainAddInternetPassword &lt;NULL&gt;: The specified item already exists in the keychain.
[16:44:39]: &#128274; Successfully encrypted certificates repo
[16:44:39]: Pushing changes to remote git repo...
[16:44:40]: Finished uploading files to Git Repo [https://github.com/sebsto/secret.git]
</code></pre>
<p>I verify that Fastlane imported my signing material to my Git repository.</p>
<p><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-93464" src="https://thenokiablog.com/wp-content/uploads/2025/02/aws-codebuild-for-macos-adds-support-for-fastlane-3.png" alt="Fastlane match - github repo after import" width="931" height="356"></p>
<p>I can also configure my local machine to use these signing materials during the next build:</p>
<pre><code class="lang-txt">&raquo; fastlane match appstore 

[&#10004;] &#128640; 
[17:39:08]: Successfully loaded '~/amplify-ios-getting-started/code/fastlane/Matchfile' &#128196;

+-----------------------------------------------------+
|   Detected Values from './fastlane/Matchfile'       |
+--------------+--------------------------------------+
| git_url      | https://github.com/sebsto/secret.git |
| storage_mode | git                                  |
| type         | development                          |
+--------------+--------------------------------------+


+-------------------------------------------------------------------------------------------+
|                                 Summary for match 2.226.0                                 |
+----------------------------------------+--------------------------------------------------+
| type                                   | appstore                                         |
| readonly                               | false                                            |
| generate_apple_certs                   | true                                             |
| skip_provisioning_profiles             | false                                            |
| app_identifier                         | ["com.amazonaws.amplify.mobile.getting-started"] |
| username                               | xxxx@xxxxxxxxx                                   |
| team_id                                | XXXXXXXXXX                                       |
| storage_mode                           | git                                              |
| git_url                                | https://github.com/sebsto/secret.git             |
| git_branch                             | master                                           |
| shallow_clone                          | false                                            |
| clone_branch_directly                  | false                                            |
| skip_google_cloud_account_confirmation | false                                            |
| s3_skip_encryption                     | false                                            |
| gitlab_host                            | https://gitlab.com                               |
| keychain_name                          | login.keychain                                   |
| force                                  | false                                            |
| force_for_new_devices                  | false                                            |
| include_mac_in_profiles                | false                                            |
| include_all_certificates               | false                                            |
| force_for_new_certificates             | false                                            |
| skip_confirmation                      | false                                            |
| safe_remove_certs                      | false                                            |
| skip_docs                              | false                                            |
| platform                               | ios                                              |
| derive_catalyst_app_identifier         | false                                            |
| fail_on_name_taken                     | false                                            |
| skip_certificate_matching              | false                                            |
| skip_set_partition_list                | false                                            |
| force_legacy_encryption                | false                                            |
| verbose                                | false                                            |
+----------------------------------------+--------------------------------------------------+

[17:39:08]: Cloning remote git repo...
[17:39:08]: If cloning the repo takes too long, you can use the `clone_branch_directly` option in match.
[17:39:10]: Checking out branch master...
[17:39:10]: Enter the passphrase that should be used to encrypt/decrypt your certificates
[17:39:10]: This passphrase is specific per repository and will be stored in your local keychain
[17:39:10]: Make sure to remember the password, as you'll need it when you run match on a different machine
[17:39:10]: Passphrase for Match storage: ********
[17:39:13]: Type passphrase again: ********
security: SecKeychainAddInternetPassword &lt;NULL&gt;: The specified item already exists in the keychain.
[17:39:15]: &#128275;  Successfully decrypted certificates repo
[17:39:15]: Verifying that the certificate and profile are still valid on the Dev Portal...
[17:39:17]: Installing certificate...

+-------------------------------------------------------------------------+
|                          Installed Certificate                          |
+-------------------+-----------------------------------------------------+
| User ID           | XXXXXXXXXX                                          |
| Common Name       | Apple Distribution: Sebastien Stormacq (XXXXXXXXXX) |
| Organisation Unit | XXXXXXXXXX                                          |
| Organisation      | Sebastien Stormacq                                  |
| Country           | US                                                  |
| Start Datetime    | 2024-10-29 09:55:43 UTC                             |
| End Datetime      | 2025-10-29 09:55:42 UTC                             |
+-------------------+-----------------------------------------------------+

[17:39:18]: Installing provisioning profile...

+-------------------------------------------------------------------------------------------------------------------+
|                                          Installed Provisioning Profile                                           |
+---------------------+----------------------------------------------+----------------------------------------------+
| Parameter           | Environment Variable                         | Value                                        |
+---------------------+----------------------------------------------+----------------------------------------------+
| App Identifier      |                                              | com.amazonaws.amplify.mobile.getting-starte  |
|                     |                                              | d                                            |
| Type                |                                              | appstore                                     |
| Platform            |                                              | ios                                          |
| Profile UUID        | sigh_com.amazonaws.amplify.mobile.getting-s  | 4e497882-d80f-4684-945a-8bfec1b310b9         |
|                     | tarted_appstore                              |                                              |
| Profile Name        | sigh_com.amazonaws.amplify.mobile.getting-s  | amplify-ios-getting-started-dist             |
|                     | tarted_appstore_profile-name                 |                                              |
| Profile Path        | sigh_com.amazonaws.amplify.mobile.getting-s  | /Users/stormacq/Library/MobileDevice/Provis  |
|                     | tarted_appstore_profile-path                 | ioning                                       |
|                     |                                              | Profiles/4e497882-d80f-4684-945a-8bfec1b310  |
|                     |                                              | b9.mobileprovision                           |
| Development Team ID | sigh_com.amazonaws.amplify.mobile.getting-s  | XXXXXXXXXX                                   |
|                     | tarted_appstore_team-id                      |                                              |
| Certificate Name    | sigh_com.amazonaws.amplify.mobile.getting-s  | Apple Distribution: Sebastien Stormacq       |
|                     | tarted_appstore_certificate-name             | (XXXXXXXXXX)                                 |
+---------------------+----------------------------------------------+----------------------------------------------+

[17:39:18]: All required keys, certificates and provisioning profiles are installed &#128588;</code></pre>
<p><strong>Step 2: Configure Fastlane to sign your project</strong></p>
<p>I create a Fastlane build configuration file in <code>fastlane/Fastfile</code> (you can use <code>fastlane init</code> command to get started):</p>
<pre><code class="lang-ruby">default_platform(:ios)

platform :ios do
  before_all do
    setup_ci
  end

  desc "Build and Sign the binary"
  lane :build do
    match(type: "appstore", readonly: true)
    gym(
      scheme: "getting started",
      export_method: "app-store"
    )
  end
end
</code></pre>
<p>Make sure that the <code>setup_ci</code> action is added to the <code>before_all</code> section of <code>Fastfile</code> for the <code>match</code> action to function correctly. This action creates a temporary Fastlane keychain with correct permissions. Without this step, you may encounter build failures or inconsistent results.</p>
<p>And I test a local build with the command <code>fastlane build</code>. I enter the password I used when importing my keys and certificate, then I let the system build and sign my project. When everything is correctly configured, it produces a similar output.</p>
<pre><code class="lang-txt">...
[17:58:33]: Successfully exported and compressed dSYM file
[17:58:33]: Successfully exported and signed the ipa file:
[17:58:33]: ~/amplify-ios-getting-started/code/getting started.ipa

+---------------------------------------+
|           fastlane summary            |
+------+------------------+-------------+
| Step | Action           | Time (in s) |
+------+------------------+-------------+
| 1    | default_platform | 0           |
| 2    | setup_ci         | 0           |
| 3    | match            | 36          |
| 4    | gym              | 151         |
+------+------------------+-------------+

[17:58:33]: fastlane.tools finished successfully &#127881;</code></pre>
<p><strong>Step 3: Configure CodeBuild to use Fastlane</strong></p>
<p>Next, I create a project on CodeBuild. I&rsquo;m not going into the step-by-step guide to help you to do so. You can refer to my previous post or to the CodeBuild documentation.</p>
<p>There is just one Fastlane-specific configuration. To access the signing materials, Fastlane requires access to three secret values that I&rsquo;ll pass as environment variables:</p>
<ul>
<li><code>MATCH_PASSWORD</code>, the password I entered when importing the signing material. Fastlane uses this password to decipher the encrypted files in the GitHub repository</li>
<li><code>FASTLANE_SESSION</code>, the value of the Apple Id session cookie, located at <code>~/.fastlane/spaceship/&lt;your apple user id&gt;/cookie</code>. The session is valid from a couple of hours to multiple days. When the session expires, reauthenticate with the command <code>fastlane spaceauth</code> from your laptop and update the value of <code>FASTLANE_SESSION</code> with the new value of the cookie.</li>
<li><code>MATCH_GIT_BASIC_AUTHORIZATION</code>, a base 64 encoding of your GitHub username, followed by a colon, followed by a personal authentication token (PAT) to access your private GitHub repository. You can generate PAT on the GitHub console in Your Profile &gt; Settings &gt; Developers Settings &gt; Personal Access Token. I use this command to generate the value of this environment variable: <code>echo -n my_git_username:my_git_pat | base64</code>.</li>
</ul>
<p>Note that for each of these three values, I can enter the Amazon Resource Name (ARN) of the secret on AWS Secrets Manager or the plain text value. We strongly recommend using Secrets Manager to store security-sensitive values.</p>
<p>I&rsquo;m a security-conscious user, so I store the three secrets in Secrets Manager with these commands:</p>
<p><code class="lang-sh">aws --region $REGION secretsmanager create-secret --name /CodeBuild/MATCH_PASSWORD --secret-string MySuperSecretPassword<br>aws --region $REGION secretsmanager create-secret --name /CodeBuild/FASTLANE_SESSION --secret-string $(cat ~/.fastlane/spaceship/my_appleid_username/cookie)<br>aws --region $REGION secretsmanager create-secret --name /CodeBuild/MATCH_GIT_BASIC_AUTHORIZATION --secret-string $(echo -n my_git_username:my_git_pat | base64)<br></code></p>
<p>If your build project refers to secrets stored in Secrets Manager, the build project&rsquo;s service role must allow the&nbsp;<code>secretsmanager:GetSecretValue</code> action. If you chose <strong>New service role</strong> when you created your project, CodeBuild includes this action in the default service role for your build project. However, if you chose <strong>Existing service role</strong>, you must include this action to your service role separately.</p>
<p>For this demo, I use this AWS Identity and Access Management (IAM) policy:</p>
<pre><code class="lang-json">{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"secretsmanager:GetSecretValue"
			],
			"Resource": [
				"arn:aws:secretsmanager:us-east-2:012345678912:secret:/CodeBuild/*"
			]
		}
	]
}</code></pre>
<p>After I created the project in the CodeBuild section of the AWS Management Console, I enter the three environment variables. Notice that the value is the name of the secret in Secrets Manager.</p>
<p><img decoding="async" loading="lazy" class="aligncenter wp-image-93498 size-full" src="https://thenokiablog.com/wp-content/uploads/2025/02/aws-codebuild-for-macos-adds-support-for-fastlane-4.png" alt="Codebuild - environment variables for Fastlane match" width="719" height="272"></p>
<p>You can also define the environment variables and their Secrets Manager secret name in your <code>buildpsec.yaml</code>&nbsp;file.</p>
<p>Next, I modify the <code>buildspec.yaml</code> file at the root of my project to use <code>fastlane</code> to build and sign the binary. My <code>buildspec.yaml</code> file now looks like this one:</p>
<pre><code class="lang-yaml"># buildspec.yml
version: 0.2
phases:
  install:
    commands:
      - code/ci_actions/00_install_rosetta.sh
  pre_build:
    commands:
      - code/ci_actions/02_amplify.sh
  build:
    commands:
      - (cd code &amp;&amp; fastlane build)
artifacts:
  name: getting-started-$(date +%Y-%m-%d).ipa
  files:
    - 'getting started.ipa'
  base-directory: 'code'</code></pre>
<p>The Rosetta and Amplify scripts are required to receive the Amplify configuration for the backend. If you don&rsquo;t use AWS Amplify in your project, you don&rsquo;t need these.</p>
<p>Notice that there is nothing in the build file that downloads the signing key or prepares the keychain in the build environment; <code>fastlane match</code> will do that for me.</p>
<p>I add the new <code>buildspec.yaml</code> file and my <code>./fastlane</code>&nbsp;directory to Git. I commit and push these files. <code>git commit -m "add fastlane support" &amp;&amp; git push</code></p>
<p>When everything goes well, I can see the build running on CodeBuild and the <span><strong>Succeeded</strong></span> message.</p>
<p><img decoding="async" loading="lazy" class="aligncenter wp-image-93507" src="https://thenokiablog.com/wp-content/uploads/2025/02/aws-codebuild-for-macos-adds-support-for-fastlane-5.png" alt="Codebuild - succeed message" width="800" height="512"></p>
<p><strong><span>Pricing and availability</span><br></strong>Fastlane is now pre-installed at no extra cost on all macOS images that CodeBuild uses, in all Regions where CodeBuild for macOS is available. At the time of this writing, these are US East (Ohio, N. Virginia), US West (Oregon), Asia Pacific (Sydney), and Europe (Frankfurt).</p>
<p>In my experience, it takes a bit of time to configure <code>fastlane match</code> correctly. When it&rsquo;s configured, having it working on CodeBuild is pretty straightforward. Before trying this on CodeBuild, be sure it works on your local machine. When something goes wrong on CodeBuild, triple-check the values of the environment variables and make sure CodeBuild has access to your secrets on AWS Secrets Manager.</p>
<p>Now go build (on macOS)!</p>
<p>       <!-- '"` --></p>
<p>The post <a href="https://thenokiablog.com/aws-codebuild-for-macos-adds-support-for-fastlane/">AWS CodeBuild for macOS adds support for Fastlane</a> appeared first on <a href="https://thenokiablog.com">The NOKIA Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
