ヤマムギ

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を作り直すことにします。


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

【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

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

【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。

 - AWS ,

ad

ad

  関連記事

S3に置いたMP3ファイルをTwilioから電話再生する(AWS Lambda Python)

Google Calendar Twilio ReminderのTwilioを使 …

AWS CDKでリージョンをまたいだクロススタックリファレンスはできなかった

例えばこんなコードが実行できるかというと、 [crayon-6100c0dbb4 …

ヤマムギ vol.9 (AWS)EC2からAWS CLIコマンドを実行してみようハンズオン 手順

このブログは2020/5/5に開催しました、「ヤマムギ vol.9 (AWS)E …

執筆環境(PyCharm, CodeCommit, CodePipeline, S3, Lambda, 署名付きURL)

2018年から、年に1回ぐらい商業本の執筆をさせていただいております。 2020 …

Amazon RDS MySQLでCSVをload data するときに「Access denied」発生

超小ネタです。 AWSのデータベースサービスの Amazon RDSのMySQL …

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

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

CloudFormation Lambda-backedカスタムリソースチュートリアルをやりました

チュートリアル: Amazon マシンイメージ ID を参照するの手順に従ってや …

Backlogの実績工数をAmazon QuickSightで可視化してわかったこと

今年に入ってから、Backlogで個人タスクを登録しだして、予定工数、実績工数を …

別アカウントのVPCからAWS PrivateLinkを使う

やったことないのでやってみるシリーズです。 VPC エンドポイントサービス (A …

[JapanTaxi] Athena 指向アナリティクス 〜真面目に手を抜き価値を得よ〜(AWS Summit Tokyo 2017)を聞いてきました

Athenaのユースケースとして聞きにいきましたが、最近触ってるRe:dashも …