プライベートなコンテナイメージを Amazon Lightsailで使う

前提

・ローカルにプライベートなDockerイメージが作成済であること ・AWS CLIがインストールされていること ・lightsailctl プラグインがインストールされていること

手順

IAMを作成する

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "lightsail:CreateContainerServiceRegistryLogin",
                "lightsail:RegisterContainerImage"
            ],
            "Resource": "*"
        }
    ]
}

AWSコンソールからLigthsailのコンテナを作成する

プライベートなコンテナイメージを動作させるためのコンテナを事前に作成しておく必要がある ここではあらかじめ用意されているサンプル(helloworld)イメージで作成

Lightsail作成画面1
Lightsail作成画面2
Lightsail作成画面3

ローカルPCからプライベートなコンテナイメージをプッシュ

例)
aws lightsail push-container-image --region <Region>  --service-name <ContainerServiceName> --label <ContainerImageLabel> --image <LocalContainerImageName>:<ImageTag>
C:\>aws lightsail push-container-image --region ap-northeast-1 --service-name container-service-1 --label testlabel --image vue-lightsail-sample:latest
WARNING: You are using version 1.0.0 of lightsailctl, but version  is available. To download, visit https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-install-software

[1B91e2ecca: Preparing
[1B05b757d2: Preparing
[1B697b6f38: Preparing
[1Bd149735d: Preparing
[1B3049c5e5: Preparing
[1B846bc438: Preparing
[1B8b32331d: Preparing
[1B00332834: Preparing
[1Bfd1e3667: Preparing
[1B157cbca7: Preparing
[7BDigest: sha256:12888b3911787a225d01127a4faa83c50d6d9e2e1eda8256c0c900a6851ccf52B/216.4MB
Image "vue-lightsail-sample:latest" registered.
Refer to this image as ":container-service-1.testlabel.1" in deployments.

プッシュに成功すると、Lightsail コンソールのImagesタブにプッシュしたイメージが表示される

デプロイ

Lightsail コンソールのDeploymentsタブからModify your deploymentをクリックし、Choose stored imageからプッシュしたイメージを選択

※コンテナで動作するアプリケーションのポートに合わせてポートを指定しないとエラーが発生した

参考

プライベートなコンテナイメージを Amazon Lightsail コンテナサービスで使う | DevelopersIO

Docker for Windows で作成したコンテナは、プライベートなので Amazon Lightsail コンテナにデプロイできないから、対応した記録 - Qiita