IBM Cloud

Cloud PlatformRed Hat OpenShiftWatson AIHybrid CloudEnterpriseKubernetes

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 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)