grasys blog

Google Cloud+AWS 検証環境の自動制御にみる grasys の「仕組み化」文化

今年は既に 12 回歌舞伎を観た matt です。入社 2 年半で業務の傍らクラウド資格の W 全冠を果たしました!

今回は、私が日々の検証や資格勉強で使い倒している、grasys の社内検証環境の裏側についてご紹介したいと思います。

grasys では、「お客様の環境をお預かりする専門家」として、ヒューマンエラーを前提とした無駄のない環境づくりを自社内から徹底しています。その一環として、社内の Google Cloud および AWS の検証環境では、リソースの稼働放置を個人の確認に頼るのではなく、システムで自動制御する「仕組み化」が文化として根付いています。

Google Cloud と AWS で使われているサービスの違いも含めて、当社の「仕組み化」の文化をお届けします!

マルチクラウド環境で徹底する「自動化・仕組み化」

grasys の検証環境(エンジニアが自由に使える勉強環境)では、Google Cloud・AWS を問わず、利用後のリソース停止などを仕組みで防ぐ考えです。

「人間はうっかり忘れる生き物である」という前提に立ち、インスタンスの自動停止や外部 IP の解放はもちろん、「長期未使用のストレージ(EBS 等)の自動削除」や「不要リソースのアラート機能」などがシステム化されています。

この徹底した仕組みがあるからこそ、私たちエンジニアは無駄なコストやリソース放置を心配することなく、思いっきり検証や学習に没頭できるクリーンな環境が保たれています。

両クラウドで利用したサービスとプログラム言語

Google Cloud と AWS 環境でそれぞれ利用したサービスとプログラム言語は以下です。Cloud Run (functions) と Lambda の関数で所定の条件を考慮した停止や削除の実処理を行います。

【重視した技術ポイント】
 ⚫︎サーバレスで運用コストほぼゼロ!!!
 ⚫︎クラウドエンジニア経験必須のサービスと人気の 2 大プログラム言語を使用!!
 ⚫︎社内 Slack 連携ログ出力で日々の運用監視も 1 クリック!

Google Cloud と AWS 環境でそれぞれ利用したサービスとプログラム言語

Google Cloud と AWS の各環境での対応内容

Google Cloud と AWS の各環境でのスケジュール設定をツール処理と詳細と共に表にしました。

運用ルールは全員の合意を得て、監視も Slack でスマートに

ヒューマンエラーを防ぐための自動制御ですが、エンジニアの業務や検証の妨げになっては本末転倒です。そのため、タグやラベルでの停止・削除の回避策、削除までの期間といったディテールは、環境を利用するエンジニア全員で確認・合意した会社の運用ルールに基づいてスマートに設定されています(もちろん引数で可変です)。

処理結果はサービス所定のログとは別に、一目でわかる見易く簡略化した形で Slack の専用チャネルに書き出されます。人が行う作業はその Slack チャネルを一瞥してエラーなく正常に処理が行われているかチェックするのみ。これでマルチクラウド環境が、所定のルールで常にクリーンアップされ保たれる仕組みになっています。

Google Cloud の Cloud Scheduler 設定

Google Cloud はエンジニアが自由に使える検証環境とユーザ案件検証用の 2 つのプロジェクトでの設定です。Google Cloud 環境はインスタンス起動が多いので、日次停止も導入されています。

Cloud Scheduler
ジョブ
起動日  
時間 
ツール処理
Cloud Run functions 処理内容
ラベルkeykeyの値説明
日次停止月〜金
21:00
稼働中のインスタンス停止start-up     weekday、ever で停止しない
日次再起動月〜金
09:00
停止中のインスタンス起動start-uprestart:再起動する
週次停止金曜
23:00
稼働中のインスタンス停止start-upever で停止しない、他は全停止
週次未使用 Disk 削除       金曜
17:00
使用リソースが無い Compute disk を削除
週次 snapshot 削除金曜
17:10
作成日から 1 年経過の snapshot を削除      keepever で削除しない
週次 image 削除金曜
17:20
作成日から 1 年経過&インスタンス template紐付無の image を削除keepever で削除しない
週次 IP 削除金曜
17:30
外部IP アドレス(未使用)を解放

AWS の EventBridge スケジュール設定

AWS は組織(OU)下の 1 アカウント環境での設定です。

EventBridge
スケジュール
起動日   
時間 
ツール処理
Lambda 処理内容
タグkeykeyの値説明     
週次停止  金曜
22:10
稼働中のインスタンス停止      SkipStoptrue で停止しない                   
長期未稼働
インスタンス削除
火曜
11:00
最後の起動日時から 366 日以上停止中の EC2 を削除SkipDeletetrue で削除しない
長期未使用 EBS 削除          水曜
12:20
以下3 つの削除・使用中でない Volume 削除(EC2 にアタッチ無しの Volume)・作成日から 366 日経過の AMI をそれに紐ついている Snapshot と一緒に削除・作成日から 366 日経過の Snapshot で AMI に紐ついていないものを削除
週次 IP 削除月曜
19:00
外部IP アドレス(未使用)を解放
アラート 1月〜金
11:30
CloudWatch Dashboard でコスト発生があると Slack アラート、4 個目以降、1dashboard で 50metrics 以上あるものが対象アラート後作成者に確認し未使用なら削除
アラート 2月〜金
11:35
NatGateway で 14 日間トラフィックが発生無しで Slack アラートアラート後作成者に確認し未使用なら削除

grasys は成長の熱意あるエンジニアに相応しい活躍の場!

grasys にはエンジニアが勉強や検証に自由に使える Google Cloud と AWS 両方の環境がある事、そして資格取得の熱意に応える最大級のバックアップ体制がある事、これが私の 2 大クラウド資格 W 全冠の”偉業” (笑) を達成できた一番の理由であったことは間違いありません。

実務の技術を磨きながら資格取得にも熱意を持って成長したいエンジニアにとって、grasys は最高の活躍の舞台です。共に切磋琢磨する職場の仲間を、時には私が grasys 歌舞伎会で映画『国宝』の舞台へもご案内します!

grasys 歌舞伎会も既に 4 回目、同僚の方々を歌舞伎座で映画『国宝』の世界にご案内

採用情報
お問い合わせ