ヤマムギ

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

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

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

 - AWS ,

ad

ad

  関連記事

ヤマムギ vol.8 (AWS)EC2でLinuxサーバー構築ハンズオン 手順

ヤマムギとは from Mitsuhiro Yamashita 「AWSではじめ …

Systems Manager パブリックパラメータCLIでAWSのサービス数を出力してみました(2020/5/26)

先日のAWSのサービス数を数えてみました(2020/5/23)を見られて、お師匠 …

AWS Secrets ManagerのローテーションでLambda関数の管理が必要なくなりました

Amazon RDS と AWS Secrets Manager の統合を発表と …

JAWS-UG Osaka 第14回勉強会 「DIY」 〜自社内システムを作る側からの物申す〜に参加、運営、登壇しました

先日、JAWS-UG Osaka 第14回勉強会 「DIY」 〜自社内システムを …

AWS Secrets Manager交代ユーザーローテーション

AWS Secrets Managerの交代ユーザーローテーションを確認してみま …

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

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

既存のAWSアカウントをAWS Control Towerに追加

Account Factoryからは既存アカウントは追加できない? AWS Co …

特定のIAMロールをLambda(Python)で削除する

やりたいこと 特定アカウントの特定の名前が含まれるIAMロールをまとめて削除した …

S3リクエストメトリクスをプレフィックスを指定して有効化

検証でどのリクエストがどれぐらい発生しているのか、さっと知りたくなったので、特定 …

RDSリザーブドDBインスタンスを購入しました

リザーブドインスタンス推奨事項を確認したで確認した結果、購入したほうがよさそうで …