IBM Cloud
Cloud Platform
IBM Cloud
概要
IBM Cloudは、IBMが提供するエンタープライズ向けハイブリッドマルチクラウドプラットフォームです。Red Hat OpenShift、Watson AI、ブロックチェーン技術などのエンタープライズソリューションを中核とし、特に大企業、金融機関、政府機関での採用が進んでいます。IBMの長年にわたるエンタープライズ経験と、Red Hat OpenShiftの先進的なコンテナプラットフォーム技術を統合したクラウドサービスを提供します。
詳細
IBM Cloudは2013年にサービスを開始し、現在世界60拠点以上でサービスを展開しています。Red Hat OpenShift、Watson AI、IBM Z(メインフレーム)、Db2などのIBM固有の技術に強みを持ち、ハイブリッドクラウドとマルチクラウド戦略において業界をリードしています。2025年の主要な新機能として、Red Hat OpenShift Virtualizationの一般提供開始、OpenShift Lightspeed AI統合による自然言語での操作支援、V100/L40s/H100 GPUワーカーノードによるAI開発支援、Microsoft・Oracle連携拡張、Watsonx.aiとの統合強化などが含まれます。
主要な特徴
- Red Hat OpenShift: Kubernetesベースのエンタープライズコンテナプラットフォーム
- Watson AI: 業界最先端のAI・機械学習プラットフォームとWatsonx統合
- ハイブリッドクラウド: オンプレミスとクラウドを統合する包括的なソリューション
- エンタープライズセキュリティ: 金融・政府グレードのセキュリティとコンプライアンス
- IBM Z統合: メインフレームとクラウドのシームレスな統合
2025年最新機能
- OpenShift Virtualization: VM(仮想マシン)とコンテナの統合プラットフォーム
- OpenShift Lightspeed: AI搭載のWebコンソール自然言語操作支援
- AI/GPU強化: V100、L40s、H100ワーカーノードによるAI開発
- クラウド連携拡張: Microsoft Azure、Oracle Cloud統合サポート
- Watson AI統合: Watsonx.aiと170+のIBMクラウドサービス連携
メリット・デメリット
メリット
- Red Hat OpenShiftによる業界最高レベルのKubernetesプラットフォーム
- Watson AIによる企業向けAI・機械学習の包括的なソリューション
- IBMの長年のエンタープライズ経験によるミッション クリティカルなサポート
- メインフレーム(IBM Z)からクラウドまでの一貫したハイブリッド環境
- 金融・政府機関レベルの高度なセキュリティとコンプライアンス
- レガシーシステムとの優れた統合性とマイグレーション支援
- 業界固有のソリューションと専門知識の提供
デメリット
- AWSやAzureと比較してサービス数とエコシステムが限定的
- 開発者コミュニティがメガクラウドプロバイダより小さい
- 一部リージョンでのサービス利用可能性の制限
- IBMテクノロジー以外での学習コストが高い場合がある
- スタートアップや小規模企業での導入事例が少ない
- サードパーティツールとの統合が他のクラウドより制限的
参考ページ
- IBM Cloud公式サイト
- IBM Cloud ドキュメント
- IBM Cloud 料金計算ツール
- Red Hat OpenShift on IBM Cloud
- IBM Cloud 無料利用枠
- IBM Cloud 認定・トレーニング
書き方の例
基本セットアップとアカウント設定
# IBM Cloud CLI のインストール
curl -fsSL https://clis.cloud.ibm.com/install/linux | sh
# CLIバージョンの確認
ibmcloud version
# IBMクラウドアカウントへのログイン
ibmcloud login
# 地域の設定
ibmcloud target -r us-south
# リソースグループの一覧表示
ibmcloud resource groups
# アカウント情報の確認
ibmcloud account show
# プラグインのインストール
ibmcloud plugin install container-service
ibmcloud plugin install container-registry
# 利用可能なサービスの確認
ibmcloud catalog service-offerings
# APIキーの作成(プログラマティックアクセス用)
ibmcloud iam api-key-create my-api-key -d "My API key for automation"
コンピュートサービス(VM、コンテナ)
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
from ibm_vpc import VpcV1
from ibm_container_service import IbmContainerServiceApiV1
# IBM Cloud認証の設定
authenticator = IAMAuthenticator('your-ibm-cloud-api-key')
# VPC インスタンス作成
vpc_service = VpcV1('2021-01-19', authenticator=authenticator)
vpc_service.set_service_url('https://us-south.iaas.cloud.ibm.com/v1')
# VPC(仮想プライベートクラウド)の作成
vpc_prototype = {
'name': 'my-vpc',
'resource_group': {'id': 'resource-group-id'}
}
vpc_response = vpc_service.create_vpc(vpc_prototype)
vpc_id = vpc_response.result['id']
# サブネットの作成
subnet_prototype = {
'name': 'my-subnet',
'vpc': {'id': vpc_id},
'zone': {'name': 'us-south-1'},
'ip_version': 'ipv4',
'ipv4_cidr_block': '10.0.1.0/24'
}
subnet_response = vpc_service.create_subnet(subnet_prototype)
# 仮想サーバーインスタンス(VSI)の作成
instance_prototype = {
'name': 'my-vsi-instance',
'profile': {'name': 'bx2-2x8'}, # 2 vCPU, 8GB RAM
'image': {'id': 'r006-14140f94-fcc4-11e9-96e7-a72723715315'},
'zone': {'name': 'us-south-1'},
'vpc': {'id': vpc_id},
'primary_network_interface': {
'subnet': {'id': subnet_response.result['id']}
}
}
instance_response = vpc_service.create_instance(instance_prototype)
# Red Hat OpenShift クラスター作成
container_service = IbmContainerServiceApiV1(authenticator=authenticator)
container_service.set_service_url('https://containers.cloud.ibm.com/global')
cluster_config = {
'name': 'my-openshift-cluster',
'location': 'dal10',
'machine_type': 'b3c.4x16',
'master_version': '4.14_openshift', # 2025年OpenShift最新版
'workers': [
{
'name': 'worker-1',
'machine_type': 'b3c.4x16'
}
]
}
cluster_response = container_service.create_cluster(**cluster_config)
ストレージとデータベースサービス
from ibm_cloud_databases import CloudDatabasesV5
from ibm_cos_sdk import S3
# IBM Cloud Object Storage設定
cos_client = S3(
aws_access_key_id='your-access-key',
aws_secret_access_key='your-secret-key',
endpoint_url='https://s3.us-south.cloud-object-storage.appdomain.cloud'
)
# バケットの作成
bucket_name = 'my-ibm-cloud-bucket'
cos_client.create_bucket(Bucket=bucket_name)
# ファイルのアップロード
with open('sample.txt', 'rb') as file:
cos_client.upload_fileobj(file, bucket_name, 'sample.txt')
# ファイルのダウンロード
cos_client.download_file(bucket_name, 'sample.txt', 'downloaded_sample.txt')
# IBM Cloud Databases for PostgreSQLの作成
db_service = CloudDatabasesV5(authenticator=authenticator)
db_service.set_service_url('https://api.us-south.databases.cloud.ibm.com')
deployment_config = {
'id': 'postgresql',
'name': 'my-postgresql-db',
'resource_group_id': 'resource-group-id',
'location': 'us-south',
'disk_encryption_key_crn': None,
'backup_encryption_key_crn': None,
'members': {
'allocation_count': 2,
'memory': {'allocation_mb': 1024},
'disk': {'allocation_mb': 5120}
}
}
db_response = db_service.create_deployment(deployment_config)
# IBM Db2の設定(Warehouse版)
db2_config = {
'id': 'dashdb-for-transactions',
'name': 'my-db2-warehouse',
'resource_group_id': 'resource-group-id',
'location': 'us-south',
'members': {
'allocation_count': 1,
'memory': {'allocation_mb': 8192},
'disk': {'allocation_mb': 20480}
}
}
db2_response = db_service.create_deployment(db2_config)
ネットワークとセキュリティ
# セキュリティグループの作成
sg_prototype = {
'name': 'my-security-group',
'vpc': {'id': vpc_id},
'rules': [
{
'direction': 'inbound',
'protocol': 'tcp',
'port_min': 22,
'port_max': 22,
'remote': {'cidr_block': '0.0.0.0/0'}
},
{
'direction': 'inbound',
'protocol': 'tcp',
'port_min': 80,
'port_max': 80,
'remote': {'cidr_block': '0.0.0.0/0'}
},
{
'direction': 'inbound',
'protocol': 'tcp',
'port_min': 443,
'port_max': 443,
'remote': {'cidr_block': '0.0.0.0/0'}
}
]
}
sg_response = vpc_service.create_security_group(sg_prototype)
# ロードバランサーの作成
lb_prototype = {
'name': 'my-load-balancer',
'type': 'public',
'subnets': [{'id': subnet_response.result['id']}],
'resource_group': {'id': 'resource-group-id'}
}
lb_response = vpc_service.create_load_balancer(lb_prototype)
# VPN ゲートウェイの作成
vpn_gateway_prototype = {
'name': 'my-vpn-gateway',
'subnet': {'id': subnet_response.result['id']},
'resource_group': {'id': 'resource-group-id'}
}
vpn_response = vpc_service.create_vpn_gateway(vpn_gateway_prototype)
# IBM Cloud Internet Services(Cloudflare統合)
from ibm_cloud_internet_services import CisServicesV1
cis_service = CisServicesV1(authenticator=authenticator)
domain_config = {
'name': 'example.com',
'type': 'full'
}
domain_response = cis_service.create_zone('instance-id', **domain_config)
サーバーレスとFunctions
from ibm_cloud_functions import CloudFunctionsV1
# IBM Cloud Functions設定
functions_service = CloudFunctionsV1(authenticator=authenticator)
functions_service.set_service_url('https://us-south.functions.cloud.ibm.com/api/v1')
# 名前空間の作成
namespace_config = {
'name': 'my-functions-namespace',
'resource_group_id': 'resource-group-id',
'location': 'us-south'
}
namespace_response = functions_service.create_namespace(**namespace_config)
# アクション(関数)の作成
action_code = """
def main(params):
name = params.get('name', 'World')
return {'message': f'Hello, {name}!'}
"""
action_config = {
'name': 'hello-action',
'namespace': namespace_response['name'],
'exec': {
'kind': 'python:3.9',
'code': action_code
}
}
action_response = functions_service.create_action(**action_config)
# トリガーの作成
trigger_config = {
'name': 'hello-trigger',
'namespace': namespace_response['name']
}
trigger_response = functions_service.create_trigger(**trigger_config)
# ルールの作成(トリガーとアクションの関連付け)
rule_config = {
'name': 'hello-rule',
'namespace': namespace_response['name'],
'trigger': f"{namespace_response['name']}/hello-trigger",
'action': f"{namespace_response['name']}/hello-action"
}
rule_response = functions_service.create_rule(**rule_config)
# 関数の実行
invoke_config = {
'name': 'hello-action',
'namespace': namespace_response['name'],
'params': {'name': 'IBM Cloud'}
}
result = functions_service.invoke_action(**invoke_config)
モニタリングとDevOps統合
from ibm_logs import LogsV0
from ibm_sysdig import SysdigV1
# IBM Cloud Logs設定
logs_service = LogsV0(authenticator=authenticator)
logs_service.set_service_url('https://api.us-south.logs.cloud.ibm.com')
# ログアプリケーションの作成
log_app_config = {
'name': 'my-app-logs',
'subsystem_name': 'webapp'
}
log_app_response = logs_service.create_application(**log_app_config)
# IBM Cloud Monitoring(Sysdig)設定
monitoring_service = SysdigV1(authenticator=authenticator)
# ダッシュボードの作成
dashboard_config = {
'name': 'My Application Dashboard',
'description': 'Dashboard for monitoring my application',
'layout': {
'type': 'grid'
}
}
dashboard_response = monitoring_service.create_dashboard(**dashboard_config)
# Red Hat OpenShift DevOps統合
from kubernetes import client, config
# OpenShiftクラスターへの接続
config.load_kube_config() # OpenShiftクラスターのkubeconfigが必要
# デプロイメント設定
deployment = client.V1Deployment(
api_version="apps/v1",
kind="Deployment",
metadata=client.V1ObjectMeta(name="my-app"),
spec=client.V1DeploymentSpec(
replicas=3,
selector=client.V1LabelSelector(
match_labels={"app": "my-app"}
),
template=client.V1PodTemplateSpec(
metadata=client.V1ObjectMeta(
labels={"app": "my-app"}
),
spec=client.V1PodSpec(
containers=[
client.V1Container(
name="my-app",
image="my-registry/my-app:latest",
ports=[client.V1ContainerPort(container_port=8080)]
)
]
)
)
)
)
# Watson AI(Watsonx.ai)統合
from ibm_watsonx_ai import APIClient
# Watsonx.ai設定
watsonx_credentials = {
'url': 'https://us-south.ml.cloud.ibm.com',
'apikey': 'your-api-key'
}
watsonx_client = APIClient(watsonx_credentials)
# AI モデルデプロイメント設定
model_config = {
'name': 'my-ai-model',
'type': 'online',
'online': {
'parameters': {
'serving_name': 'my-model-serving'
}
}
}
deployment_response = watsonx_client.deployments.create(**model_config)