カテゴリー: インフラ

  • Meta×AMD 1000億ドル契約とバッテリー不要IoT:海外インフラ・ハードウェアの激動

    2026年2月最終週、テックインフラの世界で歴史的な動きがありました。MetaとAMDの1000億ドル規模のチップ契約と、バッテリー不要IoTの業界標準化を目指すAmbient IoT Allianceの発足です。日本ではあまり報道されていませんが、いずれも今後のテック業界の方向を決定づける重要なニュースです。

    Meta × AMD:史上最大のAIチップ契約

    2月24日、MetaがAMDと最大1000億ドル(約15兆円)の複数年チップ契約を発表しました。AI史上最大の単一契約です。

    契約の詳細

    • ハードウェア:AMD Instinct MI450ベースのカスタムGPU + 第6世代EPYC CPU
    • 規模:最大6ギガワットのAMD GPUキャパシティを展開
    • 出荷開始:2026年下半期
    • 株式ワラント:AMDがMetaに対し、最大1億6000万株(発行済み株式の約10%)を1株あたり0.01ドルで発行するワラントを付与。マイルストーン達成に応じて権利確定

    なぜ重要か

    注目すべきは3つのポイントです。

    第一に、Nvidiaの独占が崩れ始めていること。MetaはNvidiaにも数百万個のGPUを発注していますが、AMDに1000億ドルを投じることで戦略的に分散化を図っています。

    第二に、株式ワラントという前例のないスキーム。ハードウェア契約に株式報酬を組み合わせるのは異例で、AMDの株価(とMetaの交渉力)に大きなインパクトを持ちます。

    第三に、AIインフラ投資の規模感。Alphabet、Amazon、Meta、Microsoftの4社で2026年のAIインフラ投資は合計約6500億ドルに達する見通しです。2025年の約4100億ドルから58%増です。

    Ambient IoT Alliance:バッテリー不要IoTの標準化

    2月23日、Ambient IoT Allianceが設立されました。バッテリー不要のIoTデバイスの標準化を推進する業界団体です。

    参加企業

    設立メンバーはAtmosic、Infineon、Intel、PepsiCo、Qualcomm、VusionGroup、Wiliot。半導体大手からPepsiCoのような消費財企業まで参加しているのが特徴です。

    エナジーハーベスティングIoTとは

    環境中のエネルギー(無線電波、光、振動、温度差など)を収集して動作するIoTデバイスです。バッテリーが不要なため、以下のような用途が想定されています。

    • サプライチェーン:商品の物流トラッキング(バッテリー交換不要)
    • 小売:電子棚札、在庫管理センサー
    • 環境モニタリング:農業、建物の構造監視
    • 医療:使い捨てセンサーパッチ

    PepsiCoの参加は、大手消費財企業がサプライチェーンの可視化にバッテリーレスIoTを本気で検討していることを示しています。ESP32のような汎用IoTチップとは異なるレイヤーですが、IoT業界全体の進化を加速させる動きです。

    まとめ

    ハードウェアとインフラの世界では、AI投資の爆発的な拡大と、IoTの新しいパラダイム(バッテリーレス)が同時進行しています。Nvidiaの独占崩壊とバッテリー不要IoTの標準化は、今後数年のテック業界を大きく変える可能性があります。日本でも注視すべきトレンドです。

  • Docker ComposeでNode.js + PostgreSQL環境を5分で構築する

    開発環境の構築は地味に時間がかかる作業です。Docker Composeを使えば、Node.jsアプリケーションとPostgreSQLデータベースを含む開発環境を、たった1コマンドで立ち上げることができます。

    前提条件

    • Docker Desktop がインストール済み
    • docker compose コマンドが使える状態

    プロジェクト構成

    my-app/
    ├── docker-compose.yml
    ├── Dockerfile
    ├── package.json
    ├── src/
    │   └── index.js
    └── .env

    docker-compose.yml

    version: "3.8"
    services:
      app:
        build: .
        ports:
          - "3000:3000"
        environment:
          - DATABASE_URL=postgresql://myuser:mypass@db:5432/mydb
          - NODE_ENV=development
        volumes:
          - ./src:/app/src
        depends_on:
          db:
            condition: service_healthy
    
      db:
        image: postgres:16-alpine
        environment:
          POSTGRES_USER: myuser
          POSTGRES_PASSWORD: mypass
          POSTGRES_DB: mydb
        ports:
          - "5432:5432"
        volumes:
          - pgdata:/var/lib/postgresql/data
        healthcheck:
          test: ["CMD-SHELL", "pg_isready -U myuser -d mydb"]
          interval: 5s
          timeout: 5s
          retries: 5
    
    volumes:
      pgdata:

    Dockerfile

    FROM node:20-alpine
    WORKDIR /app
    COPY package*.json ./
    RUN npm ci
    COPY src/ ./src/
    EXPOSE 3000
    CMD ["node", "src/index.js"]

    Node.jsアプリケーション

    // src/index.js
    const { Pool } = require("pg");
    const http = require("http");
    
    const pool = new Pool({
      connectionString: process.env.DATABASE_URL,
    });
    
    const server = http.createServer(async (req, res) => {
      try {
        const result = await pool.query("SELECT NOW() as current_time");
        res.writeHead(200, { "Content-Type": "application/json" });
        res.end(JSON.stringify({
          message: "Hello from Docker!",
          db_time: result.rows[0].current_time,
        }));
      } catch (err) {
        res.writeHead(500);
        res.end(JSON.stringify({ error: err.message }));
      }
    });
    
    server.listen(3000, () => {
      console.log("Server running on port 3000");
    });

    起動と確認

    # ビルド&起動
    docker compose up -d
    
    # ログ確認
    docker compose logs -f app
    
    # 動作確認
    curl http://localhost:3000

    開発時のTips

    • volumesでsrcディレクトリをマウントしておけば、ファイル変更が即座に反映されます(nodemonと組み合わせると便利)
    • healthcheckを設定しておくと、DBが起動する前にアプリが接続しようとするエラーを防げます
    • PostgreSQLのデータはnamed volumeに保存されるので、コンテナを再作成してもデータは消えません

    まとめ

    Docker Composeを使えば、チームメンバー全員が同じ環境で開発できます。新メンバーのオンボーディングも「git cloneしてdocker compose up」だけで完了。環境差異によるトラブルから解放されます。

  • Fly.ioでNode.jsアプリを無料デプロイ:Heroku代替の本命

    Herokuの無料プランが廃止されて以降、個人開発者のデプロイ先として注目を集めているFly.io。東京リージョンがあり、日本からのレイテンシも低い。Node.jsアプリのデプロイ手順を実際のプロジェクトを例に解説します。

    Fly.ioの特徴

    • 東京リージョン(nrt)あり
    • Dockerベースでデプロイ
    • 無料枠: 3つのshared-cpu-1x VM、160GB転送量/月
    • PostgreSQL、Redis、S3互換ストレージも提供
    • 自動HTTPS対応

    セットアップ

    # Fly CLIインストール
    curl -L https://fly.io/install.sh | sh
    
    # ログイン
    fly auth login
    
    # プロジェクト作成
    cd my-node-app
    fly launch

    Dockerfile の準備

    FROM node:20-alpine
    WORKDIR /app
    COPY package*.json ./
    RUN npm ci --omit=dev
    COPY src/ ./src/
    EXPOSE 3000
    CMD ["node", "src/index.js"]

    fly.tomlの設定

    app = "my-awesome-app"
    primary_region = "nrt"  # 東京リージョン
    
    [build]
    
    [http_service]
      internal_port = 3000
      force_https = true
      auto_stop_machines = "stop"
      auto_start_machines = true
      min_machines_running = 0
    
    [env]
      NODE_ENV = "production"

    シークレット管理

    # 環境変数(シークレット)の設定
    fly secrets set DATABASE_URL="postgresql://..."
    fly secrets set API_KEY="sk-..."
    
    # 設定済みシークレット一覧
    fly secrets list

    デプロイ

    # デプロイ実行
    fly deploy
    
    # ログ確認
    fly logs
    
    # ステータス確認
    fly status
    
    # ブラウザで開く
    fly open

    カスタムドメイン設定

    # カスタムドメイン追加
    fly certs create example.com
    
    # DNS設定を確認
    fly certs show example.com

    まとめ

    Fly.ioは「flyctl deploy」一発でDockerアプリをデプロイできる手軽さと、東京リージョンの低レイテンシが魅力です。個人プロジェクトからスタートアップまで、幅広い用途で活用できます。

IP: 取得中...
216.73.216.31216.73.216.31