03 - クラウド & クラウドネイティブコンピューティング
クラウドコンピューティング
Relevant DSS-P Skills
- 3. テクノロジー > 3.1 ソフトウェア開発 > クラウドインフラ活用
コンピューティング & ストレージ (IaaS)
- Amazon EC2 - クラウド上で安全かつ拡張可能なコンピューティングキャパシティを提供するウェブサービス
- Amazon EBS - Amazon Elastic Compute Cloud との使用に設計された、使いやすく高パフォーマンスなブロックストレージサービス
- Azure Virtual Machines - Windows および Linux 仮想マシンを数秒でプロビジョニングするサービス
- Azure Disk Storage - Azure 仮想マシン向けの高パフォーマンスで耐久性のあるブロックストレージ
- Google Cloud Compute Engine - Google のインフラストラクチャ上で仮想マシンを作成・実行できるカスタマイズ可能なコンピューティングサービス
ネットワーキング
- Amazon VPC - 自分で定義した論理的に分離された仮想ネットワーク内で AWS リソースを起動できるサービス
- Amazon ELB - 受信するアプリケーショントラフィックを Amazon EC2 インスタンス、コンテナ、IP アドレス、Lambda 関数などの複数のターゲットに自動的に分散するサービス
- Azure Virtual Network - Azure におけるプライベートネットワークの基本的な構成要素で、高パフォーマンスのネットワーキングを利用可能
- Azure Load Balancer - バックエンドの仮想マシンにトラフィックを分散させるサービス
- Azure Application Gateway - プラットフォームが管理する、スケーラブルで高可用性のアプリケーションデリバリーコントローラーサービス
- Google Cloud VPC - Andromeda を使用して Google の本番ネットワーク内に実装された物理ネットワークの仮想版
- Cloud Load Balancing - すべてのトラフィックに対応するフルマネージドの分散型ソフトウェア定義サービス
アプリケーションホスティングプラットフォーム (PaaS)
- Azure App Service - ウェブアプリケーション、REST API、モバイルバックエンドをホストするための HTTP ベースのサービス
- AWS Elastic Beanstalk - ウェブアプリケーションとサービスのデプロイおよびスケーリングを簡単に行えるサービス
- Google Cloud App Engine - スケールでウェブアプリケーションを開発・ホストするためのフルマネージドのサーバーレスプラットフォーム
- Vercel - ウェブを構築、デプロイ、スケールするための開発者体験とインフラを提供するフロントエンドクラウドプラットフォーム
- Netlify - グローバルエッジネットワーク上でモダンなウェブ体験を構築、デプロイ、スケールできるコンポーザブルなウェブプラットフォーム
- Coolify - Vercel、Heroku、Netlify、Railway のオープンソース & セルフホスト可能な代替手段
クラウドコマンドラインインターフェース
- AWS CLI - AWS サービスを管理するための統合ツール
- Azure CLI - インタラクティブなコマンドやスクリプトで Azure リソースを管理するクロスプラットフォームのコマンドラインツール
- Azure Developer CLI (azd) - ローカル開発環境から Azure への移行を加速するオープンソースツール
- Google Cloud CLI (gcloud) - Google Cloud のリソースとサービスを作成・管理するためのツールセット
- Vercel CLI - Vercel プロジェクトの管理と設定、アプリのデプロイ、ローカルでのデプロイ環境の複製に使用するコマンドラインインターフェース
- Netlify CLI - 継続的デプロイの設定、ローカル開発サーバーの実行、Netlify へのサイトデプロイを行うコマンドラインインターフェース
クラウドエミュレーター
- LocalStack - オフラインでクラウドおよびサーバーレスアプリを開発・テストするための完全機能のローカルクラウドスタック
プライベートクラウド & オンプレミス IaaS
- OpenStack - パブリッククラウドとプライベートクラウドの構築・管理のために Infrastructure as a Service (IaaS) を提供するオープンソースのクラウドコンピューティングプラットフォーム
- OpenNebula - クラウドおよび仮想化管理、ハイパーバイザー運用、Kubernetes オーケストレーションにわたるエンドツーエンドのカバレッジ、ベンダー中立性、包括的なサポートを提供するエンタープライズクラウド & 仮想化プラットフォーム
クラウドアーキテクチャフレームワーク
- AWS Well-Architected Framework - クラウドでワークロードを設計・実行するための主要な概念、設計原則、アーキテクチャのベストプラクティスを説明するフレームワーク
- Azure Architecture Center - Azure 上で安全で高パフォーマンス、回復力があり効率的なインフラを構築するためのガイダンス、パターン、ベストプラクティスのセット
- Azure Well-Architected Framework - ソリューションアーキテクトがワークロードの技術的基盤を構築するために設計された、品質重視のテナント、アーキテクチャの意思決定ポイント、レビューツールのセット
コードとしての設定
Relevant DSS-P Skills
- 3. テクノロジー > 3.1 ソフトウェア開発 > クラウドインフラ活用
Infrastructure as Code (IaC)
- Hashicorp Terraform - インフラストラクチャを安全かつ効率的に構築、変更、バージョン管理できる Infrastructure as Code ツール
- OpenTofu - 安定したドロップイン代替を提供する、インフラの構築と管理のためのオープンソースのコミュニティ主導の Terraform フォーク
- Pulumi - 使い慣れたプログラミング言語とツールを使用してクラウドインフラを構築、デプロイ、管理できる Infrastructure as Code プラットフォーム
AI 駆動インフラ
- Spacelift Intent - 自然言語を使用してクラウドインフラをプロビジョニングおよび管理できる AI 搭載ツール
構成管理 & 自動化
- Ansible - プロビジョニング、構成管理、アプリケーションデプロイ、オーケストレーション、その他多くの IT プロセスを自動化するオープンソースの IT 自動化エンジン
- SaltStack - イベント駆動の IT 自動化、リモートタスク実行、構成管理のための Python ベースのオープンソースソフトウェア
- Rudder - IT インフラ自動化のためのオープンソースの継続的設定 & コンプライアンスプラットフォーム
- cloud-init - クラウドインスタンスをカスタマイズするための標準規格
イメージビルド
- Hashicorp Packer - 単一のソース設定から複数のプラットフォーム向けに同一のマシンイメージを作成するツール
エコシステム & ベンダーツール
- Terraform/OpenTofu エコシステム
- Terraform/OpenTofu Provider: Core Functions - コア関数を実行するための Terraform/OpenTofu プロバイダー
- Terragrunt - 設定を DRY に保ち、複数の Terraform モジュールを扱い、リモート状態を管理するための追加ツールを提供するシンラッパー
- TerraTest - インフラストラクチャのテストのためのパターンとヘルパー関数を提供する Go ライブラリ
- Atmos - ワークフローをオーケストレーションし、インフラ管理を簡素化する DevOps とクラウドエンジニアリングのためのユニバーサルツール
- GitLab-managed Terraform/OpenTofu state - Terraform ステートファイルを GitLab に保存できる機能
- tf.libsonnet - Terraform コードを生成するための Jsonnet ライブラリのコレクション
- terraform-docs - さまざまな出力フォーマットで Terraform モジュールのドキュメントを生成するユーティリティ
- Terraformer - 既存のインフラから Terraform ファイルを生成する CLI ツール
- Atlantis - Webhook 経由で Terraform プルリクエストイベントをリッスンするセルフホスト型の Golang アプリケーション
- ベンダー固有のツール
- AWS CloudFormation - Amazon Web Services リソースのモデル化とセットアップを支援するサービス
- AWS CDK - 使い慣れたプログラミング言語でクラウドアプリケーションリソースを定義するオープンソースのソフトウェア開発フレームワーク
- AWS SAM - サーバーレスアプリケーションを構築するためのオープンソースフレームワーク
- SST - サーバーレスとイベント駆動アーキテクチャに特化した、AWS 上でフルスタックアプリケーションを簡単に構築できるフレームワーク
- Azure Resource Manager - Azure のデプロイおよび管理サービス
- Bicep language - Azure リソースをデプロイするために宣言的な構文を使用するドメイン固有言語 (DSL)
- Azure Resource Graph - クラウドリソースを大規模にクエリ、探索、分析するための強力な管理ツール
コンテナ化
Relevant DSS-P Skills
- 3. テクノロジー > 3.1 ソフトウェア開発 > クラウドインフラ活用
- Containerization - オペレーティングシステムレベルの仮想化の一形態
- コンテナ向け Linux ディストリビューション
- Alpine Linux - musl libc と busybox をベースにしたセキュリティ重視の軽量 Linux ディストリビューション
- apk-tools - 元々 Alpine Linux 向けに構築され たパッケージマネージャー
- Fedora CoreOS - コンテナ化されたワークロードを安全かつ大規模に実行するための、自動更新される最小限の OS
- Flatcar Container Linux - コンテナ向けの不変 Linux ディストリビューション
- Alpine Linux - musl libc と busybox をベースにしたセキュリティ重視の軽量 Linux ディストリビューション
- コンテナ内のユーティリティ
- busybox - 多くの一般的な UNIX ユーティリティの小型版を組み合わせた単一の小さな実行ファイル
- 標準規格
- The Open Container Initiative (OCI) - コンテナフォーマットとランタイムに関するオープンな業界標準を作成することを明確な目的とするオープンガバナンス構造
- Compose Specification - クラウドおよびプラットフォームに依存しないコンテナベースアプリケーションを定義するための開発者向け標準
- Development Containers - コンテナを開発固有の設定、ツール、構成で拡張するためのオープン仕様
エンジン & ランタイム
- コンテナエンジン
- Docker Engine - アプリケーションを構築・コンテナ化するためのオープンソースのコンテナ化技術
- Docker Rootless mode - Docker デーモンとコンテナを非 root ユーザーとして実行し、潜在的な脆弱性を軽減する機能
- podman - コンテナと Pod の構築、管理、実行のための強力なコンテナエンジン
- podman-static - Linux 向けの Alpine ベースのコンテナイメージと静的リンク(rootless)バイナリ
- Docker Engine - アプリケーションを構築・コンテナ化するためのオープンソースのコンテナ化技術
- コンテナランタイム
- containerd - シンプルさ、堅牢性、ポータビリティを重視した業界標準のコンテナランタイム
- CRI-O - OCI (Open Container Initiative) 互換のランタイムを使用できるようにするための Kubernetes CRI (Container Runtime Interface) の実装
- cri-tools - CRI 向けのツールセット
- OCI ランタイム
イメージ管理
- イメージビルドツール
- Docker Build - Dockerfile とコンテキストから Docker イメージを作成するプロセスを自動化する Docker Engine の一部
- buildah - Open Container Initiative (OCI) コンテナイメージの構築を容易にするツール
- podman build - Containerfile または Dockerfile の指示を解釈し、Buildah を基盤として利用して OCI 互換のコンテナイメージを構築するコマンド
- Kaniko - コンテナまたは Kubernetes クラスター内で Dockerfile からコンテナイメージを構築するツール
- イメージ検査 & 管理ツール
- コンテナレジストリ
- GitLab Container Registry - Docker イメージのための安全なプライベートレジストリ
- Project Quay - コンテナのビルド、整理、配布、デプロイのために設計されたオープンソースのコンテナネイティブイメージレジストリ
- Docker Hub - 開発者やチームが Docker コンテナイメージを保存、共有、配布できるクラウドベースのレジストリサービス
- Amazon ECR - コンテナイメージとアーティファクトの保存、管理、共有、デプロイを簡単に行えるフルマネージドのコンテナレジストリ
- Azure Container Registry - コンテナイメージと関連アーティファクトを管理するプライベートレジストリ
- Harbor - ポリシーとロールベースのアクセス制御でアーティファクトを保護するオープンソースレジストリ
環境 & 管理
- コンテナ管理ツール
- Podman Desktop - コンテナ管理の簡素化、Kubernetes ワークフローの効率化、ローカル開発から本番環境への移行を支援する、開発者がコンテナと Kubernetes を操作するための最も優れた無料のオープンソースツール
- lazydocker - docker と docker-compose の両方に対応したターミナル UI
- Docker Compose - マルチコンテナ Docker アプリケーションを定義・実行するためのツール
- 開発環境プロビジョニング
- devcontainers CLI - devcontainer.json から開発コンテナを作成・設定し、さまざまなインフラストラクチャにわたって開発コンテナの構築、実行、管理コマンドを提供する仕様のリファレンス実装
- DevPod - オープン標準の devcontainer.json フォーマットを使用して dev-environments-as-code を実現する、ローカルマシン、Kubernetes クラスター、クラウドプロバイダーなどあらゆるインフラをサポートするクライアントのみのツール
- ローカル環境プロビジョナー(Mac 向け)
WebAssembly
Relevant DSS-P Skills
- 3. テクノロジー > 3.2 デジタルテクノロジー > その他先端技術
-
標準規格
- WebAssembly - スタックベースの仮想マシン向けのバイナリ命令フォーマット
- WebAssembly System Interface (WASI) - WebAssembly のためのモジュラーシステムインターフェース
- WASIX - 既存の WASI ABI の長期的な安定化とサポート、および追加の非侵略的なシステムコール拡張
- WebAssembly Component Model - WASI Preview 2 の一部として開発された、型付きの言語非依存インターフェースを通じてモジュールが相互運用できるバイナリインターフェース標準
-
ランタイム
- wazero - Go で記述された唯一のゼロ依存 WebAssembly ランタイム
- Wasmtime - WebAssembly 向けの高速で安全なランタイム
- Wasmer - 非常に軽量な コンテナをあらゆる場所で実行できる、高速で安全な WebAssembly ランタイム
- WasmEdge - クラウドネイティブ、エッジ、分散型アプリケーション向けの軽量で高パフォーマンスかつ拡張可能なランタイム
- WebAssembly Micro Runtime (WAMR) - 組み込み、IoT、エッジ、Trusted Execution Environment での使用向けに、小さなフットプリントと高度に設定可能な機能を備えた軽量なスタンドアロンランタイム
-
ツールチェーン & 言語
- Emscripten - 速度、サイズ、ウェブプラットフォームに特化した、LLVM を使用した WebAssembly への完全なコンパイラツールチェーン
- AssemblyScript - WebAssembly 向けの TypeScript に似た言語
- TinyGo - 組み込みシステムと WebAssembly に言語をもたらす小さな場所向けの Go コンパイラ
- Binaryen - C++ で記述された WebAssembly 向けのコンパイラとツールチェーンインフラストラクチャライブラリ
-
クラウド & エッジプラットフォーム
- wasmCloud - クラウド、Kubernetes、エッジをまたいで再利用可能な WebAssembly コンポーネントで構成される多言語アプリケーションを構築するためのオープンソース CNCF プロジェクト
- Fermyon Spin - WebAssembly マイクロサービスとウェブアプリケーションを構築するための開発者ツール
Kubernetes
Relevant DSS-P Skills
- 3. テクノロジー > 3.1 ソフトウェア開発 > クラウドインフラ活用
- Kubernetes - コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するオープンソースシステム
- マスターノード
- kube-apiserver - API サービスを担当
- kube-scheduler - スケジューリングを担当
- kube-controller-manager - コンテナオーケストレーションを担当
- コンピュートノード
- kubelet - そのノード上の Pod の API サーバーを監視し、それらが実行されていることを確認する
- cAdvisor - 特定のノードで実行中の Pod に関するメトリクスを収集する
- kube-proxy - ネットワークを最新の状態に保つために、Pod やサービスの変更について API サーバーを監視する
- container runtime - そのノードでコンテナイメージを管理し、コンテナを実行する役割を担う
- インターフェース標準
- CNI (Container Networking Interface)
- CSI (Container Storage Interface)
- CRI (Container Runtime Interface)
コアコンセプト & コンポーネント
- K8s の内部構造
- Workloads - クラスター上でコンテナを管理・実行するために使用するオブジェクト
- Pod
- assignment - Pod が特定のノードでのみ実行されるように、または特定のノードで実行されることを優先するように制限するプロセス
- taint and toleration - Pod が不適切なノードに配置されないようにするメカニズム
- lifecycle - Pod のライフサイクル
- liveness probe - kubelet がコンテナをいつ再起動するかを判断するために使用するプローブ
- requests and limits
- eviction
- Deployment、ReplicaSet、StatefulSet、DaemonSet
- Kubernetes network model - Kubernetes クラスターにおけるネットワーキングの基本的な要件と原則のセット
- Service、Ingress、Ingress Controllers
- Storage - ストレージの提供と消費を抽象化する API を備えた強力なボリュームサブシステム
- PersistentVolume、PVC、StorageClass
- Configuration - アプリケーションを実行する Pod に設定データを注入できるさまざまなメカニズム
- Secret、ConfigMap
- セキュリティ & ポリシー
- Kubernetes RBAC - 企業内の個々のユーザーの役割に基づいてコンピュータまたはネットワークリソースへのアクセスを制御する方法
- PodDisruptionBudget - アプリケーションが経験する同時中断の数を制限し、高可用性を実現するオブジェクト
- Security context - Pod またはコンテナの権限とアクセス制御設定の定義
- オートスケーリング
- HPA - 観測された CPU 使用率に基づいて、レプリケーションコントローラー、デプロイメント、レプリカセット、またはステートフルセット内の Pod 数を自動的にスケールするコンポーネント
- Cluster Autoscaler - Kubernetes クラスターのサイズを自動的に調整するツール
- Karpenter - 柔軟で高パフォーマンスな Kubernetes クラスターオートスケーラー
運用 & 管理
- K8s オペレーター
- Prometheus Operator - Kubernetes 上で Prometheus クラスターを作成/設定/管理するオペレーター
- kube-prometheus - エンドツーエンドの Kubernetes クラスター監視を簡単に操作できるよう、ドキュメントとスクリプトを組み合わせた Kubernetes マニフェスト、Grafana ダッシュボード、Prometheus ルールのコレクション
- Grafana Operator - Kubernetes と OpenShift 環境でカスタムリソースを通じて Grafana インスタンス、ダッシュボード、データソースの管理を効率化する Kubernetes オペレーター
- OpenTelemetry Operator - OpenTelemetry のための Kubernetes Operator の実装
- Elastic Cloud on Kubernetes (ECK) - Kubernetes 上の Elastic Stack の公式オペレーター
- Rook - Kubernetes 向けのオープンソースのクラウドネイティブストレージオーケストレーター
- Prometheus Operator - Kubernetes 上で Prometheus クラスターを作成/設定/管理するオペレーター
- ダッシュボード
CLI & ローカル環境
- CLI プラグイン管理
- Krew - kubectl コマンドラインツールのプラグインマネージャー
- kubectl-node-shell - ノード上でルートシェルを実行するための kubectl プラグイン
- kubectl-tree - Kubernetes オブジェクト間の所有関係を探索するための kubectl プラグイン
- kubectl-pod-inspect - Pod とコンテナのステータスを一目で確認するための kubectl プラグイン
- kubepug - Kubernetes API のプリフライトチェックツール
- rakkess - すべ ての利用可能なリソースのアクセスマトリックスを表示する kubectl プラグイン
- ketall - すべてのリソースを取得する kubectl プラグイン
- Krew - kubectl コマンドラインツールのプラグインマネージャー
- ローカル K8s ツール
エコシステム & 拡張機能
- アプリケーションパッケージング & 設定
- Helm - Kubernetes のパッケージマネージャー
- Kustomize - kustomization ファイルを通じて Kubernetes オブジェクトをカスタマイズするスタンドアロンツール
- Artifact Hub - クラウドネイティブのパッケージと設定の検索、インストール、公開を容易にするウェブベースのアプリケーション
- クラウドリソース管理
- Crossplane - ユーザーがコントロールプレーンで独自の API とサービスを構築し、Kubernetes を拡張してどこでもリソースを管理できるプラットフォームエンジニアリング向けのクラウドネイティブフレームワーク
- 開発者ワークフローツール
- Skaffold - コンテナベースアプリケーションの継続的な開発を容易にするコマンドラインツール
- プラットフォーム拡張機能
- kube-fencing - Kubernetes においてステートフルアプリケーションのノードをフェンシングするためのソリューション
- KubeVirt - Kubernetes 向けの仮想マシン管理アドオン
- オペレーター & コントローラー開発
- Kubebuilder - カスタムリソース定義 (CRD) を使用して Kubernetes API を構築するためのフレームワーク
- リソース最適化
- Goldilocks - リソースリクエストと制限の出発点を特定するのに役立つユーティリティ
- ベンダー固有のツール
- eksctl - Amazon EKS の公式 CLI
クラウドネイティブコンピューティング
Relevant DSS-P Skills
- 3. テクノロジー > 3.1 ソフトウェア開発 > クラウドインフラ活用
- Serverless Computing - クラウドプロバイダーがオンデマンドでマシンリソースを割り当てるクラウドコンピューティング実行モデルで、サーバーの管理はクラウドプロバイダーが顧客に代わって行う
Container as a Service (CaaS)
- マネージド Kubernetes
- Google Kubernetes Engine (GKE) - コンテナ化されたアプリケーションを実行するためのマネージドな本番環境
- Amazon Elastic Kubernetes Service - AWS およびオンプレミスで Kubernetes を簡単に実行できるマネージドサービス
- Azure Kubernetes Service (AKS) - コンテナ化されたアプリケーションのデプロイと管理のための完全マネージド Kubernetes サービス
- シンプルなコンテナホスティング
- Amazon Elastic Container Service - コンテナ化されたアプリケーションのデプロイ、管理、スケーリングを簡単に行えるフルマネージドのコンテナオーケストレーションサービス
- AWS Fargate - ECS と EKS の両方で動作するコンテナ向けサーバーレスコンピューティングエンジン
- AWS App Runner - 開発者がインフラストラクチャの事前知識なしに、コンテナ化されたウェブアプリケーションと API を大規模かつ迅速にデプロイできるフルマネージドサービス
- Azure Container Apps - マイクロサービスとイベント駆動ワークロードのために KEDA、Dapr、Envoy を統合した、Kubernetes 上に構築されたフルマネージドのサーバーレスコンテナサービス
- Google Cloud Run - 自動スケーリングされるコンテナを実行できるマネージドコンピューティングプラットフォーム
Function as a Service (FaaS)
- AWS Lambda - サーバーのプロビジョニングや管理なしに、事実上あらゆる種類のアプリケーションまたはバックエンドサービスのコードを実行できるサーバーレスのイベント駆動型コンピューティングサービス
- Azure Functions - 好みのプログラミング言語を使用してより効率的に開発できるイベント駆動型のサーバーレスコンピューティングプラットフォーム
- Google Cloud Run Functions - クラウドサービスの構築と接続のためのサーバーレス実行環境