Running Flatcar Container Linux on AWS EC2

    The current AMIs for all Flatcar Container Linux channels and EC2 regions are listed below and updated frequently. Using CloudFormation is the easiest way to launch a cluster, but it is also possible to follow the manual steps at the end of the article. Questions can be directed to the Flatcar Container Linux IRC channel or user mailing list .

    Release retention time

    After publishing, releases will remain available as public AMIs on AWS for 9 months. AMIs older than 9 months will be un-published in regular garbage collection sweeps. Please note that this will not impact existing AWS instances that use those releases. However, deploying new instances (e.g. in autoscaling groups pinned to a specific AMI) will not be possible after the AMI was un-published.

    Choosing a channel

    Flatcar Container Linux is designed to be updated automatically with different schedules per channel. You can disable this feature , although we don’t recommend it. Read the release notes for specific features and bug fixes.

    The Alpha channel closely tracks master and is released frequently. The newest versions of system libraries and utilities will be available for testing. The current version is Flatcar Container Linux 2823.0.0.

    View as json feed: amd64 arm64
    EC2 Region AMI Type AMI ID CloudFormation
    ap-east-1 HVM (amd64) ami-08369502dbaeb3ad7 Launch Stack
    HVM (arm64) ami-0fe398a8a04b06427 Launch Stack
    ap-northeast-1 HVM (amd64) ami-0cf042f11bbde7345 Launch Stack
    HVM (arm64) ami-05e391d759b50ffb4 Launch Stack
    ap-northeast-2 HVM (amd64) ami-0bbf5b5ec6b3dce3a Launch Stack
    HVM (arm64) ami-002f1ec7cb9885a5f Launch Stack
    ap-south-1 HVM (amd64) ami-08d344f579f36f9e9 Launch Stack
    HVM (arm64) ami-0d1119d867060193b Launch Stack
    ap-southeast-1 HVM (amd64) ami-065974bb7d385cc9e Launch Stack
    HVM (arm64) ami-0a00f951d2e24aead Launch Stack
    ap-southeast-2 HVM (amd64) ami-04008b8b5a90b5adc Launch Stack
    HVM (arm64) ami-0eb185751fed8ea81 Launch Stack
    ca-central-1 HVM (amd64) ami-0c4880207043da1f2 Launch Stack
    HVM (arm64) ami-034e57d5b5efd5aae Launch Stack
    eu-central-1 HVM (amd64) ami-0d37bbb54be05a118 Launch Stack
    HVM (arm64) ami-0370868454c565b34 Launch Stack
    eu-north-1 HVM (amd64) ami-076819ed5674a1d26 Launch Stack
    HVM (arm64) ami-01cfe8babcdeb8acb Launch Stack
    eu-west-1 HVM (amd64) ami-00d2a71797b7fc010 Launch Stack
    HVM (arm64) ami-0be5bbdbb9d9a5f67 Launch Stack
    eu-west-2 HVM (amd64) ami-05d2813cf6621fc6a Launch Stack
    HVM (arm64) ami-05d9f3d879b62dffc Launch Stack
    eu-west-3 HVM (amd64) ami-0ed138b58448b0d0f Launch Stack
    HVM (arm64) ami-00949a5f96d98fff5 Launch Stack
    me-south-1 HVM (amd64) ami-04700ef0e67c8f8e6 Launch Stack
    HVM (arm64) ami-06a5def3b5d05a602 Launch Stack
    sa-east-1 HVM (amd64) ami-0f8df5ca089b8d048 Launch Stack
    HVM (arm64) ami-0beb1c4f22202c83f Launch Stack
    us-east-1 HVM (amd64) ami-09a1d378125110db3 Launch Stack
    HVM (arm64) ami-0f9812c141de39466 Launch Stack
    us-east-2 HVM (amd64) ami-0561106b7afe64b47 Launch Stack
    HVM (arm64) ami-0ceb3fbb2a5f1127d Launch Stack
    us-west-1 HVM (amd64) ami-07949d75fb133cced Launch Stack
    HVM (arm64) ami-0400e86ad407be549 Launch Stack
    us-west-2 HVM (amd64) ami-055f4fe0331d55c11 Launch Stack
    HVM (arm64) ami-04248abd2e4faf3dc Launch Stack

    The Beta channel consists of promoted Alpha releases. The current version is Flatcar Container Linux 2801.1.0.

    View as json feed: amd64
    EC2 Region AMI Type AMI ID CloudFormation
    ap-east-1 HVM (amd64) ami-050082ec2c22e87cf Launch Stack
    ap-northeast-1 HVM (amd64) ami-02c27bc75b958240a Launch Stack
    ap-northeast-2 HVM (amd64) ami-083cb9a61bfb4f062 Launch Stack
    ap-south-1 HVM (amd64) ami-0542dfb93e9379b64 Launch Stack
    ap-southeast-1 HVM (amd64) ami-04a453c1c047137a9 Launch Stack
    ap-southeast-2 HVM (amd64) ami-0aa90e09ab533a108 Launch Stack
    ca-central-1 HVM (amd64) ami-087ef3bb194599dd1 Launch Stack
    eu-central-1 HVM (amd64) ami-063baa00344fdfb6f Launch Stack
    eu-north-1 HVM (amd64) ami-0ac0b64853c77a577 Launch Stack
    eu-west-1 HVM (amd64) ami-0f94787d6477e8c4e Launch Stack
    eu-west-2 HVM (amd64) ami-055556a2509b0e6b8 Launch Stack
    eu-west-3 HVM (amd64) ami-0059b5118f51fa6c6 Launch Stack
    me-south-1 HVM (amd64) ami-054e5a169d6691e94 Launch Stack
    sa-east-1 HVM (amd64) ami-05412186ee670f459 Launch Stack
    us-east-1 HVM (amd64) ami-06818eed0078b0fb6 Launch Stack
    us-east-2 HVM (amd64) ami-004715aa694a5e678 Launch Stack
    us-west-1 HVM (amd64) ami-0b237a917b61da91f Launch Stack
    us-west-2 HVM (amd64) ami-017338dca9b507964 Launch Stack

    The Edge channel includes bleeding-edge features with the newest versions of the Linux kernel, systemd and other core packages. Can be highly unstable. The current version is Flatcar Container Linux 2466.99.0.

    EC2 Region AMI Type AMI ID CloudFormation
    ap-east-1 HVM (amd64) ami-0029ed2c00b284a95 Launch Stack
    HVM (arm64) ami-0cde7033fa6bcee17 Launch Stack
    ap-northeast-1 HVM (amd64) ami-03de4455102b2a92e Launch Stack
    HVM (arm64) ami-0a9ea66ee2b271587 Launch Stack
    ap-northeast-2 HVM (amd64) ami-0fa29269023d95001 Launch Stack
    HVM (arm64) ami-074cb3948a34017a0 Launch Stack
    ap-south-1 HVM (amd64) ami-0fb46b600f2aca4e1 Launch Stack
    HVM (arm64) ami-0ceaed7c9d0f87d45 Launch Stack
    ap-southeast-1 HVM (amd64) ami-0a6b32f389401c177 Launch Stack
    HVM (arm64) ami-0518d47f3b8b44d5b Launch Stack
    ap-southeast-2 HVM (amd64) ami-0412490cf5c6a15d3 Launch Stack
    HVM (arm64) ami-041e3a6cbb758958a Launch Stack
    ca-central-1 HVM (amd64) ami-076025e2f28c65607 Launch Stack
    HVM (arm64) ami-07fdb592799a132cf Launch Stack
    eu-central-1 HVM (amd64) ami-009f30f06e90a2962 Launch Stack
    HVM (arm64) ami-05fc26d5d73ca1f6b Launch Stack
    eu-north-1 HVM (amd64) ami-093a034857b0e19ae Launch Stack
    HVM (arm64) ami-0fd671b8a15ca5e0f Launch Stack
    eu-west-1 HVM (amd64) ami-0acd84e3d8e79c595 Launch Stack
    HVM (arm64) ami-00fca33bcd7f93826 Launch Stack
    eu-west-2 HVM (amd64) ami-0a844c6e6ed7e8591 Launch Stack
    HVM (arm64) ami-0ff13ff8623ef93f4 Launch Stack
    eu-west-3 HVM (amd64) ami-09bb22740c97e5fb0 Launch Stack
    HVM (arm64) ami-02b8b9c099f9868f9 Launch Stack
    me-south-1 HVM (amd64) ami-066ef9a0660b99958 Launch Stack
    HVM (arm64) ami-0d7a8f9f15c1e5234 Launch Stack
    sa-east-1 HVM (amd64) ami-0f1401074345667c6 Launch Stack
    HVM (arm64) ami-0de4279896aa46920 Launch Stack
    us-east-1 HVM (amd64) ami-0157dca117b3d3e5d Launch Stack
    HVM (arm64) ami-0422302ecc961671f Launch Stack
    us-east-2 HVM (amd64) ami-06f0a4868bcdfd485 Launch Stack
    HVM (arm64) ami-0a2b7312228a58f6c Launch Stack
    us-west-1 HVM (amd64) ami-081652cd66d10f632 Launch Stack
    HVM (arm64) ami-02bd3609d5a2b957a Launch Stack
    us-west-2 HVM (amd64) ami-053930c06131d49ad Launch Stack
    HVM (arm64) ami-0d8325578a3100869 Launch Stack

    The Stable channel should be used by production clusters. Versions of Flatcar Container Linux are battle-tested within the Beta and Alpha channels before being promoted. The current version is Flatcar Container Linux 2765.2.2.

    View as json feed: amd64
    EC2 Region AMI Type AMI ID CloudFormation
    ap-east-1 HVM (amd64) ami-08143d3c2b4edd3de Launch Stack
    ap-northeast-1 HVM (amd64) ami-0795df04242f10569 Launch Stack
    ap-northeast-2 HVM (amd64) ami-0cd250e377f035e38 Launch Stack
    ap-south-1 HVM (amd64) ami-092ef496893d0b2c7 Launch Stack
    ap-southeast-1 HVM (amd64) ami-0b1bdba8af4f2e2d6 Launch Stack
    ap-southeast-2 HVM (amd64) ami-036913e1339e2b7d4 Launch Stack
    ca-central-1 HVM (amd64) ami-0e6df7ef58fcfaa5d Launch Stack
    eu-central-1 HVM (amd64) ami-03c52ea5d6f9f7d37 Launch Stack
    eu-north-1 HVM (amd64) ami-0359c8b88220e81f2 Launch Stack
    eu-west-1 HVM (amd64) ami-023c3f828f1f53d52 Launch Stack
    eu-west-2 HVM (amd64) ami-0551d1417af39acc9 Launch Stack
    eu-west-3 HVM (amd64) ami-0c15b62ee506279a5 Launch Stack
    me-south-1 HVM (amd64) ami-0ecc8f9014468b96d Launch Stack
    sa-east-1 HVM (amd64) ami-04879f2240402da1b Launch Stack
    us-east-1 HVM (amd64) ami-0af56e57b9765d6b0 Launch Stack
    us-east-2 HVM (amd64) ami-09207b4b2c351fadc Launch Stack
    us-west-1 HVM (amd64) ami-082b6b073b0d596b9 Launch Stack
    us-west-2 HVM (amd64) ami-02b46c73fed689d1c Launch Stack

    AWS China AMIs maintained by Giant Swarm

    The following AMIs are not part of the official Flatcar Container Linux release process and may lag behind (query version).

    View as json feed: amd64
    EC2 Region AMI Type AMI ID CloudFormation
    cn-north-1 HVM (amd64) ami-0362ea42049a5e40d Launch Stack
    cn-northwest-1 HVM (amd64) ami-0947dd3d77312ab18 Launch Stack

    CloudFormation will launch a cluster of Flatcar Container Linux machines with a security and autoscaling group.

    Container Linux Configs

    Flatcar Container Linux allows you to configure machine parameters, configure networking, launch systemd units on startup, and more via Container Linux Configs. These configs are then transpiled into Ignition configs and given to booting machines. Head over to the docs to learn about the supported features .

    You can provide a raw Ignition config to Flatcar Container Linux via the Amazon web console or via the EC2 API .

    As an example, this Container Linux Config will configure and start etcd:

    etcd:
      # All options get passed as command line flags to etcd.
      # Any information inside curly braces comes from the machine at boot time.
    
      # multi_region and multi_cloud deployments need to use {PUBLIC_IPV4}
      advertise_client_urls:       "http://{PRIVATE_IPV4}:2379"
      initial_advertise_peer_urls: "http://{PRIVATE_IPV4}:2380"
      # listen on both the official ports and the legacy ports
      # legacy ports can be omitted if your application doesn't depend on them
      listen_client_urls:          "http://0.0.0.0:2379"
      listen_peer_urls:            "http://{PRIVATE_IPV4}:2380"
      # generate a new token for each unique cluster from https://discovery.etcd.io/new?size=3
      # specify the initial size of your cluster with ?size=X
      discovery:                   "https://discovery.etcd.io/<token>"
    

    Instance storage

    Ephemeral disks and additional EBS volumes attached to instances can be mounted with a .mount unit. Amazon’s block storage devices are attached differently depending on the instance type . Here’s the Container Linux Config to format and mount the first ephemeral disk, xvdb, on most instance types:

    storage:
      filesystems:
        - mount:
            device: /dev/xvdb
            format: ext4
            wipe_filesystem: true
    
    systemd:
      units:
        - name: media-ephemeral.mount
          enable: true
          contents: |
            [Mount]
            What=/dev/xvdb
            Where=/media/ephemeral
            Type=ext4
    
            [Install]
            RequiredBy=local-fs.target
    

    For more information about mounting storage, Amazon’s own documentation is the best source. You can also read about mounting storage on Flatcar Container Linux .

    Adding more machines

    To add more instances to the cluster, just launch more with the same Container Linux Config, the appropriate security group and the AMI for that region. New instances will join the cluster regardless of region if the security groups are configured correctly.

    SSH to your instances

    Flatcar Container Linux is set up to be a little more secure than other cloud images. By default, it uses the core user instead of root and doesn’t use a password for authentication. You’ll need to add an SSH key(s) via the AWS console or add keys/passwords via your Container Linux Config in order to log in.

    To connect to an instance after it’s created, run:

    ssh [email protected]<ip address>
    

    Multiple clusters

    If you would like to create multiple clusters you will need to change the “Stack Name”. You can find the direct template file on S3 .

    Manual setup

    TL;DR: launch three instances of ami-09a1d378125110db3 (amd64) in us-east-1 with a security group that has open port 22, 2379, 2380, 4001, and 7001 and the same “User Data” of each host. SSH uses the core user and you have etcd and Docker to play with.

    Creating the security group

    You need open port 2379, 2380, 7001 and 4001 between servers in the etcd cluster. Step by step instructions below.

    Note: This step is only needed once

    First we need to create a security group to allow Flatcar Container Linux instances to communicate with one another.

    1. Go to the security group page in the EC2 console.
    2. Click “Create Security Group”
      • Name: flatcar-testing
      • Description: Flatcar Container Linux instances
      • VPC: No VPC
      • Click: “Yes, Create”
    3. In the details of the security group, click the Inbound tab
    4. First, create a security group rule for SSH
      • Create a new rule: SSH
      • Source: 0.0.0.0/0
      • Click: “Add Rule”
    5. Add two security group rules for etcd communication
      • Create a new rule: Custom TCP rule
      • Port range: 2379
      • Source: type “flatcar-testing” until your security group auto-completes. Should be something like “sg-8d4feabc”
      • Click: “Add Rule”
      • Repeat this process for port range 2380, 4001 and 7001 as well
    6. Click “Apply Rule Changes”

    Launching a test cluster

    We will be launching three instances, with a few parameters in the User Data, and selecting our security group.

    1. {% for region in site.data.alpha_channel.amis %} {% if region.name == 'us-east-1' %} Open the quick launch wizard to boot {{region.hvm}} (amd64). {% endif %} {% endfor %}
    2. On the second page of the wizard, launch 3 servers to test our clustering
      • Number of instances: 3
      • Click "Continue"
    3. Next, we need to specify a discovery URL, which contains a unique token that allows us to find other hosts in our cluster. If you're launching your first machine, generate one at https://discovery.etcd.io/new?size=3, configure the `?size=` to your initial cluster size and add it to the metadata. You should re-use this key for each machine in the cluster.
    4. Use ct to convert the following configuration into an Ignition config, and back in the EC2 dashboard, paste it into the "User Data" field. ```yaml etcd: # All options get passed as command line flags to etcd. # Any information inside curly braces comes from the machine at boot time.
              # multi_region and multi_cloud deployments need to use {PUBLIC_IPV4}
              advertise_client_urls:       "http://{PRIVATE_IPV4}:2379"
              initial_advertise_peer_urls: "http://{PRIVATE_IPV4}:2380"
              # listen on both the official ports and the legacy ports
              # legacy ports can be omitted if your application doesn't depend on them
              listen_client_urls:          "http://0.0.0.0:2379"
              listen_peer_urls:            "http://{PRIVATE_IPV4}:2380"
              # generate a new token for each unique cluster from https://discovery.etcd.io/new?size=3
              # specify the initial size of your cluster with ?size=X
              discovery:                   "https://discovery.etcd.io/<token>"
            ```
            <ul>
              <li>Paste configuration into "User Data"</li>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Storage Configuration
            <ul>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Tags
            <ul>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Create Key Pair
            <ul>
              <li>Choose a key of your choice, it will be added in addition to the one in the gist.</li>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Choose one or more of your existing Security Groups
            <ul>
              <li>"flatcar-testing" as above.</li>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Launch!
          </li>
        </ol>
      </div>
      <div class="tab-pane" id="beta-manual">
        <p>We will be launching three instances, with a few parameters in the User Data, and selecting our security group.</p>
        <ol>
          <li>
          {% for region in site.data.beta_channel.amis %}
            {% if region.name == 'us-east-1' %}
              Open the <a href="https://console.aws.amazon.com/ec2/home?region={{region.name}}#launchAmi={{region.hvm}}" target="_blank">quick launch wizard</a> to boot {{region.hvm}} (amd64).
            {% endif %}
          {% endfor %}
          </li>
          <li>
            On the second page of the wizard, launch 3 servers to test our clustering
            <ul>
              <li>Number of instances: 3</li>
              <li>Click "Continue"</li>
            </ul>
          </li>
          <li>
            Next, we need to specify a discovery URL, which contains a unique token that allows us to find other hosts in our cluster. If you're launching your first machine, generate one at <a href="https://discovery.etcd.io/new?size=3">https://discovery.etcd.io/new?size=3</a>, configure the `?size=` to your initial cluster size and add it to the metadata. You should re-use this key for each machine in the cluster.
          </li>
          <li>
            Use <a href="provisioning">ct</a> to convert the following configuration into an Ignition config, and back in the EC2 dashboard, paste it into the "User Data" field.
            ```yaml
            etcd:
              # All options get passed as command line flags to etcd.
              # Any information inside curly braces comes from the machine at boot time.
      
              # multi_region and multi_cloud deployments need to use {PUBLIC_IPV4}
              advertise_client_urls:       "http://{PRIVATE_IPV4}:2379"
              initial_advertise_peer_urls: "http://{PRIVATE_IPV4}:2380"
              # listen on both the official ports and the legacy ports
              # legacy ports can be omitted if your application doesn't depend on them
              listen_client_urls:          "http://0.0.0.0:2379"
              listen_peer_urls:            "http://{PRIVATE_IPV4}:2380"
              # generate a new token for each unique cluster from https://discovery.etcd.io/new?size=3
              # specify the initial size of your cluster with ?size=X
              discovery:                   "https://discovery.etcd.io/<token>"
            ```
            <ul>
              <li>Paste configuration into "User Data"</li>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Storage Configuration
            <ul>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Tags
            <ul>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Create Key Pair
            <ul>
              <li>Choose a key of your choice, it will be added in addition to the one in the gist.</li>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Choose one or more of your existing Security Groups
            <ul>
              <li>"flatcar-testing" as above.</li>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Launch!
          </li>
        </ol>
      </div>
      <div class="tab-pane active" id="stable-manual">
        <p>We will be launching three instances, with a few parameters in the User Data, and selecting our security group.</p>
        <ol>
          <li>
          {% for region in site.data.stable_channel.amis %}
            {% if region.name == 'us-east-1' %}
              Open the <a href="https://console.aws.amazon.com/ec2/home?region={{region.name}}#launchAmi={{region.hvm}}" target="_blank">quick launch wizard</a> to boot {{region.hvm}} (amd64).
            {% endif %}
          {% endfor %}
          </li>
          <li>
            On the second page of the wizard, launch 3 servers to test our clustering
            <ul>
              <li>Number of instances: 3</li>
              <li>Click "Continue"</li>
            </ul>
          </li>
          <li>
            Next, we need to specify a discovery URL, which contains a unique token that allows us to find other hosts in our cluster. If you're launching your first machine, generate one at <a href="https://discovery.etcd.io/new?size=3">https://discovery.etcd.io/new?size=3</a>, configure the `?size=` to your initial cluster size and add it to the metadata. You should re-use this key for each machine in the cluster.
          </li>
          <li>
            Use <a href="https://docs.flatcar-linux.org/os/provisioning/#config-transpiler">ct</a> to convert the following configuration into an Ignition config, and back in the EC2 dashboard, paste it into the "User Data" field.
            ```yaml
            etcd:
              # All options get passed as command line flags to etcd.
              # Any information inside curly braces comes from the machine at boot time.
      
              # multi_region and multi_cloud deployments need to use {PUBLIC_IPV4}
              advertise_client_urls:       "http://{PRIVATE_IPV4}:2379"
              initial_advertise_peer_urls: "http://{PRIVATE_IPV4}:2380"
              # listen on both the official ports and the legacy ports
              # legacy ports can be omitted if your application doesn't depend on them
              listen_client_urls:          "http://0.0.0.0:2379"
              listen_peer_urls:            "http://{PRIVATE_IPV4}:2380"
              # generate a new token for each unique cluster from https://discovery.etcd.io/new?size=3
              # specify the initial size of your cluster with ?size=X
              discovery:                   "https://discovery.etcd.io/<token>"
            ```
            <ul>
              <li>Paste configuration into "User Data"</li>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Storage Configuration
            <ul>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Tags
            <ul>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Create Key Pair
            <ul>
              <li>Choose a key of your choice, it will be added in addition to the one in the gist.</li>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Choose one or more of your existing Security Groups
            <ul>
              <li>"flatcar-testing" as above.</li>
              <li>"Continue"</li>
            </ul>
          </li>
          <li>
            Launch!
          </li>
        </ol>
      </div>
      

    Installation from a VMDK image

    One of the possible ways of installation is to import the generated VMDK Flatcar image as a snapshot. The image file will be in https://${CHANNEL}.release.flatcar-linux.net/${ARCH}-usr/${VERSION}/flatcar_production_ami_vmdk_image.vmdk.bz2. Make sure you download the signature (it’s available in https://${CHANNEL}.release.flatcar-linux.net/${ARCH}-usr/${VERSION}/flatcar_production_ami_vmdk_image.vmdk.bz2.sig) and check it before proceeding.

    $ wget https://alpha.release.flatcar-linux.net/amd64-usr/current/flatcar_production_ami_vmdk_image.vmdk.bz2
    $ wget https://alpha.release.flatcar-linux.net/amd64-usr/current/flatcar_production_ami_vmdk_image.vmdk.bz2.sig
    $ gpg --verify flatcar_production_ami_vmdk_image.vmdk.bz2.sig
    gpg: assuming signed data in 'flatcar_production_ami_vmdk_image.vmdk.bz2'
    gpg: Signature made Thu 15 Mar 2018 10:27:57 AM CET
    gpg:                using RSA key A621F1DA96C93C639506832D603443A1D0FC498C
    gpg: Good signature from "Flatcar Buildbot (Official Builds) <[email protected]>" [ultimate]
    

    Then, follow the instructions in Importing a Disk as a Snapshot Using VM Import/Export . You’ll need to upload the uncompressed vmdk file to S3.

    After the snapshot is imported, you can go to “Snapshots” in the EC2 dashboard, and generate an AMI image from it. To make it work, use /dev/sda2 as the “Root device name” and you probably want to select “Hardware-assisted virtualization” as “Virtualization type”.

    Using Flatcar Container Linux

    Now that you have a machine booted it is time to play around. Check out the Flatcar Container Linux Quickstart guide or dig into more specific topics .