IBM CloudとAWSのコンテナプラットフォーム調査メモ

# はじめに

コンテナを動かしたくて、コンテナを動かすクラウド環境（IBM Cloud と AWS）について調べました。
特に簡単にコンテナを動作できる軽量コンテナプラットフォームについて整理します。

※ IBM Cloud よりの内容になってます。

# 概要
まずは、コンテナプラットフォームについて全体と軽量なコンテナプラットフォームについての概要です。

## 環境
IBMとAWSのコンテナプラットフォームは以下のようなものがあります。
大きく、軽量コンテナプラットフォーム（Code Engine等）、自社特有のコンテナプラットフォーム（ECS）、Kubernetes、RedHat OpenShiftがあります。

- IBM
  - IBM Cloud Kubernetes Service (IKS)
  - Red Hat OpenShift on IBM Cloud (ROKS)
  - IBM Cloud Code Engine
- AWS
  - Amazon Lightsail Containers
  - Amazon Elastic Beanstalk
  - Amazon Elastic Container Service (ECS)
  - Amazon Elastic Kubernetes Service (EKS)
  - Red Hat OpenShift Service on AWS (ROSA)

## 軽量なコンテナプラットフォーム

大きなアプリケーションであれば、カスタマイズ性の高いKubernetes等のコンテナプラットフォームが最適ですが、小さいアプリケーションであれば、軽量なコンテナプラットフォームが好まれると思います。

IBM Cloud Code Engine や Amazon Beanstalk 等によるコンテナの動作方法は以下のとおりです。

### 動作方法

1. ローカルで、イメージをビルド
2. CLI 等で、コンテナイメージレジストリに push
3. ブラウザ経由で、コンテナプラットフォームにデプロイ

### その他

軽量ではありますが、各社以下のような機能も追加しています。

- 何らかの形で、CI/CD も対応しています
- HTTPS (TLS 終端)や DDoS 攻撃等のセキュリティ 部分も対応しています
- Dockerfileなしで、コードから実行できる設定もあります

# IBM

## IBM Cloud Code Engine

> IBM Cloud® Code Engine は、フルマネージドのサーバーレス・プラットフォームです。

https://www.ibm.com/jp-ja/products/code-engine

https://it.impress.co.jp/articles/-/21695

https://cloud.ibm.com/docs/codeengine?topic=codeengine-secure&locale=ja

https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-tutorial-cd-code-engine

## IBM Cloud Kubernetes Service (IKS)

IBM Cloud上のKubernetesプラットフォーム

https://www.ibm.com/jp-ja/products/kubernetes-service

## Red Hat OpenShift on IBM Cloud (ROKS)

> Red Hat® OpenShift® on IBM Cloud は、運用の複雑さを軽減し、IBM Cloud のセキュリティを活用したアプリケーションの構築およびスケーリングを可能にする Red Hat OpenShift のマネージドクラウドサービスです。

https://www.ibm.com/jp-ja/products/openshift

https://www.redhat.com/ja/technologies/cloud-computing/openshift/ibm

## 感想
割とシンプルでわかりやすかったです。

# AWS

AWS は、かなり種類が多いです。
https://aws.amazon.com/jp/getting-started/decision-guides/containers-on-aws-how-to-choose/

## Amazon Lightsail Containers

これが、Code Engine に近い
https://dev.classmethod.jp/articles/announcing-amazon-lightsail-containers/

## Amazon Elastic Beanstalk

Dockerfile からコンテナイメージのビルドも対応してるみたい。
https://www.tsone.co.jp/tech-blog/archives/1026
https://qiita.com/lciel/items/f114997f3278cea45527

## Amazon Elastic Container Service (ECS)

> Amazon Elastic Container Service (ECS) はフルマネージドのコンテナオーケストレーションサービスであり、コンテナ化されたアプリケーションをより効率的にデプロイ、管理、スケールするのに役立ちます。

Kubernetesよりは簡単？ベンダーロックインに注意。

https://aws.amazon.com/jp/ecs/


## Amazon Elastic Kubernetes Service (EKS)

> Amazon Elastic Kubernetes Service (Amazon EKS) は、AWS クラウドおよびオンプレミスデータセンターで Kubernetes を実行するためのマネージド Kubernetes サービスです。

https://aws.amazon.com/jp/eks/

## Red Hat OpenShift Service on AWS (ROSA)

> Red Hat OpenShift Service on AWS (ROSA) は、OpenShift と統合されたエクスペリエンスを提供します。広範な AWS コンピューティング、データベース、分析、機械学習 (ML)、ネットワーク、モバイル、およびその他のサービスを使用して、安全でスケーラブルなアプリケーションをすばやく構築することができます。

https://aws.amazon.com/jp/rosa/

## 感想
思ったよりいろいろあって驚きました。

# まとめ
基本的なところだけですが、ざっと整理できてよかったです。
AWSはいろんなサービスを持っているので、もう少し深掘りしないと違いがわからなさそうです。。。

# 参考

## PaaS

今回、コンテナプラットフォームを調べましたが、一般的には、PaaSと呼ばれています。PaaSとIaaSの違いも調べました。

> IaaS（Infrastructure as a Service）は、クラウドでホストされている物理サーバーと仮想サーバー、ストレージ、およびネットワークへのオンデマンド・アクセスであり、クラウドでアプリケーションとワークロードを実行するための バックエンド IT インフラストラクチャー です。

> PaaS（Platform as a Service）は、アプリケーションを開発、実行、保守、および管理するための、完全ですぐに使用できるクラウド・ホスティング・プラットフォームへのオンデマンド・アクセスです。

https://www.ibm.com/jp-ja/topics/iaas-paas-saas

RedHat のサイトがわかりやすかったです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184221/5482e8a2-c6f6-28ee-51f5-0afbbc44923a.png)

https://www.redhat.com/ja/topics/cloud-computing/iaas-vs-paas-vs-saas

## Azure, GCP

今回、調べきれなかったけれど、Azure, GCP で参考にしたサイトは以下のとおりです。

https://azure.microsoft.com/ja-jp/products/category/containers

https://qiita.com/Shoma0210/items/4f78b4d8655beda2fb90

https://www.future.ad.jp/futuremedia/20240314/

https://cloud.google.com/learn/what-are-containers?hl=ja

https://cloud.google.com/containers?hl=ja