ごきげんいかがですか、
この度、AWSの大規模プロジェクトでセキュリティグループの設定をさせていただく機会があったので、
その時工夫した点などを共有したいと思います😉
1.はじめに
現在のプロジェクトで、複数のセキュリティグループのルール設定を先輩から任せていただきました。
サーバによっては100近くもインバウンドルールがあり、それを複数のセキュリティグループで設定するというのは、とても骨の折れる作業でした、、
1.1 当初の業務内容
タスクを振っていただいた当初は以下のように手動で設定していました。
サーバによっては100以上もインバウンドルールがあったのでとても大変でした、、、
1.2 結果と課題
結果として、ルール設定に多大な時間がかかり、設定時に二人一組で確認したにも関わらず、単体テストでは設定ミスが発見されました。。🤣
そこで今後の人的ミスを減らし、工数を効率化する必要性を実感し、
自動化を進めることにしました。
2.自動化へ
2.1 実現したいこと
まずは実現したいこととして、以下を掲げました。
納品までの期間が近く、バッチファイルをつくりCLIに読み込ませる自動化は諦めました、、
(プロジェクトが終わったのでこれから作っていきます😎)
そこでAfterの図のようにコマンドをAWS CloudShellに読み込ませる手法を選択しました。
2.2 自動化の詳細
以下では、どのように自動化を進めてきたのか順を追って説明いたします
もともとの設計書はこのようになっていました。
こちらを用いてコマンド作成シートを作成していきます
コマンド作成シートに次の要素を用意します。
・インバウンドルールの設定を明示するコマンド(aws ec2 authorize-security-group-ingress)
・セキュリティグループID (--group-id 〇〇)
・プロトコル (--protocol 〇〇)
・ポート番号 (--port 〇〇)
・CIDRブロック (--cidr 〇〇)
プロトコルとポート番号とCIDRブロックは設計書シートから関数で引っ張ってこれますね、
先ほどの5つの要素を&関数を用いて、一文のコマンドにします。
このコマンドを複数行コピーして、AWS CloudShellに貼り付ければ自動的にルールが設定されます!!
簡単ですね😊
3.さいごに
AWS CloudShellを用いることにより、1時間かかるタスクが5分でできるようになりました。
そして手動による設定ミスがなくなり、間違えるかもしれないという恐怖感がだいぶ減りました。
これからも比較的時間がある新人が業務を効率化し、チームに貢献していきたいと思います。