Amazon Lightsail にコンテナをデプロイして管理する - Amazon Lightsail

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Lightsail にコンテナをデプロイして管理する

Amazon Lightsail コンテナサービスは、高度スケーラブルコンピューティングとネットワークリソースで、コンテナをデプロイ、実行、管理することができます。コンテナは、コードとその依存関係をパッケージ化するソフトウェアのスタンダード単位で、アプリケーションが 1 つのコンピューティング環境から別のコンピューティング環境に迅速かつ確実に実行します。

Lightsail コンテナサービスをコンピューティング環境として提供し、AWS インフラストラクチャで、ローカルマシーンで作成したイメージ、あるいはオンラインリポジトリ、Amazon ECR Public Gallery からのイメージを使用してサービスにプッシュすることで、コンテナを実行するものであると考えてください。

Docker などのソフトウェアをインストールすることで、ローカルマシン上でコンテナをローカルで実行することもできます。Amazon Elastic Container Service (Amazon ECS) と Amazon Elastic Compute Cloud (Amazon EC2) は、コンテナを実行できる AWS インフラストラクチャ内の別のリソースです。詳細については、Amazon ECS 開発者ガイドを参照してください。

目次

コンテナ

コンテナは、コードと依存関係をパッケージ化するソフトウェアのスタンダード単位で、1 つのコンピューティング環境から別のコンピューティング環境へアプリケーションを迅速かつ確実に実行します。開発環境でコンテナを実行し、本番稼働前環境にデプロイしてから、本稼働環境にデプロイできます。開発環境がローカルマシンであるか、本番稼働前環境がデータセンターの物理サーバーであるか、運用環境がクラウドのバーチャルプライベートサーバーであるかにかかわらず、コンテナは確実に実行されます。

コンテナイメージは軽量で、スタンドアローンで実行可能な、アプリケーションの実行に必要なもの (コード、ランタイム、システムツール、システムライブラリ、設定) が全て含まれるソフトウェアのパッケージです。コンテナイメージは、ランタイム時にコンテナになります。アプリケーションとその依存関係をコンテナ化することで、ソフトウェアをデプロイするオペレーティングシステムとインフラストラクチャ上で正しく動作するかどうかを心配する必要がなくなり、コードに集中する時間を増やすことができます。

コンテナとコンテナイメージの詳細については、Docker ドキュメントの「コンテナとは」を参照してください。

Lightsail コンテナサービスの要素

Lightsail コンテナサービスの使用を開始する前に、以下の主な要素を理解しておく必要があります。

Lightsail コンテナサービス

コンテナサービスは、Lightsail コンピューティングリソースで、Lightsail が使用可能な AWS リージョン で作成できます。コンテナサービスは、いつでも作成および削除できます。詳細については、「Lightsail コンテナサービスを作成する」および「Lightsail コンテナサービスを削除する」を参照してください。

Lightsail コンテナサービスの図

コンテナサービス容量 (スケールとパワー)

コンテナサービスを最初に作成するときは、以下の容量パラメータを選択する必要があります。

  • スケール — コンテナのワークロードを実行するコンピューティングノードの数です。コンテナのワークロードは、サービスのコンピューティングノード間でコピーされます。コンテナサービスには最大 20 のコンピューティングノードを指定できます。可用性と容量を向上させるために、サービスを強化させるノードの数に応じてスケールを選択します。コンテナへのトラフィックは、ノード全体にロードバランスされます。

  • パワー — コンテナサービス内の各ノードのメモリと vCPUs です。選択できるパワーは、Nano (Na)、Micro (Mi)、Small (Sm)、Medium (Md)、Large (Lg)、Xlarge (Xl) で、それぞれメモリと vCPUs の容量が徐々に大きくなっています。

コンテナサービスのスケールを 1 より大きく指定すると、コンテナワークロードはサービスの複数のコンピューティングノードにコピーされます。例えば、サービスのスケールが 3 で、パワーが Nano の場合、コンテナワークロードのコピーが 3 つあり、それぞれ 512 MB の RAM と 0.25 の vCPUs を持つ 3 つのコンピューティングリソースで実行されています。受信トラフィックは、3 つのリソース間でロードバランスされます。コンテナサービスに指定する容量が大きいほど、処理できるトラフィックが増えます。

プロビジョニングが不十分であることがわかった場合、コンテナサービスのパワーとスケールはダウンタイムなしでいつでも動的に増加でき、過剰な場合は減少することもできます。Lightsail は、現在のデプロイメントに合わせて容量の変更を自動的に管理します。詳細については、「コンテナサービスの容量を変更する」を参照してください。

料金

コンテナサービスの月額料金は、そのパワーの価格にコンピューティングノード数 (サービスのスケール) を乗算して計算されます。例えば、ミディアムパワーのサービスの価格が 40 USD、コンピューティングノードが 3 である場合、1 か月あたり 120 USD になります。コンテナサービスが有効か無効か、デプロイがあるかどうかに関わらず、コンテナサービスに対して課金されます。コンテナサービスの課金を停止するには、コンテナサービスを削除する必要があります。

各コンテナサービスには、設定された容量に関係なく、500 GB の月次データ転送クォータが含まれます。データ転送クォータは、選択したサービスのパワーとスケールに関わらず変更されることはありません。クォータを超えるデータをインターネットに転送すると、AWS リージョン によって異なる超過料金が、1 GB あたり 0.09 USD から発生します。クォータを超過したインターネットからのデータ転送には、超過料金が発生しません。詳細については、Lightsail 料金表ページを参照してください。

デプロイ

Lightsail コンテナサービスでデプロイを作成できます。デプロイは、サービスで起動するコンテナワークロードの仕様のセットです。

デプロイ内の各コンテナエントリに対して、以下のパラメータを指定できます。

  • 起動されるコンテナ名

  • コンテナで使用するソースコンテナイメージ

  • コンテナの起動時に実行するコマンド

  • コンテナに適用する環境可変

  • コンテナで開くネットワークポート

  • コンテナサービスのデフォルトドメインを介してパブリックにアクセスできるようにする、デプロイ内のコンテナ

    注記

    デプロイ内の 1 つのコンテナのみが、各コンテナサービスに対してパブリックにアクセス可能にすることができます。

次のヘルスチェックパラメータは、デプロイの起動後にデプロイのパブリックエンドポイントに適用されます。

  • ヘルスチェックを実行するディレクトリパス。

  • 間隔秒、タイムアウト秒、成功コード、正常しきい値、異常しきい値など、ヘルスチェックの高度な設定。

コンテナサービスは、一度に 1 つのアクティブなデプロイを持つことができ、デプロイは最大 10 個のコンテナエントリを持つことができます。デプロイは、コンテナサービスの作成と同時に作成する、あるいはサービスが起動され実行されてから作成することができます。詳細については、「コンテナサービスのデプロイの作成と管理」を参照してください。

デプロイバージョン

コンテナサービスで作成するすべてのデプロイは、デプロイバージョンとして保存されます。既存のデプロイのパラメータを変更すると、コンテナがサービスに再デプロイされ、デプロイが変更された場合は新しいデプロイバージョンが作成されます。各コンテナサービスの最新の 50 のデプロイバージョンが保存されます。50 のデプロイバージョンのいずれかを使用して、新しいデプロイを同じコンテナに作成できます。詳細については、「コンテナサービスのデプロイの作成と管理」を参照してください。

コンテナイメージソース

デプロイを作成するときは、デプロイ内の各コンテナエントリにソースコンテナイメージを指定する必要があります。デプロイを作成した直後に、コンテナサービスは指定したソースからイメージを取り出し、それらを使用してコンテナを作成します。

以下のソースから指定してイメージを取り出せます。

Lightsail コンテナサービスは、Linux ベースのコンテナイメージをサポートしています。Windows ベースのコンテナイメージは現在サポートされていませんが、Docker、AWS Command Line Interface (AWS CLI)、および Lightsail Control (lightsailctl) プラグインを Windows で実行することで、Linux ベースのイメージを構築して Lightsail コンテナサービスにプッシュできます。

コンテナサービス ARN

Amazon リソースネーム (ARN) は、AWS リソースを一意に識別します。IAM ポリシー、API コールなど、明らかにすべての AWS に渡るリソースを指定する必要がある場合、ARN が必要です。

コンテナサービスの ARN を取得するには、GetContainerServices Lightsail API アクションを使用し、serviceName パラメータを使用してコンテナサービスの名前を指定します。コンテナサービス ARN は、次の例に示すように、そのアクションの結果に一覧表示されます。詳細については、「Amazon Lightsail API Reference」のGetContainerServices」を参照してください。

結果は次のように表示されます:

{ "containerServices": [ { "containerServiceName": "container-service-1", "arn": "arn:aws:lightsail: :111122223333:ContainerService/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "createdAt": "2024-01-01T00:00:00+00:00", "location": { "availabilityZone": "all", "regionName": "us-west-2" }, ..... }

パブリックエンドポイントとデフォルトドメイン

デプロイを作成するときに、コンテナサービスのパブリックエンドポイントとして機能するデプロイ内のコンテナエントリを指定できます。パブリックエンドポイントコンテナ上のアプリケーションは、コンテナサービスのランダムに生成されたデフォルトドメインを介して、インターネット上でパブリックにアクセスできます。デフォルトのドメインは https://<ServiceName>.<RandomGUID>.<AWSRegion>.cs.amazonlightsail.com 形式です。<ServiceName> はコンテナサービスの名前、<RandomGUID> は Lightsail アカウント用に AWS リージョン でランダムに生成されたグローバルに一意のコンテナサービスの識別子、<AWSRegion> はコンテナサービスが作成された AWS リージョン です。Lightsail コンテナサービスのパブリックエンドポイントは HTTPS のみをサポートし、TCP または UDP トラフィックはサポートされていません。サービスのパブリックエンドポイントにできるコンテナは 1 つだけです。したがって、アプリケーションのフロントエンドをホストしているコンテナをパブリックエンドポイントとして選択し、残りのコンテナは内部的にアクセス可能であることを確認してください。

コンテナサービスのデフォルトドメインか、独自のカスタムドメイン (登録されたドメイン名) を使用できます。コンテナサービスでのカスタムドメインの使用の詳細については、「コンテナサービスでカスタムドメインを有効にして管理する」を参照してください。

プライベートドメイン

また、すべてのコンテナサービスは、プライベートドメインを保持していて、<ServiceName>.service.local にフォーマットされており<ServiceName>はコンテナサービスの名前です。プライベートドメインを使用して、サービスと同じ AWS リージョンにある別の Lightsail リソースからコンテナサービスにアクセスします。プライベートドメインは、サービスのデプロイメントでパブリックエンドポイントを指定しない場合、コンテナサービスにアクセスする唯一の方法です。パブリックエンドポイントを指定しなくても、コンテナサービスに対してデフォルトのドメインが生成されますが、観覧しようとすると、404 No Such Service エラーメッセージが表示されます。

コンテナサービスのプライベートドメインを使用して特定のコンテナにアクセスするには、接続要求を受け入れるコンテナのオープンポートを指定する必要があります。これを実行するには、リクエストのドメインを<ServiceName>.service.local:<PortNumber> にフォーマットし、この中で<ServiceName>はコンテナサービスの名前、<PortNumber>は、接続したいコンテナのオープンポートです。例えば、コンテナサービスにデプロイcontainer-service-1 を作成し、Redis コンテナを指定してポート 6379 が開いている場合は、リクエストのドメインをcontainer-service-1.service.local:6379 にフォーマットします。

カスタムドメインと SSL/TLS 証明書

デフォルトドメインを使用する代わりに、コンテナサービスでカスタムドメインを最大 4 つ使用できます。例えば、カスタムドメインのトラフィックを、example.com のようにパブリックエンドポイントとしてラベル付けされたデプロイ内のコンテナにルーティングできます。

カスタムドメインをサービスで使用するには、まず、使用するドメインの SSL/TLS 証明書をリクエストする必要があります。その後、ドメインの DNS に CNAME レコードのセットを追加して、SSL/TLS 証明書を検証する必要があります。SSL/TLS 証明書の検証した後、有効な SSL/TLS 証明書をサービスに添付して、コンテナサービスでカスタムドメインを有効化します。詳細については、「Lightsail コンテナサービスの SSL/TLS 証明書を作成する」、「Lightsail コンテナサービスの SSL/TLS 証明書を検証する」、および「Lightsail コンテナサービスでカスタムドメインを有効にして管理する」を参照してください。

コンテナログ

コンテナサービスのすべてのコンテナは、コンテナのオペレーションを診断するためにアクセスできるログを生成します。ログは、コンテナ内で実行されている stdout および stderr にプロセスの流れを提供します。詳細については、「コンテナサービスログを表示する」を参照してください。

メトリクス

コンテナサービスのメトリックスをモニタリングして、過剰使用が原因の可能性とする問題を診断します。メトリックスをモニタリングして、サービスのプロビジョニングが不足していないか、あるいは過剰にプロビジョニングされているかを判断することもできます。詳細については、「コンテナサービスメトリクスを表示する」を参照してください。

Lightsail コンテナサービスを使用する

ローカルマシーンからサービスにイメージをプッシュしてデプロイで使用する場合の一般的な Lightsail コンテナサービスの管理手順は以下になります。

  1. Lightsail アカウントにコンテナサービスを作成する。詳細については、「Lightsail コンテナサービスを作成する」を参照してください。

  2. ローカルマシンにソフトウェアをインストールし、独自のコンテナイメージを作成し、Lightsail コンテナサービスにプッシュします。詳細については、詳細を参照して、以下のガイドラインを参照してください。

  3. コンテナを設定して起動するデプロイをコンテナサービス内に作成します。詳細については、「Lightsail コンテナサービスのデプロイを作成して管理する」を参照してください。

  4. コンテナサービスの以前のデプロイを表示します。以前のデプロイ バージョンを使用して、新しいデプロイを作成できます。詳細については、「Lightsail コンテナサービスのデプロイバージョンを表示して管理する」を参照してください。

  5. コンテナサービスのコンテナのログを表示します。詳細については、「Lightsail コンテナサービスのコンテナログを表示する」を参照してください。

  6. コンテナで使用するドメイン用の SSL/TLS 証明書を作成します。詳細については、「Lightsail コンテナサービスの SSL/TLS 証明書を作成する」を参照してください。

  7. ドメインの DNS にレコードを追加して、SSL/TLS 証明書を検証します。詳細については、「Lightsail コンテナサービスの SSL/TLS 証明書を検証する」を参照してください。

  8. 有効な SSL/TLS 証明書をコンテナサービスに添付して、カスタムドメインを有効にします。詳細については、「Lightsail コンテナサービスのカスタムドメインを有効にして管理する」を参照してください。

  9. コンテナサービスの使用状況メトリクスをモニタリングします。詳細については、「コンテナサービスメトリクスを表示する」を参照してください。

  10. (オプション) パワースペックを垂直方向に増やし、スケールスペックを水平方向に増やして、コンテナサービスの容量をスケールします。詳細については、「Lightsail コンテナサービスの容量を変更する」を参照してください。

  11. コンテナサービスを使用していない場合は、月額料金が発生しないようにコンテナサービスを削除します。詳細については、「Lightsail コンテナサービスを削除する」を参照してください。

パブリックレジストリからのコンテナイメージをデプロイで使用する場合、Lightsail コンテナサービスの一般的な管理手順は以下になります。

  1. Lightsail アカウントにコンテナサービスを作成する。詳細については、「Lightsail コンテナサービスを作成する」を参照してください。

  2. 公開レジストリからのコンテナイメージを使用する場合は、Amazon ECR Public Gallery などの公開レジストリから使用するコンテナイメージを探します。Amazon ECR Public の詳細については、「Amazon ECR Public ユーザーガイド」の「Amazon Elastic Container Registry Public とは?」を参照してください。

  3. コンテナを設定して起動するデプロイをコンテナサービス内に作成します。詳細については、「Lightsail コンテナサービスのデプロイを作成して管理する」を参照してください。

  4. コンテナサービスの以前のデプロイを表示します。以前のデプロイ バージョンを使用して、新しいデプロイを作成できます。詳細については、「Lightsail コンテナサービスのデプロイバージョンを表示して管理する」を参照してください。

  5. コンテナサービスのコンテナのログを表示します。詳細については、「Lightsail コンテナサービスのコンテナログを表示する」を参照してください。

  6. コンテナで使用するドメイン用の SSL/TLS 証明書を作成します。詳細については、「Lightsail コンテナサービスの SSL/TLS 証明書を作成する」を参照してください。

  7. ドメインの DNS にレコードを追加して、SSL/TLS 証明書を検証します。詳細については、「Lightsail コンテナサービスの SSL/TLS 証明書を検証する」を参照してください。

  8. 有効な SSL/TLS 証明書をコンテナサービスに添付して、カスタムドメインを有効にします。詳細については、「Lightsail コンテナサービスのカスタムドメインを有効にして管理する」を参照してください。

  9. コンテナサービスの使用状況メトリクスをモニタリングします。詳細については、「コンテナサービスメトリクスを表示する」を参照してください。

  10. (オプション) パワースペックを垂直方向に増やし、スケールスペックを水平方向に増やして、コンテナサービスの容量をスケールします。詳細については、「Lightsail コンテナサービスの容量を変更する」を参照してください。

  11. コンテナサービスを使用していない場合は、月額料金が発生しないようにコンテナサービスを削除します。詳細については、「Lightsail コンテナサービスを削除する」を参照してください。