skip to content
barorin&

AWSで詰まったところ|EC2のボリューム拡張・Lightsail接続・LambdaのGLIBCエラー

/ 6 min read

Table of Contents

はじめに

AWSで実際に手間取った場面と、その対処をまとめました。

EC2のボリュームを拡張しても容量が増えない

管理画面でボリュームのサイズを変更しただけでは、**OSから見える容量は増えません。**拡張は3段階に分かれています。

  1. AWS側でボリュームのサイズを変更する
  2. パーティションを拡張する
  3. ファイルシステムを拡張する

管理画面の操作は1番目だけで、2と3はサーバー側で実行する必要があります。「サイズを変えたのに df の表示が変わらない」というのは、この2つが残っているためです。

1. 管理画面でサイズを変更する

EC2 > Volumes > 対象のボリューム > Modify volume からサイズを変更します。

2. パーティションを拡張する

Terminal window
$ sudo growpart /dev/xvda 1

デバイス名とパーティション番号の間にスペースが必要です。現在の構成は lsblk で確認できます。

Terminal window
$ lsblk

3. ファイルシステムを拡張する

**ファイルシステムの種類によってコマンドが違います。**まず種類を確認してください。

Terminal window
$ df -hT

Type の列を見て、対応するコマンドを実行します。

ファイルシステム コマンド
xfs sudo xfs_growfs /
ext4 sudo resize2fs /dev/xvda1

Amazon Linux 2 の既定は xfs です。Ubuntuでは ext4 のことが多くなります。

Terminal window
# 拡張後の確認
$ df -hT

Lightsailに Tera Term で接続できない

Amazon Linux 2023 のLightsailインスタンスに、Tera Term 4系から接続しようとすると失敗することがあります。

Tera Term 5系にすると接続できます。

原因は、新しいOSがサポートする暗号アルゴリズムに、古いクライアントが対応していないことです。OS側が古い方式を無効化しているため、クライアントを更新する以外に安全な解決策はありません。

Lambda で GLIBC のバージョンエラーが出る

Lambda上でPythonのライブラリを使おうとしたときに出るエラーです。

ImportError: /lib64/libc.so.6: version `GLIBC_2.28' not found
(required by /opt/python/lxml/etree.cpython-310-x86_64-linux-gnu.so)

原因は、手元の環境でビルドされたバイナリが、Lambdaの実行環境と合っていないことです。ネイティブコードを含むライブラリ(lxml など)で起きます。

Lambdaの実行環境に合うバイナリを指定してインストールし、レイヤーとしてまとめます。

Terminal window
$ mkdir python
$ python3 -m pip install \
--platform manylinux2014_x86_64 \
--implementation cp \
--only-binary=:all: \
--upgrade \
-t ./python \
パッケージ名
$ zip -r layer.zip ./python

作成した layer.zip を、Lambdaのレイヤーとしてアップロードします。

各オプションの意味です。

オプション 意味
--platform manylinux2014_x86_64 Lambdaの実行環境向けのバイナリを取得する
--implementation cp CPython向けを指定する
--only-binary=:all: ソースからのビルドを禁止する(必ずビルド済みを使う)
-t ./python 展開先のディレクトリを指定する

おわりに

どれも「手元では動くのにAWS上では動かない」という形で表面化する問題です。環境の違いがどこにあるか(OSのバージョン、ファイルシステム、CPUアーキテクチャ)を確認するのが、いちばんの近道になります。

この記事を書いた人

barorinのプロフィール画像

barorin公認会計士

会計とITの二足のわらじで働く公認会計士です。Pythonを中心に、会計・監査の実務で実際に使っているコードや、Ubuntu・Raspberry Piの設定メモを書いています。