第12章クラウドネイティブアプリケーション開発
12.2 Cloud-Based and Cloud-Native Applications Deployment Technologies12.2 クラウドベースおよびクラウドネイティブのアプリケーションの配置技術
Learning Objectives学習目標
By the end of this section, you will be able to:
この節を終えると、次のことができるようになる。
• Understand cloud deployment technology
• クラウドの配置技術を理解する。
• Relate to cloud deployment technology options
• クラウドの配置技術の選択肢を理解する。
• Explain cloud deployment technology use cases and implementation
• クラウドの配置技術の用途と実装を説明する。
• Select cloud deployment technologies
• クラウドの配置技術を選ぶ。
• Relate to the future of cloud deployment technologies
• クラウドの配置技術の今後を理解する。
Various cloud technologies may be used to deploy cloud-based and cloud-native applications. These technologies differ in their implementation and use. While these technologies span storage, network, and compute services, the emphasis will be on compute options. There are many deployment options available, and there is no right or wrong choice. Only a subset of these options is applicable to the deployment of cloud-native applications. However, all options will be covered because enterprise solutions are typically hybrid solutions that may combine on-premises, cloud-based, and cloud-native components. Many organizations will need to implement more than one option. Accordingly, selecting the best option to support workloads while controlling complexity can be a daunting task.
英語のヒント
クラウドベースおよびクラウドネイティブのアプリケーションの配置には、さまざまなクラウド技術を使える。これらは、実装方法と使い方が異なる。記憶領域、ネットワーク、計算の各サービスにまたがるが、ここでは計算の選択肢を中心に扱う。配置方法は数多くあり、一律に正しい選択や間違った選択があるわけではない。クラウドネイティブアプリケーションの配置に使えるのは、その一部だけである。しかし、企業向けの解決策は、通常、オンプレミス、クラウドベース、クラウドネイティブのコンポーネントを組み合わせるハイブリッドなものなので、すべての選択肢を扱う。多くの組織は、複数の方法を実装する必要がある。そのため、複雑さを抑えながらワークロードを支える最適な方法を選ぶことは、骨の折れる仕事となりうる。
Introduction to Cloud Deployment Technologyクラウドの配置技術入門
The delivery of computing services, such as databases, software, analytics, and storage over the Internet is called cloud computing. The cloud computing model is composed of three service models—Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS)—and four deployment models—private cloud, community cloud, public cloud, and hybrid cloud. Figure 12.20 describes the relationship between cloud deployment models, service models, and cloud deployment technologies.
データベース、ソフトウェア、分析、記憶領域などのコンピューティングサービスを、インターネット経由で提供することを、クラウドコンピューティングという。そのモデルは、Infrastructure as a Service(IaaS)、Platform as a Service(PaaS)、Software as a Service(SaaS)の3つのサービスモデルと、プライベート、コミュニティ、パブリック、ハイブリッドの4つの配置モデルからなる。図12.20は、クラウドの配置モデル、サービスモデル、配置技術の関係を示している。

attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典
Figure 12.20 Cloud deployment models, cloud service models, and cloud deployment technologies are all considered for workload and service deployments. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図12.20 ワークロードとサービスの配置では、クラウドの配置モデル、サービスモデル、配置技術のすべてを考慮する。(出典:Copyright Rice University, OpenStax、CC BY 4.0ライセンス)
When examining workload and service deployments, there are three key architectural considerations. First, the deployment models in the cloud are evaluated, offering choices for where service models are deployed, such as public, hybrid, community, or private cloud environments. Second, the service model options are assessed to determine the level and type of services, including Infrastructure as a Service (IaaS) and Platform as a Service (PaaS). Each of these cloud service models will be discussed in more detail. Finally, workloads and services are actualized in the cloud using various deployment technologies, ranging from bare metal (i.e., high-performance physical servers dedicated to a single customer where the burden of provisioning, maintaining, or scaling applications on these servers falls on the customer) to serverless computing (i.e., where customers deploy applications without the burden of provisioning, maintaining, or scaling these applications as they are provided by the cloud service provider). These technologies serve as the foundation for executing cloud-based and cloud-native applications, allowing organizations to harness the benefits of cloud computing. Understanding these options empowers companies to select the most suitable approach, ensuring performance, deployment speed, scalability, portability, and security align with business requirements while managing costs effectively. Enterprises must consider different factors when deploying various workloads and services in a cloud environment. For instance, high-performance computing (HPC) demands significant compute and memory resources, whereas legacy applications may have lower resource requirements.
英語のヒント
ワークロードやサービスの配置を検討する際には、アーキテクチャ上の重要な観点が3つある。第一に、パブリック、ハイブリッド、コミュニティ、プライベートなど、サービスモデルをどの環境へ配置するかを選ぶために、クラウドの配置モデルを評価する。第二に、IaaSやPaaSなど、提供されるサービスのレベルと種類を決めるために、サービスモデルの選択肢を評価する。これらのサービスモデルは、それぞれ詳しく説明する。最後に、さまざまな配置技術を使って、クラウド上にワークロードやサービスを実現する。技術は、ベアメタルからサーバーレスコンピューティングまでに及ぶ。ベアメタルは、1人の顧客に専用化した高性能な物理サーバーであり、そこでアプリケーションを準備・保守・拡張する負担は顧客が担う。サーバーレスコンピューティングでは、クラウド事業者がそれらを提供するため、顧客はその負担を負わずにアプリケーションを配置する。これらの技術は、クラウドベースとクラウドネイティブのアプリケーションを実行する基盤となり、組織がクラウドの利点を活用できるようにする。選択肢を理解すると、費用を効果的に管理しながら、性能、配置の速さ、スケーラビリティ、移植性、セキュリティを事業要件に合わせ、最も適した方法を選べる。企業は、クラウド環境にさまざまなワークロードやサービスを配置する際、異なる要因を考慮しなければならない。たとえば、高性能計算(HPC)は大量の計算資源とメモリを必要とするが、従来のアプリケーションは、必要な資源がより少ない場合がある。
Cloud Service Modelsクラウドのサービスモデル
The three cloud service models—IaaS, PaaS, and SaaS—define a combination of information technology resources (e.g., compute servers, storage, memory, middleware) offered by a cloud provider and are not mutually exclusive. These service models change the way information technology (IT) resources are consumed. Traditionally, IT resources were purchased, managed, and maintained in a company’s on-premises data center. The cloud computing service models, in contrast, provide a more economical solution where these IT resources are accessed and scaled on-demand from a cloud service provider at a predictable cost. These service models are categorized as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). The following sections elaborate on these three cloud service models.
英語のヒント
IaaS、PaaS、SaaSの3つのサービスモデルは、クラウド事業者が提供する計算用サーバー、記憶領域、メモリ、ミドルウェアなどのIT資源の組み合わせを定義する。これらは、互いに排他的なものではない。サービスモデルは、情報技術(IT)資源の利用方法を変える。従来、IT資源は購入され、企業のオンプレミスのデータセンターで管理・保守されていた。それに対し、クラウドコンピューティングのサービスモデルは、予測できる費用で、必要に応じてクラウド事業者のIT資源へアクセスし、規模を変えられる、より経済的な仕組みを提供する。これらは、Infrastructure as a Service(IaaS)、Platform as a Service(PaaS)、Software as a Service(SaaS)に分類される。以下で、この3つを詳しく説明する。
Infrastructure as a Service (IaaS)
Infrastructure as a Service(IaaS)
Infrastructure as a Service (IaaS) is on-demand access to a cloud-hosted computing infrastructure that includes servers, storage, and network resources. These resources can be provisioned, configured, and used by the customer like on-premises resources are. The difference is the cloud service provider hosts, manages, and maintains these resources in its own data centers, as shown in Figure 12.21.
Infrastructure as a Service(IaaS)は、サーバー、記憶領域、ネットワーク資源を含む、クラウド上の計算基盤への、必要に応じたアクセスである。顧客は、オンプレミスの資源と同じように、それらを準備・設定・利用できる。違いは、図12.21のように、クラウド事業者が自らのデータセンターで資源をホストし、管理・保守することである。

attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典
Figure 12.21 IaaS resources are managed by a cloud provider compared to on-premises resources that are managed by the customer. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図12.21 顧客が管理するオンプレミスの資源とは異なり、IaaSの資源はクラウド事業者が管理する。(出典:Copyright Rice University, OpenStax、CC BY 4.0ライセンス)
IaaS customers access these resources via the Internet and pay for these services on a subscription or pay-as-you-go basis. Infrastructure consists of three main components: compute for processing tasks, storage, and network. The compute component could, for example, include a general-purpose processing capability or more specific processing capabilities such as a high-speed graphics processor (GPU) or high-performance computing (HPC). The storage component could support different storage needs such as object storage, block storage, or file storage. Finally, the network component allows for the compute and storage components to communicate.
英語のヒント
IaaSの顧客は、インターネットを通じて資源にアクセスし、定額契約または従量課金で支払う。基盤は、タスクを処理する計算、記憶領域、ネットワークという、3つの主な構成要素からなる。計算の要素には、たとえば汎用の処理能力や、高速なグラフィックス処理装置(GPU)または高性能計算(HPC)のような、特定用途の処理能力が含まれる。記憶領域の要素は、オブジェクトストレージ、ブロックストレージ、ファイルストレージなどの異なる必要に対応できる。最後に、ネットワークの要素によって、計算と記憶領域の要素が通信できる。
IaaS resources are multitenant and are made available to multiple different customers simultaneously. The cost for the services varies depending on the technologies chosen. IaaS customers make use of these services on-demand where the demanded resources are provisioned and delivered to the customer in a matter of minutes or hours as opposed to days, weeks, or months as is with traditional IT on-premises resources. IaaS also provides the flexibility for customers to scale up or down resources depending on their needs.
英語のヒント
IaaSの資源は、複数の異なる顧客が同時に利用するマルチテナント方式である。サービスの費用は、選んだ技術によって異なる。顧客は、必要に応じてサービスを使い、要求した資源は、数分から数時間で用意され、届けられる。従来のオンプレミスのIT資源では、数日、数週間、数か月かかるのと対照的である。また、IaaSには、顧客が必要に応じて資源を増減できる柔軟性がある。
Platform as a Service (PaaS)
Platform as a Service(PaaS)
As discussed previously, IaaS is a set of compute, storage, and networking resources that have been virtualized by a cloud service provider and configured by the customer to suit their needs. PaaS takes advantage of all the virtualized resources from IaaS and adds to this. Platform as a Service (PaaS) is on-demand access to a cloud-hosted platform for developing, running, and managing applications by prepackaging middleware, language runtimes, and tools as containers. The cloud service provider hosts, manages, and maintains all the software included in the platform. This includes the servers, storage, and networking services. It also includes the operating system, middleware, and runtime environment. Figure 12.22 illustrates how PaaS customers can deploy their application and data.
英語のヒント
前述したように、IaaSは、クラウド事業者が仮想化し、顧客が必要に合わせて設定する、計算、記憶領域、ネットワーク資源の集合である。PaaSは、IaaSの仮想化された資源をすべて活用し、さらに機能を加える。Platform as a Service(PaaS)は、ミドルウェア、言語のランタイム、ツールをあらかじめコンテナーにまとめて提供することで、アプリケーションを開発・実行・管理するためのクラウド上のプラットフォームへ、必要に応じてアクセスするものである。クラウド事業者は、プラットフォームに含まれるソフトウェアをすべてホストし、管理・保守する。サーバー、記憶領域、ネットワークのサービスに加え、OS、ミドルウェア、ランタイム環境も含まれる。図12.22は、PaaSの顧客がアプリケーションとデータを配置する方法を示している。

attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典
Figure 12.22 PaaS resources are managed by a cloud provider compared to on-premises resources that are managed by the customer. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図12.22 顧客が管理するオンプレミスの資源とは異なり、PaaSの資源はクラウド事業者が管理する。(出典:Copyright Rice University, OpenStax、CC BY 4.0ライセンス)
PaaS generally makes it easy to get an application up and running quickly. PaaS is cost effective in that customers don’t have to bear the cost to manage the runtime environment for their applications. PaaS cloud providers generally provide tools such as DevOps and collaboration tools, as well as API marketplaces as services that could easily be integrated with applications. PaaS also provides the flexibility for customers to scale resources up or down depending on their needs.
英語のヒント
PaaSを使うと、通常、アプリケーションを素早く稼働させやすい。顧客が実行環境の管理費用を負担しなくてよいという点で、費用対効果が高い。PaaSのクラウド事業者は、一般に、DevOpsや協同作業のツール、APIマーケットプレイスなど、アプリケーションへ容易に組み込めるサービスを提供する。また、必要に応じて資源を拡大・縮小できる柔軟性もある。
Software as a Service (SaaS)
Software as a Service(SaaS)
Software as a Service (SaaS) is a cloud-hosted, ready-to-use software or application that end users access with a client (e.g., web browser, desktop client, mobile app) via a subscription model. SaaS takes advantage of all the resources from PaaS, but also includes the application and data, as shown in Figure 12.23.
英語のヒント
Software as a Service(SaaS)は、クラウド上で提供される、すぐに使えるソフトウェアやアプリケーションである。最終利用者は、定額契約モデルを通じて、Webブラウザー、デスクトップクライアント、モバイルアプリなどからアクセスする。図12.23のように、SaaSはPaaSのすべての資源を活用し、さらにアプリケーションとデータも含む。

attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典
Figure 12.23 SaaS resources are managed by a cloud provider, like PaaS resources, but they are subscription based and include application and data. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図12.23 SaaSの資源はPaaSと同様にクラウド事業者が管理するが、定額契約を基にし、アプリケーションとデータも含む。(出典:Copyright Rice University, OpenStax、CC BY 4.0ライセンス)
Unlike IaaS and PaaS, SaaS has the highest level of abstraction where the cloud service provider hosts, manages, and maintains all layers of the stack, including the application as well as all the infrastructure required to provide the application service. This allows for the SaaS application to always be upgraded to the latest version. SaaS applications are scalable at any level of the stack. Additional infrastructure resources such as compute power and platform resources, such as databases, can be added as needed.
IaaSやPaaSとは異なり、SaaSは最も高い抽象化のレベルを持つ。クラウド事業者が、アプリケーションと、その提供に必要な基盤全体を含む、スタックのすべての層をホストし、管理・保守する。これにより、SaaSアプリケーションを常に最新版へ更新できる。SaaSアプリケーションは、スタックのどのレベルでも拡張できる。必要に応じて、計算能力などの基盤資源や、データベースなどのプラットフォーム資源を追加できる。
SaaS resources are also multitenant where multiple users are all accessing the same pool of resources. Tenants would have access to the same hosted environment; however, they would have their own dedicated space to securely store their data. SaaS applications are cost effective compared to the other cloud service models because the cloud service provider maintains and manages the entire stack. SaaS applications are also cost effective compared to traditional applications hosted on-premises where companies would have to bear the cost of the hardware in addition to continued cost for IT support.
英語のヒント
SaaSの資源もマルチテナントであり、複数の利用者が同じ資源のプールへアクセスする。テナントは、同じホスト環境を利用するが、自分のデータを安全に保存する専用の領域を持つ。クラウド事業者がスタック全体を保守・管理するため、SaaSアプリケーションは、ほかのサービスモデルに比べて費用対効果が高い。また、オンプレミスで動かす従来のアプリケーションでは、継続的なITサポートの費用に加え、ハードウェアの費用も企業が負担するため、それと比べても費用対効果が高い。
One important benefit of cloud computing is automation. Depending on the service model chosen, organizations can reduce the layers of management of hardware, infrastructure, and applications. This reduces costs and effort of investment into these resources and allows organizations to focus more on innovation. For an organization to choose between the cloud service models and on-premises solutions, it must balance the level of complexity and effort of investment in each solution. These solutions present a spectrum from complex and high effort of investment to simple and low effort of investment, as shown in Figure 12.24.
英語のヒント
クラウドコンピューティングの重要な利点の1つは、自動化である。選んだサービスモデルに応じて、組織は、ハードウェア、基盤、アプリケーションについて、自ら管理する層を減らせる。そのため、これらの資源への投資にかかる費用と労力を削減し、革新へより多く集中できる。クラウドのサービスモデルとオンプレミスの仕組みから選ぶには、それぞれの複雑さと投資の労力の釣り合いを考えなければならない。図12.24のように、これらの選択肢は、複雑で多くの投資労力を要するものから、単純で少ない投資労力で済むものまで、連続した範囲をなす。

attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典
Figure 12.24 Complexity and level of investment effort decrease as level of abstraction from customer increases depending on the solution chosen. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図12.24 選んだ仕組みに応じて、顧客から見た抽象化のレベルが高くなるほど、複雑さと投資の労力は減る。(出典:Copyright Rice University, OpenStax、CC BY 4.0ライセンス)
On-premises and IaaS solutions offer the greatest level of flexibility but are the most complex and require more effort of investment. These solutions also increase costs as they require the hiring of systems personnel as these solutions require a higher level of knowledge and management of infrastructure resources. Moving from left to right, PaaS solutions are less complex with less effort of investment and are generally managed by application developers. Finally, SaaS is the least flexible, but also the least complex, and requires the least effort of investment. SaaS solutions are applications or software that don’t require any installation or manual upgrading, and so the end user can be anyone. Many organizations use a combination of these solutions with the flexibility to change the service models used as their needs change.
英語のヒント
オンプレミスとIaaSは、最も高い柔軟性を持つが、最も複雑で、より多くの投資労力を要する。基盤資源について高度な知識と管理が必要で、システム担当者を雇う必要があるため、費用も増える。図を左から右へ見ると、PaaSは複雑さと投資労力が小さくなり、一般にアプリケーション開発者が管理する。最後に、SaaSは最も柔軟性が低いが、最も単純で、投資労力も最小である。インストールや手作業の更新を必要としないアプリケーションやソフトウェアなので、誰でも最終利用者になれる。多くの組織は、これらを組み合わせて使い、必要の変化に応じて、使うサービスモデルを変えられるようにしている。