‹ 概要 に戻る

Amazon Lightsail のコンテナサービス

tl;dr

Amazon Lightsail コンテナサービスは、Docker イメージをデプロイできるコンピューティングリソースです。イメージを Lightsail コンテナサービスにデプロイすると、サービスは自動的に AWS インフラストラクチャのコンテナに起動して実行します。コンテナは、コードと依存関係をパッケージ化するソフトウェアのスタンダード単位で、1 つのコンピューティング環境から別のコンピューティング環境へアプリケーションを迅速かつ確実に実行します。

最終更新日: 2021 年 11 月 1 日

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 リージョンで作成できます。コンテナサービスは、いつでも作成および削除できます。詳細については、Amazon Lightsail コンテナサービスの作成およびAmazon Lightsail コンテナサービスの削除を参照してください。

Lighstail コンテナサービス図表

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

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

  • スケール — コンテナのワークロードを実行するコンピューティングノードの数です。コンテナのワークロードは、サービスのコンピューティングノード間でコピーされます。コンテナサービスには最大 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 は、現在のデプロイとともに容量の変更を自動的に管理します。詳細については、「Amazon Lightsail コンテナサービスの容量の変更」を参照してください。

料金

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

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

デプロイ

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

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

  • 起動されるコンテナ名

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

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

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

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

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

    注意

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

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

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

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

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

デプロイバージョン

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

コンテナイメージソース

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

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

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

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

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

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

プライベートドメイン

また、すべてのコンテナサービスは、プライベートドメインを保持していて、<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 証明書をサービスに添付して、コンテナサービスでカスタムドメインを有効化します。詳細については、Amazon Lightsail コンテナサービスの SSL/TLS 証明書を作成するAmazon Lightsail コンテナサービスの SSL/TLS 証明書の検証、およびAmazon Lightsail コンテナサービスでカスタムドメインを作成して管理するを参照してください。

コンテナログ

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

メトリクス

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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