ヤマムギ

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認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

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

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

 - AWS ,

  関連記事

AWS Organizations組織でCompute Optimizerを有効にしました

OrganizationsでCompute Optimizerの信頼されたアクセ …

AWS Lambda KMSを使って環境変数を暗号化、復号化する(Python)

Lambda内で外部APIを使用する場合などをユースケースとして、環境変数をKM …

VPCピア接続ではピア先VPCのセキュリティグループIDを指定できる

タイトルどおりです。 できることは知ってたのですが、試したことがなかったので、確 …

Cloud9でCodeWhispererを使用する

アクセス権限 Cloud9のEC2に設定するIAMロールのIAMポリシーで co …

このブログをAWS大阪リージョンへ移行しました

大阪リージョン爆誕!! 朝起きて寝ぼけながらリージョンを見てると。 「大阪リージ …

Amazon VPCでIPv6を使用する

VPCのIPv6を設定してみました。 設定 [Amazon 提供の IPv6 C …

Route 53サブドメインホストゾーンを作成したら、元のホストゾーンにNSレコードを作成する自動化

ハンズオン環境でRoute 53のホストゾーンを触ってほしい際に、サブドメインを …

DynamoDBテーブル項目をS3にエクスポート

DynamoDBテーブルを一時テーブルとして使っていて、毎回使い捨てしてます。 …

Amazon Linux2のPHPを7.2から7.3へアップデートしました

WordPressのサイトヘルスの推奨に従って使っていないテーマを削除したの推奨 …

AWS Organizationsのルートユーザー管理(Root user management)でメンバーアカウントのルートユーザー認証を無効にしました

2024年11月発表のAWS Organizations を使用するお客様のため …