クラウドとコンテナの基礎

CI/CDのパイプラインで作ったコンテナイメージを、ステージング環境で試験し、合格した。このイメージを本番環境に出す方法として、最も適切なものはどれか。

  1. A本番用に、同じソースコードからイメージをもう一度ビルドし、それを本番環境に出す
  2. B試験したイメージに latest のタグを付け直し、本番環境では latest を指定して取得する
  3. C試験したイメージそのものをダイジェストで指定して本番環境に出し、環境ごとの違いは設定で与える
答えと解説を見る

正解:C. 試験したイメージそのものをダイジェストで指定して本番環境に出し、環境ごとの違いは設定で与える

パイプラインでは、ビルドで作った成果物(ここではイメージ)を変更しないものとして扱い、同じものをステージングから本番へと順に進めます。同じソースコードでも、ビルドし直すと、依存するライブラリやベースイメージの版が変わることがあり、試験したものと違うものが本番に出てしまいます。タグは後から別のイメージに付け替えられるので、確実に同じイメージを指すには、中身から決まるダイジェストを使います。接続先のような環境ごとの違いは、イメージに入れずに、環境変数などの設定で与えます。

  • A. ビルドし直すと、依存するライブラリなどが変わり、試験したものと違うイメージになるおそれがあります。
  • B. latest は付け替えられるタグなので、取得するときに別のイメージを指している可能性があります。
  • C. 正しい。試験したものと同じイメージが本番に出ることを、ダイジェストで保証します。
この分野を解く 分野ページへ

クラウドとコンテナの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

クラウドとコンテナの基礎のほかの問題

  1. 上のように、データベースの接続先をイメージに書き込まず、コンテナを起動するときに環境変数で渡すようにした。この設計の主な利点として、最も適切なものはどれか。
  2. 複数のサービスが連携して動くシステムで、利用者の1つの要求が、どのサービスをどの順に通り、それぞれでどれだけ時間がかかったかを調べたい。オブザーバビリティのためのデータのうち、最も適したものはどれか。
  3. Linuxのコンテナを実現するカーネルの機能のうち、名前空間(namespaces)とcgroups(コントロールグループ)の役割の組み合わせとして、正しいものはどれか。
  4. LinuxのホストでDockerを使い、ホストとは別のディストリビューションをもとにしたイメージからコンテナを起動して、その中で uname -r(カーネルのリリースを表示するコマンド)と cat /etc/os-release(ディストリビューションの情報を表示するコマンド)を実行した。結果の説明として、正しいものはどれか。
  5. コンテナイメージとコンテナの関係の説明として、正しいものはどれか。