モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

工作HardwareHub ロゴ画像 (Laptop端末利用時)
工作HardwareHub ロゴ画像 (Mobile端末利用時)
目次目次を開く/閉じる

t2.micro にスワップ領域を追加するための設定例

モーダルを閉じる

ステッカーを選択してください

モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2015/05/10
最終更新最終更新
2017/09/14
記事区分記事区分
一般公開

目次

    アカウント プロフィール画像 (サイドバー)

    3Dモデリングとゲームエンジンに興味があります。Blenderも活用!

    0
    ステッカーを贈るとは?

    t2.micro に限らず AWS EC2 のインスタンスにはスワップ領域が確保されていません。コスト削減のために必要最小限の性能を備えたインスタンスタイプを選択してしまうと、メモリが不足して OOM Killer によってプロセスが kill されてしまう可能性が高い状態が継続して危険です。そこで、非常事態にはスワップできるように設定を行います。今回 t2.micro を利用していますが基本的な考え方は他のインスタンスタイプでも同じです。

    スワップ領域の準備

    スワップ領域には /dev 以下のデバイスをパーティションとして利用する「スワップパーティション」と、ファイルシステム内のファイルを利用する「スワップファイル」の二種類があります。今回の例ではパーティションでは EBS を /data にマウントします。EBS には Amazon EBS General Purpose (SSD) volumes を選択します。

    補足

    一部のインスタンスファミリー(T1、T2 など)は、インスタンスストアボリュームをまったくサポートせず、ストレージとしては Amazon EBS のみを使用します。

    • Root ボリュームに十分な空きがある場合は EBS をマウントせずに OS と同じファイルシステムをスワップファイルの格納領域として利用できます。
    • 数年前は I/O あたり追加課金がなされる Amazon EBS Magnetic volumes しかなかったためクラウド破産の危険性がありました。現在は Amazon EBS の価格 にあるように Amazon EBS General Purpose (SSD) volumes が選択できます。
    • Root ボリュームや Amazon EBS General Purpose (SSD) volumes がサポートする IOPS は小さいためスワップ領域を利用すると低速になります。あくまでも非常事態用と考えます。
    • Amazon EBS Provisioned IOPS (SSD) volumes がサポートする IOPS は大きく設定できますが 1 GB あたりのコストは高くなります。

    スワップファイルの作成

    ここまでの設定で EBS が /data にマウントされているとします。以下のコマンドでスワップファイルを作成します。

    必要に応じてスワップファイルを格納するディレクトリを作成します。

    $ sudo mkdir /data/tmp
    $ sudo chmod 777 /data/tmp
    

    スワップファイルを作成します。t2.micro は実メモリが 1 GB ですので 2 GB としました。

    $ sudo dd if=/dev/zero of=/data/tmp/swap.img bs=1M count=2048
    
    • if=/dev/zero → input file から 0 を読み出します
    • of=/data/tmp/swap.img → 出力ファイル (output file)
    • bs=1M → 一度に書き込むバイト数
    • count=2048 → ブロック "bs=1M" をコピーする回数

    作成できました。

    $ du -h /data/tmp/swap.img
    2.1G    /data/tmp/swap.img
    

    権限を変更します。

    $ sudo chmod 600 /data/tmp/swap.img
    

    スワップファイルとして初期化

    $ sudo mkswap /data/tmp/swap.img
    スワップ空間バージョン1を設定します、サイズ = 2097148 KiB
    ラベルはありません, UUID=fecce2a6-ec57-49d3-9036-f77a8a0dc29b
    

    スワップファイルを手動で認識させる

    $ sudo swapon /data/tmp/swap.img
    

    有効になりました。

    $ free -m
                 total       used       free     shared    buffers     cached
    Mem:           996        782        213          0         14        132
    -/+ buffers/cache:        636        360
    Swap:         2047          0       2047  ←★
    

    別の確認方法も記載します。

    $ swapon -s
    Filename               Type    Size    Used    Priority
    /data/tmp/swap.img     file    2097148 0       -1
    

    インスタンス起動時にスワップファイルが自動で認識されるように設定 (fstab)

    EBS のマウント設定を記載した /etc/fstab にスワップファイルの設定も記載できます。以下のように追記します。

    /etc/fstab

    #
    LABEL=/     /           ext4    defaults,noatime  1   1
    tmpfs       /dev/shm    tmpfs   defaults        0   0
    devpts      /dev/pts    devpts  gid=5,mode=620  0   0
    sysfs       /sys        sysfs   defaults        0   0
    proc        /proc       proc    defaults        0   0
    /dev/xvdf   /data       ext4    defaults,nofail  0   2  ←EBSマウントのために追加した設定
    /data/tmp/swap.img  none  swap  defaults,nofail  0   0  ←今回追加する設定
    

    通常のファイルシステムの設定については

    $ sudo mount -a
    

    によって設定の検証ができました。しかしながら今回はスワップファイルの設定ですので mount ではなく以下のように検証します。

    $ sudo swapon -a
    

    これは /etc/fstab に記載のあるスワップファイルを認識させようとします。

    0
    詳細設定を開く/閉じる
    アカウント プロフィール画像 (本文下)

    3Dモデリングとゲームエンジンに興味があります。Blenderも活用!

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    さらに詳しく →
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      関連記事

      • AWS EC2 インスタンスの選定方法
        準仮想化と完全仮想化 AWS のインスタンスタイプが準仮想化と完全仮想化のどちらの仮想化技術を採用したハードウェアであるかによって、使用できる AMI (OS) が異なるのは以下の理由によります。 準仮想化 ParaVirtualization (PV) において OS は自分が仮想化用のハードウェア上で動作していることを知っています。つまり仮想化用にカスタマイズされた専用の OS が必要になりま...
        yuki_coderyuki_coder9/30/2017に更新
        いいねアイコン画像0
      • OpenVPN で二つの VPC をつなぐための設定
        インターネット VPN (Virtual Private Network) には二拠点間の通信を暗号化する方式によって IPsec-VPN や SSL-VPN などがあります。OpenVPN は SSL-VPN の実装のひとつです。AWS VPC を二つ用意してそれらを OpenVPN で接続してみます。 VPC の構成 myvpc-1 (10.1.0.0/16) mysubnet-1-1 (10...
        takuyatakuya9/11/2017に更新
        いいねアイコン画像0
      • Windows Server EC2 インスタンスへの CAL インストール
        サムネイル画像-8bae43ea3b
        Windows サーバを AWS EC2 インスタンスとして起動した後は、RDP 接続が必要となります。RDP 接続を行なうためには Remote Desktop Services (RDS) ライセンスが必要となります。 Windows Server のライセンスは、管理用途の RDS 接続を許可しています。その際に RDS ライセンスは不要です。ただし、[同時接続数が 2 という制限があります...
        けんちゃんけんちゃん12/18/2023に更新
        いいねアイコン画像0
      • AWS Lambda の基本的な使い方
        サムネイル画像-9285163f6b
        AWS Lambda はイベントドリブンな「関数」を登録できるサービスです。例えば S3 に画像がアップロードされたときにサムネイル用のサイズに加工する処理が記述された関数を登録できます。基本的な使い方をまとめます。 事前準備 関数の登録はブラウザで AWS コンソールにログインして行うこともできますが、本ページでは AWS C
        yuki_coderyuki_coder2/18/2020に更新
        いいねアイコン画像0
      • AWS 落穂拾い (Data Engineering)
        Kinesis Kinesis Streams データは 3 AZ にレプリケーションされます。Amazon Kinesis Data Streams FAQs 24 時間 (既定値) から 1 年までデータ保持できます。[Changing the Data Retention Period](https://docs.aws.amazon
        yuki_coderyuki_coder1/22/2025に更新
        いいねアイコン画像0