bookmark_border【解決】Windows PCが頻繁にフリーズする原因と効果的な対処法

A frustrated person looking at a frozen Windows computer screen with an hourglass cursor, realistic style, soft lighting, showing a work environment

ふと作業中にパソコンが動かなくなる経験、ありませんか?「あれ、動かない…」と思って焦った経験は誰にでもあるはず。今回はWindows PCのフリーズ対処法と根本原因を解説します。電源ボタン長押しは最終手段です!

フリーズしたときにやってはいけないこと

まず大前提として、パソコンがフリーズしたからといって、すぐに電源ボタンを長押ししたり電源コードを抜いたりするのはNGです。

なぜなら:

  1. 見かけ上フリーズしていても、実はバックグラウンドで処理が行われている可能性がある
  2. 強制終了すると保存していないデータがすべて失われる
  3. 最悪の場合、Windowsのシステムファイルが破損してしまう

「でも動かないんだから仕方ないじゃない」と思うかもしれませんが、ちょっと待ってください。実は「完全フリーズ」と見えるケースでも、適切な対処で作業を救える可能性は十分あるんです。

フリーズしたときの対処法:順番に試そう

1. まずは落ち着いて様子を見る(1~2分)

一番大切なのは慌てないことです。パソコンは一時的に負荷がかかって処理が遅くなることがあります。特に以下のようなケースでは「見かけ上のフリーズ」が起きやすいです:

  • 大きなファイルを開いているとき
  • インストールやアップデート中
  • 複数の重いアプリを立ち上げているとき

実務で使っていると、Excelの大きなファイルを開いたときに「応答なし」と表示されることがよくありますが、1~2分待つと普通に使えるようになることも多いです。

2. ディスクのアクセスランプを確認する

パソコン本体にあるランプ(通常は小さなLED)を見てみましょう。このランプが点滅している場合は、ハードディスクやSSDにデータの読み書きが行われている証拠です。つまり、パソコン内部ではちゃんと処理が続いているということ。

ランプが点滅していれば、もう少し待ってみる価値があります。私の経験上、たまにOfficeファイルの自動保存中にフリーズっぽくなることがありますが、アクセスランプを見るとしっかり動いていることがわかります。

3. マウスとキーボードの反応をテスト

次に、マウスカーソルが動くかどうか確認しましょう。

  • マウスカーソルが動く → 部分的なフリーズの可能性
  • マウスカーソルも動かない → 完全フリーズの可能性

マウスが動くなら、以下のキーボードショートカットを試してみてください:

  1. Alt + Tab: 別のアプリに切り替わるか試す
  2. Ctrl + Alt + Delete: タスクマネージャーなどを起動するメニューが表示されるか試す
  3. Windows + D: デスクトップを表示するか試す

これらが反応すれば、システム全体ではなく特定のアプリだけがフリーズしている可能性が高いです。

4. タスクマネージャーで問題のアプリを特定・終了

Ctrl + Alt + Delete を押して「タスクマネージャー」を選ぶか、直接 Ctrl + Shift + Esc でタスクマネージャーを起動します。

タスクマネージャーが起動したら:

  1. 「プロセス」タブを開く
  2. 「ステータス」列で「応答なし」と表示されているアプリを探す
  3. そのアプリを選択して「タスクの終了」をクリック

特に普段から重いアプリ(動画編集ソフトやゲームなど)を使っている方は、このパターンでのフリーズが多いです。アプリだけを終了すれば、他の作業は続けられるケースが多いです。

なぜフリーズするの?主な原因と対策

フリーズに悩まされ続けるなら、根本原因を解決する必要があります。頻繁にフリーズする主な原因は以下の通りです。

1. メモリ不足

症状: 複数のアプリを開いているときや、大きなファイルを扱うときにフリーズする

対策:

  • 使っていないアプリはこまめに閉じる
  • Chrome等のブラウザのタブは必要最低限に保つ
  • 可能であればメモリを増設する(8GB→16GBなど)

自分のパソコンがメモリ不足かどうかは、タスクマネージャーの「パフォーマンス」タブでメモリ使用率を確認できます。常に90%以上使用されているようであれば、メモリ不足の可能性が高いです。

2. オーバーヒート(熱暴走)

症状: 長時間使用した後や、動画編集やゲームといった負荷の高い作業中にフリーズする

対策:

  • パソコン底面や側面の通気口を塞がない
  • 冷却パッドを使用する(ノートPCの場合)
  • パソコン内部のホコリを定期的に掃除する
  • PCケース内にファンを追加する(デスクトップPCの場合)

ノートPCをベッドやソファの上で使うと、布地が通気口をふさいで熱がこもりやすくなります。私も以前、膝の上でノートPCを使っていてよくフリーズしていましたが、ちゃんとデスクに置くようにしたら劇的に改善しました。

PCパーツの適切な動作温度を理解することも大切です。

3. ハードディスク/SSDの不調

症状: 起動が遅い、ファイルの読み書きで頻繁にフリーズする

対策:

  • ディスクのエラーチェックを実行(エクスプローラーでドライブを右クリック→プロパティ→ツール→チェック)
  • 不要なファイルを削除し、十分な空き容量を確保(最低でも容量の15%以上)
  • バックアップを取った上で、症状が改善しなければSSDへの交換を検討

特に使用歴の長いHDDは物理的に劣化していることも多く、交換時期を検討する必要があります。私自身、5年使ったノートPCのHDDをSSDに交換したら、フリーズだけでなく全体的な処理速度も劇的に改善したことがあります。

フリーズを防ぐための日常的な対策

日々のメンテナンス:

  1. 定期的な再起動: 最低でも週1回はパソコンを完全に再起動しましょう。
  2. ディスククリーンアップ: Windowsの「ディスククリーンアップ」機能を使って不要ファイルを削除。
  3. 更新プログラムの適用: Windows Updateを定期的に確認し、更新プログラムを適用。

ディスククリーンアップの方法はMicrosoftの公式サイトが詳しいです。

予防的な設定:

  1. 起動時のアプリを減らす: スタートアップに登録されるアプリを最小限に。
    • タスクマネージャー→「スタートアップ」タブで不要なものを無効化
  2. 仮想メモリの最適化:
    • 「システムのプロパティ」→「詳細設定」→「パフォーマンス」→「設定」→「詳細設定」→「仮想メモリ」で調整
  3. 電源プランを「高パフォーマンス」に:
    • バッテリー持ちよりも処理速度を優先したい場合(デスクトップPCなら特に)

PC専門サイト「PC Watch」では、最新のパソコントラブル対策情報が定期的に更新されています。

まとめ:フリーズは「理解」で防げる

パソコンのフリーズは恐ろしいものではなく、ほとんどの場合は原因と対策がはっきりしています。以下の3点を覚えておきましょう:

  1. フリーズしても焦らない – まずは様子を見る
  2. タスクマネージャーは最強の味方 – 問題の切り分けに活用
  3. 定期的なメンテナンスが予防の鍵

この記事で紹介した方法を実践すれば、フリーズの頻度は確実に減らせるはずです。特に予防策を日常的に取り入れることで、ストレスの少ないパソコンライフを楽しめるでしょう。


それでも解決しない場合:初心者でもできる3つの選択肢

ここまで紹介した方法をすべて試しても、まだ頻繁にフリーズする場合は、パソコン自体が限界を迎えている可能性があります。

「でも、パソコンの部品を交換するなんて自分には無理…」と思った方、安心してください。ここからはパソコンを開けたり、難しい設定をしたりする必要がない方法を紹介します。

1. データだけでも守っておく:外付けSSD

フリーズのたびに強制終了を繰り返していると、ある日突然パソコンが起動しなくなることがあります。そうなると写真や仕事のファイルも一緒に消えてしまいます。

外付けSSDなら、USBケーブルでパソコンにつなぐだけ。USBメモリと同じ感覚で使えます。大事な写真や書類をコピーしておくだけで、万が一のときに「全部消えた…」という最悪の事態を防げます。

フリーズを繰り返しているPCはいつ動かなくなってもおかしくないので、まずデータの避難だけでも早めにやっておくことをおすすめします。

2. 熱がこもるのを防ぐ:ノートPC冷却台

記事の前半で「通気口を塞がないようにしましょう」と書きましたが、正直なところ、デスクの上に置いていても古いノートPCは熱がこもりがちです。

ノートPC冷却台は、パソコンの下に敷くだけでファンが回って熱を逃がしてくれるグッズです。USBでつなぐだけなので、設定も工具も一切不要。2,000〜3,000円程度で手に入るので、買い替えの前に試してみる価値はあります。

私も以前、夏場にノートPCがやたらフリーズするので冷却台を買ってみたら、それだけでかなり安定したことがあります。

3. 思い切って買い替える

こう言うと身もふたもないですが、長年使っているパソコンがしょっちゅうフリーズするなら、買い替えもひとつの方法です。

最近のパソコンは10万円前後でもメモリ16GB・SSD搭載が当たり前になっていて、古いパソコンとは比べものにならないくらいサクサク動きます。フリーズ対策にあれこれ時間を使うより、新しいパソコンにしたほうが結果的に安上がりだった、というのはよくある話です。

「でもパソコンの選び方がわからない」という方は、以下のスペックを目安にしてみてください:

  • メモリ:16GB以上(8GBだとブラウザだけで足りなくなることも)
  • ストレージ:SSD 256GB以上(HDDは選ばない)
  • CPU:Intel Core i5 以上、またはAMD Ryzen 5 以上

bookmark_borderDeepSeek-R1 をローカルで動かす [LM Studio]

手軽にローカルで動かしつつ、 REST API も叩けるようにする方法まではあまり記事になっていないのでメモです。ご参考にされる場合は自己責任にて。

なぜ LM Studio なのか?

LM Studio は、ローカルで LLM を実行するアプリケーションです。セットアップが簡単な上、モデルHuggingは Hugging Face から直接ダウンロードも可能です。

REST API のサーバもワンクリックで起動でき、LLM をローカルで使いたい自前アプリ開発者にも魅力です。

LM Studio の特長

  • GUI:CLI を介さず、モデルを指定すればChatGPTのようなチャット画面をすぐ出せる
  • LLMのモデル:DeepSeek-R1 を含む多くのモデルに対応。Hugging Faceを検索しそのままダウンロードしてこれる
  • GPU 最適化:CUDA 対応のマシンであれば自動で使用してくれる

LM Studio で DeepSeek-R1 を動かす手順

1. LM Studio のインストール

LM Studio は Windows、macOS、Linux に対応しています。

公式サイト(https://lmstudio.ai)から適切なバージョンをダウンロードし、インストールします。

2. DeepSeek-R1 のモデルをダウンロード

最初の画面で、モデルを何かダウンロードするよう促されます。そこで DeepSeek-R1 が出ていればそのままダウンロードしましょう。

Hugging Face Hub などのリポジトリからダウンロードも可能です。左側の虫眼鏡のアイコンの「Discover」から検索しましょう。

  1. 「Discover」 タブ の「Model Search」
  2. GGUFにチェックを入れ、モデルを検索

あるいは、Hugging Face に自分でアクセスし、手動でモデルを読ませることもできます。

  1. https://huggingface.co/ にアクセスし、モデルをダウンロードしておく
  2. 「My Models」タブを開く
  3. ディレクトリの指定画面で、「Models Directory」の部分でモデルが入っているディレクトリを指定する

GPUは自動で使われる

GeForceが積まれていれば、基本的には何もしなくても自動でCUDAを介して使用されます。

REST API を動かす

「Developer」のタブを開き、 「Status」のトグルをクリックすると REST API を提供するサーバが起動します。

あとは自由に叩くだけです。これは便利。

curl http://localhost:1234/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-r1-distill-qwen-7b",
    "messages": [
      { "role": "system", "content": "○○○○○○" },
      { "role": "user", "content": "○○○○○○" }
    ],
    "temperature": 0.5,
    "max_tokens": -1,
    "stream": false
}'

楽になったものだ…

カテゴリー: AILLM

bookmark_border「あなたのRealmはまもなくアップデートされます」と出たらこうする [Minecraft統合版]

Minecraft統合版でRealmsに入ろうとしたら「あなたの Realm はまもなくアップデートされます。あなたもアップデートが必要になります。」と表示されてワールドに入れないときのメモです。

結論

Microsoft Storeを開き、Minecraft統合版をアップデートする。

手順

1. 一旦Minecraftを終了する

バツボタンなどで一度終了しましょう。

2. Microsoft Storeを起動する

スタートメニューで store と検索し、Microsoft Storeを起動します。

3. 「ライブラリ」を表示する

Microsoft Storeを開いたら、左下の ライブラリ をクリックします。

4. Minecraftを更新する

右上の 更新プログラムを取得する をクリックします。

Minecraft統合版(Minecraft for Windows)の更新が来ていれば、そのままアップデートが始まります。

5. Minecraftを起動する

アップデートの内容が表示されていればうまくいっています。

bookmark_border[Minecraft統合版] インベントリや作業台を開くとフリーズする原因

結論

IMEがGoogle日本語入力になっている。

対策

Microsoft IMEに変更する。

画面右下のGoogle日本語入力のアイコンを押し、Microsoft IMEをクリックします。すでにMinecraftがフリーズしている場合、一度終了してもう一度起動します。


[Promotion] Minecraft統合版でサーバーを立ててマルチプレイをするならXserverがおすすめです。

個人的にはRealmsが一番始めやすいと思いますが、個人でサーバーを借りる方法はRealmsよりも設定の自由度が高いことが特徴です。

Minecraftに慣れてきたり、Realmsでは物足りなくなってきたという方はマルチプレイ環境を用意する上で選択肢に入れても良いでしょう。


バグとして公式も認識済み

公式のバグ報告サイトに投稿があり、公式も返答をしています。

MOJANG STUDIOS – Opening any in-game text field(such as chat) makes Minecraft freezing(When using Google Japanese Input (Google日本語入力) for Windows)

しかし上記の対処法があるためか、同ページを見ると公式は現時点で修正の予定は無いとしているようです。

Opening the in-game chat always causes Minecraft to freeze (the window remains open, but it may have crashed). I cannot move, hear, or do anything in Minecraft Bedrock Edition. The only way to escape from this is to press Alt+Tab or force-quit my computer.

(チャットを開くたびにフリーズします。(ウィンドウは開いたままですが、クラッシュしているのかもしれません。) 動けず、音もせず、何もできません。Minecraft 統合版です。Alt+Tabかコンピュータを強制終了するほか何もできません)

MOJANG STUDIOS – Opening any in-game text field(such as chat) makes Minecraft freezing(When using Google Japanese Input (Google日本語入力) for Windows)

処理性能No.1!快適なゲーム環境なら「Xserver for Game」


bookmark_borderJava21からの「データ指向」は「オブジェクト指向」と何が違うのか

特にJava20,21以降で話題になっている「データ指向プログラミング」とは何か、オブジェクト指向と何が違うのかの個人的まとめです。

※本来は型や継承・implementsの縛りも関係しますが、この記事では「データは不変である」という要素に重きを置いています。

オブジェクト指向を置き換えるものではない

データ指向プログラミングはオブジェクト指向と共存する概念で、JavaのアップデートによってJavaがオブジェクト指向言語から脱却するという意味ではありません。

オブジェクト指向をより保守性高く使う上でベースとなる考え方・テクニックのことです。

Java20で「データ指向」という言葉が出てきた背景

保守性、(言語レベルで)セキュリティの高いJavaの書き方が今まで多数ベストプラクティスとして広まってきました。「プロパティは不変にすべき」「不変ゆえのgetter/setterの簡略化」などです。後続言語のKotlinやSwiftは言語レベルでそれをサポートするようになりました。

2023年になり、Javaもそれらの考え方を言語レベルで本格的にサポートするようになってきました。それらのアップデート内容は総じて言うと上述の考え方を一言で言う「データ指向」という考え方のもと実施されているようです。

データ指向プログラミングの原則

以下、データ指向のことを DOP と呼びます。(Data-Oriented Programming)

1. 「データ」は不変

DOPにおいて「データ」は不変です。例えばインスタンスにおいて一度値がセットされたプロパティには変更を許しません。意図しないデータの書き換えでバグやデータの不整合の可能性を減らすためです。

これを実現するには、Javaの record が役立ちます。

サンプル:データ指向を意識しない場合

Javaをはじめ、オブジェクト指向のプログラミング言語ではクラスにgetterとsetterを書くことが一般的です。

プロパティを読み取り専用にしたいときはプロパティをfinalにしてsetterを書かないという選択もありますが、もちろんfinalを書かなければその効果は消えます。setterを書かなかったとしても、プロパティに再代入するメソッドは他にいくらでも作成可能です。

public class Person {
    private String name;
    private int age;
    // (略)コンストラクタ
    // (略)getterとsetter
    // setter以外にもプロパティを書き換えるメソッドは書ける
}

public class Main {
    public static void main(String[] args) {
        Person person = new Person("Alice", 30);
        System.out.println(person.getName());
    }
}

サンプル:データ指向の場合

recordはデータ指向を支えるキーワードです。recordでクラスを作成することでプロパティがfinalであることが保証され、setterを書く余地すら排除されます。

つまりrecordを使う限りそのプロパティへの再代入は文法上不可能になり、データ指向の考えに沿ったコードになります。

public record Person(String name, int age) { }

public class Main {
    public static void main(String[] args) {
        Person person = new Person("Alice", 30);
        System.out.println(person.name());
    }
}

2. ロジックはデータから独立させる

データとそれを操作するロジックを分離することもDOPのベースにある考え方のひとつです。データは単なる「データ」であって、振る舞いを持たせません。データの整合性を保持しながら、システムの柔軟性と拡張性を高めることを目指しています。

サンプル:データ指向を意識しない場合

一般的なオブジェクト指向プログラミングでは、プロパティとそれに関連するメソッドがクラスに一緒に定義されます。データとロジックの結びつきが強固になるのは必然です。

メソッドからプロパティを書き換えることが可能になると、メソッドを呼び出す順番によって実行結果が変わる可能性が出てきます。その複雑さが現れるのはテストを書くときでしょう。

public class Person {
    private String name;
    private int age;
    // (略)コンストラクタ, getter, setter

    public String generateGreet() {
        return "こんにちは、" + this.name + "といいます。";
    }
}

public class Main {
    public static void main(String[] args) {
        Person person = new Person("Alice", 30);
        System.out.println(person.generateGreet());
        // こんにちは、Aliceといいます。
    }
}

痒い例:テストが複雑になる

クラスにデータとメソッドを一緒に書いた場合、メソッドがプロパティを書き換える(再代入など)可能性を考慮してテストを書かなければなりません。テストケースは増え、メソッドを実行する順番も動作に影響するでしょう。結果としてテストは複雑になります。

このクラスについてよく知らない人がこのクラスの generateGreetMessage() のテストコードを書いたとします。このとき、その人はテストで generateGreetMessage() を実行したことで nameage が書き換わる可能性を意識すべき余地は残ります。

public class PersonTest {
    
    @Test
    public void testIsSenior() {
        Person person = new Person("Alice", 70);
        assertEquals("こんにちは、Aliceといいます。", person.generateGreet());

                // ↑この実行で person.name や person.age
        // が書き換わる余地は文法上残されている。
        // personのメソッドの動作がgenerateGreetを実行したことで
        // 変わるかもしれないことを意識する必要が出てくる
    }
}

サンプル:データ指向の場合

DOPではビジネスロジックは独立した関数やサービスとして実装します。データは整合性を保ちやすくなり、処理の独立性も高くなります。

public record Person(String name, int age) { }

public class PersonService {
    // ビジネスロジックはPersonから独立した関数やサービスとして実装
    public static String generateGreet(Person person) {
        return "こんにちは、" + person.name() + "といいます。";
    }
}

public class Main {
    public static void main(String[] args) {
        Person person = new Person("Alice", 30);
        System.out.println(PersonService.generateGreet(person));
        // こんにちは、Aliceといいます。
    }
}

恩恵の例:テストしやすくなる

ビジネスロジックはサービスクラスや他の独立した処理に分離するのがDOPのベースにある考え方です。結果、テストの対象はPersonというよりその処理やサービスクラスになります。

Personはどれほど参照されようと中身の name や age は変化しません。単なるパラメータとして渡すだけで良くなり、期待される出力を確認することだけに意識を集中してテストケースを作成できます。

public class PersonServiceTest {
    
    @Test
    public void testIsSenior() {
        Person person = new Person("Alice", 70);
        assertEquals("こんにちは、Aliceといいます。", PersonService.generateGreet(person));

        // ↑この実行でpersonの中身が書き換わることを恐れなくて良い。
        // personに再代入が無い限り、
        // PersonService.generateGreet(person) はいつも同じ結果を返す
    }
}

要は

  • オブジェクト指向プログラミングの代わりではない。共存して使用する新しいプログラミングのスタイル。
  • データは不変にし、振る舞いはサービスクラスや他の独立した処理に分離。
    • 何度実行しても同じ結果を期待できる仕組みにすることで整合性、保守性の向上を目指す。

Javaがデータ指向を推す背景

処理がインスタンスの外に独立するということはビジネスロジックのクラスがプロジェクト内に増え、結果コードの管理負担が増大することは容易に想像できます。

しかしJavaOneの登壇者が述べる通り、昨今「大規模開発」と呼ばれるプロジェクトは小さなサービスの集合体の形を取っているケースが少なくありません。

Data-Oriented Programming in Java – YouTube

Javaのオブジェクト指向を支える「型」の概念も、大規模開発のためというより「データ指向」という考えを支えるツールに今や代わりつつあるという考え方のようです。

カテゴリー: Java

bookmark_borderMacでAndroid File Transferが認識しないときはこうする

結論

  1. 通知パネルを開き、「このデバイスをUSBで充電中」をタップ。
  2. 「ファイル転送/Android Auto」をタップする。
  3. Android File Transferの再起動・ケーブル再接続

ケーブルで繋ぐと通知パネルに「Androidシステム このデバイスをUSBで充電中」と出ているはずなので、これをタップします。

「USBの設定」画面の「USBの接続用途」の下記の部分をタップします。

bookmark_borderUSBメモリの使用を禁止、制限する方法 [Windows 10 Home][レジストリ]

USBメモリの使用を禁止または制限する方法を検索すると「グループポリシー」を操作する手順がヒットすることがありますが、Windows 10 Proの機能のためHomeでは使えません。Windows 10 Homeでは別の方法を取る必要があります。

実施の前に

レジストリを操作します。念のため変更を行う前にシステムのバックアップを取得してください。ご参考にされる場合は自己責任にて。

手順

1. Windows + R キーで「実行」ウィンドウを起動する

2. regedit と入力し、OK ボタンをクリック

レジストリエディタを起動します。

3. 画面左側で USBSTOR を探し、クリック

USBで接続されたストレージデバイスへの読み書きの許可を設定する項目です。

HKEY_LOCAL_MACHINE
┗ SYSTEM
  ┗ CurrentControlSet
    ┗ Services
      ┗ USBSTOR

4. 画面右側の Start の項目をダブルクリック

5. 「値のデータ」に 4 と入力し、OK をクリック

恐らく既に 3 が設定されているので、 4 と上書きします。

6. レジストリエディタを閉じ、PCを再起動

これでUSBメモリデバイスの使用が禁止されます。


戻したいときは

USBメモリの使用を再度許可したい場合はもう一度上記の操作をし、Start の値を4から 3 に変更してください。

手順

上記1~4の作業を行う。

5. 「値のデータ」に 3 と入力し、OK をクリック

3 で読み込みと書き込みが許可され、4で禁止になります。

bookmark_border[Mac] Excelが重い・固まるときはこうする

最近Mac版Excelで動作がひどく重いことがあり、調べたところフォントの重複解決やライブラリから設定ファイル削除といった情報が出てきて試したものの全く効果がなく困り果てていました。

そんなこんなであれこれ試しているうちに効いた対処法をメモ書きとして残します。極めて簡単です。


1. セルを全選択する

Excelを開き、対象となるシートを選択したら、シートの左上角のセルをクリックするか command + A で全てのセルを選択します。

2. フォントを「MS Pゴシック」に変更する

セルのフォントを「MS Pゴシック」に変更します。

上部のメニューバーにある「書式」から「フォント」を選択し、「MS Pゴシック」を選ぶか、ツールバーのフォントメニューから直接選択します。意外かもしれませんが私はこれでとんでもない重さから開放されました。

実を言うと「MS Pゴシック」以外のフォントでもいけることが確認できています。(「M+font」など)

私はPythonで出力した50-60KB程度のExcelファイルが大変重く、Arialが設定されていたのでそれを別のフォントに変えたところ問題なく動作するようになりました。


Mac版Excelの動作が重たく感じる場合、Font Bookでの重複解決や設定ファイル削除を試す前に、まずはフォントの変更をおすすめします。皆様の快適なExcel作業の一助となれば幸いです。

bookmark_border結局サーバーレスとは一言で說明すると何なのか

多くのサイトでサーバーレスについてさまざまな説明や定義がありますが、自社製品の宣伝がベースだったり実例紹介が長いものだったりとわかりにくいものも多いので簡潔に説明する試みです。


※筆者はAWS Lambdaユーザーですが、簡潔な說明に振れたため個人的解釈が含まれているかもしれない旨ご了承ください。


結論

アプリ開発者がサーバの運用・管理を意識せずにアプリケーションを実行・拡張できるクラウドコンピューティングの仕組み・考え方のこと。サーバーが存在しない仕組みのことではない。

よく聞く AWS Lambda、Azure Functions、Google Cloud Functions とは何なのか

サーバーレスの仕組み・考え方を実際に実現したクラウドサービスの名称です。

これらのサービスを使うと例えば「このURLにアクセスがあったらこのPythonの関数を実行して」という設定をブラウザ上で行なえます。アプリ開発者はその「URL」と「Pythonのコード」の設定をブラウザ上でぽちぽちするだけで良いのです。

アプリ開発者はOSやWebサーバー、Pythonなどのインストールや設定をスキップしていきなりPythonなどのコードをサーバーに実行可能状態で配置できます。

コードは結局LinuxなどのOSの上で動くわけですが、アプリ開発者側が「サーバーの存在を意識しなくてもすぐサービスを開始できる」のがサーバーレスの趣旨です。(つまり「サーバー」が意味するのは、本来保守が必要なOS, その他基本的なアプリケーションなどのことです。Python以外の言語ももちろん実行できます。)

飛び交っている様々な說明の意味

サーバーレスについて説明するサイトでは概ね以下のような要点が説明されています。

インフラ管理の手間が省ける

意味:本来であれば自前のサービスを世界に公開したい場合、Linuxがインストール済みのマシンを借りて(AWSではEC2など)、自分でOSやWebサーバの設定をして… という作業が必要です。でもサーバーレスの概念を踏襲したAWS Lambdaなどのサービスを使うことでそれをスキップできます。

イベント駆動型

意味:例えばAWS Lambdaでは、AWS Lambda上で自分が書いたPythonのコードのどの関数をどんなタイミングで実行するかを設定できます。例えば「特定のURLにアクセスがあったとき」「特定のデータベースに変更があったとき」などです。「〇〇のとき」のことを「イベント」や「トリガー」と言います。

拡張性が高い

意味:AWS Lambdaをはじめさまざまなサーバーレスのサービスでは、利用者の数が増えてもコードがスムーズに動作するよう、実行するマシンの性能をアップする機能を使えます。まさに、アプリ開発者にサーバーを意識させない「サーバーレス」の概念の恩恵です。

コスト効率が良い

意味:コンピュータを間借りするサービスは契約期間中ずっと、またはコンピュータが起動している時間に対して課金されるのが普通です。しかしサーバーレスのサービスは原則、実際に使用されたリソースに対してのみ課金されます。あまり利用者がいないけど維持費だけがじわじわかかり続けるという事態への対策として有効です。

これらの説明は、サーバーレスが提供する利点や特性を示しています。しかし、これらの情報だけでは「サーバーレスとは何か」という本質的な意味を完全に理解するのは難しいこともあるため、各点を深く理解することが重要です。

サーバーレスの思想

もちろんデータベースと接続したり、他のAPIを叩いたりとし始めるとできることは無限に広がります。

「サーバーレスを使ってこんなサービスを開始しました!」という話でシステムの構成図などを見ると複雑に見えることもありますが、サーバーレスのベースにある考え方はシンプルです。

それは「アプリ開発者をOSやWebサーバーなどの面倒な設定から開放し、『このタイミングでこのコードを実行する』という設定だけでサービスを公開できる世界を提供する」ことです。

bookmark_border3Dプリンター用フィラメントの選び方|PLA、TPU、ABS、PETGを徹底比較

3Dプリンター用フィラメントの選び方|PLA、TPU、ABS、PETGを徹底比較

3Dプリンター用フィラメントとは?

3Dプリンターの材料となる細長いプラスチック素材です。

多くの場合、直径1~3mmの糸状で、リールに巻かれています。プリンター内のノズルで加熱されて溶け、層ごとに積み重ねることで造形されます。

PLA(ポリ乳酸)

それなりの強度があり、安価で初心者でも扱いやすい。とりあえず何か出力したい・プロトタイプを作りたいとき向け。

長所:

  • 生分解性素材で、環境に優しいとされる。
  • 低温で印刷可能で初心者向け。
  • 臭いが弱く、家庭内での使用にも適している。

短所:

  • 耐熱性が低く、車内や高温環境には不向き。
  • 柔軟性がなく、衝撃に弱い。

適した用途:

  • プロトタイプ、人形、デコレーションアイテムなど。
コスト比較的安価
特性やや硬め。生分解性があり環境に優しいとされる
強度中程度の強度で、剛性が高い
印刷温度180-220℃
欠点高温に弱く、長期間の耐久性に劣る

TPU(熱可塑性ポリウレタン)

やわらかめ。靴底、スマホケースなど向け。

長所:

  • 柔軟性と弾力性、衝撃吸収性。
  • 耐油性・耐薬品性を持つものもある。

短所:

  • 印刷スピードが遅い。
  • ノズルの詰まりが起きやすい。

適した用途:

  • スマホケース、パッキン、靴底、柔軟な部品。
コストやや高価
特性柔軟で伸縮性がある
強度強くて耐摩耗性が高い
印刷温度220-250℃
欠点印刷が難しく、特定のプリンターや専門の経験が必要な場合がある

ABS(アクリロニトリルブタジエンスチレン)

耐久性が強い。機械部品など向け。

長所:

  • 強度と耐熱性。
  • 表面加工がしやすい。

短所:

  • 印刷時に臭いが発生する。
  • 反りやすいので、加熱式のベッドが必要。

適した用途:

  • 工業用パーツ、電化製品ケース、車用部品。
コストやや高価だがPLAほどではない
特性PLAよりはやわらかめ。加工しやすい。耐衝撃性、耐久性、耐熱性がある
強度強い
印刷温度210-250℃。ヒートベッドが必要な場合がある
欠点臭いがきつく、換気が必要。印刷が難しい場合がある

ABSは冷却時に収縮する性質があるため、ヒートベッドが特に必要とされる。(ヒートベッドはプリント物の底部を一定の温度に保つ機能や部品のこと)

PETG(ポリエチレンテレフタラートグリコール)

強度が高く、紫外線耐性がある。食品容器、屋外用部品、機械部品など向け。

長所:

  • 強度と柔軟性のバランスが良い。
  • 耐熱性が他のフィラメントより比較的高い。
  • 湿気に強く、屋外用途にも適している。

短所:

  • ベッドへの密着性が強すぎる場合があり、印刷設定が難しい。

適した用途:

  • 屋外用部品など。
コストやや高価だがPLAほどではない
特性PLAとABSの中間的な特性。柔軟性、耐候性と化学耐性を併せ持つ
強度高い
印刷温度220-250℃
欠点PLAよりもベッド表面に強く付着することがあり、印刷難易度が高い