ヤマムギ

growing hard days.

*

T2.microからT3.nanoに変更(メモリエラーも対応)

   

このブログのEC2インスタンスをT2.micro 1インスタンスからT3.nano 2インスタンスに変更します。
1ヶ月ほど様子を見て問題なければリザーブドインスタンスT3.micro 1インスタンス分で購入する予定です。

理由

1インスタンスで十分なのですが、このブログの環境は検証も兼ねているので、Well-Architectedな設計にしようと。
先日のAZ障害もあったことですし。
そしてメモリも余裕っぽいのでnanoにしてみます。

T2からT3への移行

山ほどブログ記事がありますが、せっかくなので書き残します。

まず現行のEC2の最新AMIを作成。

VPCは東京リージョンで3AZ構成でパブリックサブネットとプライベートサブネットで作成
AMIを元にEC2インスタンスをt2.nanoでパブリックサブネットでパブリックIPを有効にして起動。
セキュリティグループはひとまず80のみ。
IAMロールは本番と同じCloudWatchLogs、メトリクス、SystemsManager関連のポリシーがアタッチされているものを使用。
T2/T3 Unlimitedは有効。

このAMIにはSystemsManagerエージェントがインストール済なので、セッションマネージャからターミナル操作。

enaモジュールはインストール済でした。
せっかくなので、yum updateしておこうと思ったらMemoryErrorになりました。
T2.nanoで設定をすすめるのは無理がありますか。
一回、停止して、T2.microに変更。

はい。うまく行きました。
ユーザーデータにyum update 書こうと思ってたのですが、nanoだと無理そうですね。
定期的にゴールデンイメージなAMIを作ることにして、いったんあきらめようかと思ったら、仮想メモリを増やして対応しておられた方が。
こちらを参考にやってみました。

yum update で [Errno 5] [Errno 12] Cannot allocate memory

まずnanoに戻してエラーが出るとこから確認しようと思ったら、Updateしちゃったんでエラーが出なくなっちゃいました。
仕方ないので、AMIから起動してやり直します。

yum updateでMemoryErrorを確認。よし。

エラーなくyum updateがComplete!
これでユーザーデータにyum update -y がかける。
一応、 cloud-init-output.log ログもCloudWatch Logsに出力してメトリクスフィルタで”MemoryError”を検知するようにしておきましょう。

次のENAサポートを有効化にするコマンドはCLIで実行します。

インスタンスをT3.nanoに変更して起動しました。

セッションマネージャからアクセスするとエラー???

「セッションは次の理由で終了しました。document process failed unexpectedly: document worker timed out , check [ssm-document-worker]/[ssm-session-worker] log for crash reason」

なので、SSMのログを確認。

2019-08-31 15:19:48 ERROR [ssm-session-worker] [yamashita-0bd7790b0f2e840bc] [DataBackend] [pluginName=Standard_Stream] getInteger failed: Offset is invalid.

わからないけど、SSMエージェントが古いのでアップデートしましたら治りました。
SSMエージェントをアップデートするときに仮想メモリを増やしたのでメモリが足りなかったのかもしれませんが。
それでもSSMエージェントは最新のものを使いましょう。
ちなみにアップデートはSystemsManagerランコマンドからAWS-UpdateSSMAgentを実行しました。
(nanoだとメモリ不足で失敗するので、仮想メモリを増やしてから実行)

セッションマネージャから無事ターミナルでENAが使用されていることを確認。

ここまでやってみてなんなのですが、そういえばこのEC2 Amazon Linuxでした。
きれいなAmazon Linux2でブログのWordPressを作り直すことにします。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「AWS教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS ,

  関連記事

AWS Service Catalogポートフォリオを他のアカウントと共有する

AWS Service Catalogチュートリアルで作成したポートフォリオの他 …

「X-Tech JAWS 【第2回】~9割のX-Techと1割の優しさで切り拓く未来~」に行ってきました

「X-Tech JAWS 【第2回】~9割のX-Techと1割の優しさで切り拓く …

kintoneでEveryoneに権限が設定されているアプリをAWS Lambdaで一括チェックする

こないだ、kintone Cafeでユーザーが自由に作成している環境だと、どんな …

AWS Organizations組織の移動

AWS Organizations組織の移動 やりたいことは、Organizat …

AWS Toolkit for EclipseからLambda関数を直接作成できずにMavenでパッケージ化して作成

AWS Toolkit for EclipseからLambda関数を直接作成 チ …

AWS Organizationsでタグポリシーを設定しようとしました

Organizationsで[タグポリシーを有効にする]ボタンを押下しました。 …

ブログの画像を別アカウントのS3に移動するためにIAMロールでクロスアカウントアクセス

ずっと先延ばしにしていたのですが、このブログの画像はEC2から直接配信しています …

Organizations組織でAWS SSOを有効にする

先日AWS Control Towerで環境を作ったら、自動でAWS SSOがで …

AWS WAF Web ACLとルールをv1(Classic)からv2に自動移行しました

新しいものは、課題が解決されていたり、機能追加されたりするのでいいものです。 長 …

AWS Transform Webアプリケーションを有効化してみた

AWS Migration Hubが2025/11/7に新規お客様への提供が終了 …