石川事務所 ITエンジニアブログ ~高い付加価値提供のため~ -3ページ目

石川事務所 ITエンジニアブログ ~高い付加価値提供のため~

IT技術ブログです。日々の仕事から得た技術や知識について記述していきます。

業務で、(特に開発環境)一時的な検証用にEC2インスタンスを開始してそのまま終了せずにいたため、不要な課金をされている可能性がある。毎月それを確認し可能な限り終了したい。

こんな依頼を受けました。

お客様のAWS環境は組織アカウントとして50弱程保持しておりそれを各部署用にスイッチロールして使用しています。

インスタンスの起動状況を調べるために逐一ログイン・ログアウトしていたら工数を使ってしまいます。そこで以下の方法を使ってほぼ自動で全アカウントの起動状況を作るスクリプトを作りました。

(1)全組織アカウントのロールを記載しているGitHubがあるのでそこからアカウントを抽出しテキストで保存
(2)(1)で作成したファイルをループ処理させて1行ずつaws-vault・awscli・jqを使ってコマンド処理させて起動中インスタンスを抽出し、jsonで保存。
  資料としてはここを使いました。(AWS CLIを使ってEC2インスタンスの情報を取得する)
(3)月初と月末にコマンドを使ってインスタンスの差分を確認し不要なものを終了する。

ただ、jqコマンドの仕様としてインスタンスのName tagにnull値がはいっているとその組織アカウントの起動中インスタンスのName tagがすべてnullで返ってしまうということがあります。
※厳密にはこの部分を条件分岐させれば改修できそうなんですが、対象インスタンスも少ないのでその工数をかけるなら目視で判断しました。

これで毎月、全組織アカウントで起動中インスタンスが把握できて、不要インスタンスを終了することにより工数削減につながると考えます。

改善として上長に報告ですね。

 

最近、一気に秋らしくなってきましたね。
涼しくて過ごしやすいです。

さて、前回の記事でもお伝えした通りAWS Configを開始するにはいくつかのリソースが必要になります。
そのため、AWSを組織アカウントで使用している企業様などはそれぞれのアカウントごとにリソースを
作成してルールも統一する必要があります。

私も初めてConfigを開始するときにはマネジメントコンソールを使ったのですが
今のお客様は複数の組織アカウントを所持しており

それをaws-vaultをLinux環境でも使う方法【セキュリティ向上】を参考にして切り替えています。

それを逐一手動で設定していたのでは、工数がかなりかかります。
CloudFormationによるAWS Configの有効化を参考にして
yml形式で作成しました。(希望者には公開します)
cFnを使うとConfigの開始も非常に早いです。

慣れても手作業で1時間くらいかかる設定が3分程度で完了します。

次は、すべてのアカウントでConfigを統一し一元管理する設定を施します。
組織のすべてのアカウント全体で AWS Config ルールを有効にする

 

 

だいぶ涼しくなり、過ごしやすいです。
さて、AWS Config(以下、config)です。職場の先輩から提案を受けました。セキュリティ面と費用面について改善することができる。と

さっそく、開発アカウントで使用を開始してみました。
開始するには配信チャンネルを作るため、以下のAWSリソースを使う必要がありました。
・S3
・SNS
・IAM
Prerequisites 参照

その後、AWS Configの有効化に記載のとおりにすると開始できるようです。

2021年9月10日現在、マネージドルールの数は191あります。
実際に適用してみて便利なものがあったらまたブログに掲載します。