Lambdaで自動停止データベースクラスタ停止プログラム自動実行を設定するRDSとは?AWSを使っていて、お値段が高いなぁと感じるコンポーネントの一つにRDSがあります。AWSが提供するフルマネージドのリレーショナルデータベースサービスです。Serverなど複数のデータベースエンジンをサポートしており、インフラ管理(スケーリング、バックアップ、パッチ適用、レプリケーションなど)を自動化し、運用負荷を軽減できます。RDSを利用することで、手軽にデータベースをデプロイ・管理でき、アプリケーション開発に集中できるようになります。このようにAWS上でシステムを構築してサービスを運用する上で、ほぼ必要となるこのRDS。便利なのですが、ランニングコストが高いのが特徴です。RDSを自動停止してムダをなくす?仮想マシンとして利用できるEC2、使わない時はインスタンスを停止しておくことでほぼ課金されません。使わない試験環境などはインスタンスを停止しておくことでランニングコストを抑えることができます。RDSはインスタンスの完全停止ができないのです!一時停止しかできないので、停止しても一定期間経過するとAWS側で自動で再起動されてしまうのです。この子のように止めても止めても動き出して、課金が開始されてしまいます。本番運転しているサービスなら別ですが、必要な時にしか動かなさいサービスや開発、試験環境などは使わない間はデータベースのインスタンスを止めておくと無駄なコストが削減できます。AWSで勉強しようとアカウントを作って結構な確率でやらかしてしまうのが、データベースをRDSで構築し、勉強が終わったあと停止したのにいつの間にか勝手に起動していて、その結果、高額な請求がきてしまったというパターンです。スポンサーリンクRDSのランニングコストを下げるにはそんな高価にRDSをずっと起動しておくのはお金をドブに捨てているのと同じです。使っていない時は止めておきましょう。マネジメントコンソールにログインして停止(GUI好き向け)一般的なRDSの操作方法としては、AWSマネジメントコンソールにログインして、RDSのページで操作したいデータベースを選択して停止します。停止したいデータベースインスタンス、またはクラスターを選択して、アクションから「一時的に停止」を選択します。CLIを使う方法があります。これを使うとログインせず、WindowsやMacなどの普段使っているパソコン上でコマンドを実行するだけでマネジメントコンソールで停止処理するのと同じことが実行できます。CLIをお使いのパソコンにインストールする必要があります。やり方はこちらの記事を参考に進めてみてください。セットアップは最初の一回だけです。最初ちょっと面倒くさいですが、今後毎回RDSを停止するためだけにマネジメントコンソールにログインすることを考えたら、CLIをセッティングしておいたほうが楽です。他の操作にも使えますので。CLIを使うはAWSマネジメントコンソールでできることがコマンドで実行できてしまいますので、よくやる操作はコマンドラインとして保存しておくといつでも手軽に実行できるのが魅力です。データベースのステータス確認まずは、対象のデータベースクラスタ、またはデータベースインスタンスが動いているかどうか確認します。いうデータベースインスタンスの状態を表示するコマンドです。いうデータベースクラスターの状態を表示するコマンドです。ap-northeast-1コマンドを実行すると、次の状態のいずれかが表示され、現在の状態が確認できます。表示された場合は、対象のデータベースが動いている状態ですので、停止しましょう。いうデータベースインスタンスの状態を表示するコマンドです。いうデータベースクラスターの状態を表示するコマンドです。ap-northeast-1コマンド実行後、ステータスを確認してください。停止コマンド実行直後は、stoppingになっています。して再度ステータス確認をすると、stoppedになります。停止コマンド実行後、必ずステータス確認して、stoppedになることを確認してください。止めたつもりでも実は動いていてがっつり課金されてしまうという事態になると大変です。スポンサーリンク完全に停止できないの?結論、できません。データベースが起動していたら自動で止めるということは可能です。RDS、昔は完全に停止できたのですが、最近は完全停止はできなくなり、止めても一時的な停止で、時間が経つと自動で起動します。AWS始めたばかりの人がよくやらかしてしますのが、AWS上にWebサービス構築したけど、しばらく使わないから勿体ないのでインスタンス停止しておこう、と止めるわけです。これは正しい発想です。EC2と違い、RDSは一時停止になるだけで完全に停止させるのは削除する以外にありません。するといつの間にか自動で起動して課金が開始され、請求書見てなんじゃこりゃぁ~となるわけです。手動で定期的に止めるRDSは停止してから最大で7日経過すると自動で起動しますので、先に紹介した方法で手動で停止してください。停止するのを忘れてしまうと課金地獄に落ちてしまいますので注意が必要です。停止コマンドを自動起動する先に紹介したデータベースの停止コマンドをパソコンのスケジュール起動の機能を使って自動起動することができます。Windowsの場合、コマンドの内容をバッチファイルとして作成し、パソコンのタスクスケジューラーを使って自動で実行することで、忘れずに停止することができます。スケジュール起動を設定したパソコンの電源で常時起動している必要があります。Lambdaを使った停止処理の実装です。Lambdaはサーバレスでプログラムを実行することができるAWSのサービスです。データベースを停止させるPytonのプログラムを作成して、それをAWS上で自動起動することで手元のパソコンが起動していなくてもデータベースを停止することができます。そのプログラムをAWS上でスケジュール起動させることで自動停止を実現することができます。データベースクラスタ停止プログラムやり方を紹介します。Lambdaで新しい関数を作成します。停止対象のデータベースがあるリージョンと同じリージョンで関数を作成してください。x86_64最後に関数の作成ボタンを押すコード入力画面が表示されたら、次のコードを入力すればデータベース停止機能の完成です。db_cluster_identifierに停止対象のデータベースクラスタ識別子を指定してください。}テスト実行してエラーが起きずに対象のデータベースが停止できることを確認しましょう。このコードはデータベースクラスタ用のコードです。データベースインスタンスを対象にする場合は、boto3の仕様を確認してください。おすすめ書籍の紹介コーナーサーバレス開発は盛り上がってきています。お客様からサーバレスでサービスを構築したいというオーダーも最近ではよく見かけます。理解を深めて活用していきましょう。本書では、従来のシステムをLambdaで構築するときの設計手法や具体的な事例の作成を通じてLambdaでのプログラミング手法を解説します。第2版では、2022年の最新情報にアップデートし、SAM開発環境に対応しました。Lambdaは、サーバーを必要としないプログラムの実行環境です。開発者が処理したい内容を小さな関数として実装すると、必要に応じて、それが実行される仕組みです。EventBridgeを使います。いくつか種類がありますが、今回は一定間隔でスケジュール起動したいので、EventBridgeスケジュールを選択します。スケジュールにわかりやすい名前を付けます。起動タイミングを指定します。決まった時間に起動させたいのでUnix/Linuxユーザにはお馴染みのcronベースを選択cron式は起動タイミングを指定(今回は毎日0時0分に起動)直近10回の起動タイミングがリスト表示されるので間違っていないか確認データベースは最大で7日で起動しますので、毎日一回チェックすればよいと思いますが、それでもタイミングによっては最大で24時間稼動してしまう可能性があるので、1時間に一回動かした方が安全かもしれません。次にスケジュール起動する処理を選択します。ここでは先に作成した自動停止Lanbda関数を指定します。起動するLanbda関数を選択したら、アクセス権限を設定します。同じようなことをしている場合は既存のロールから選択、よくわからない場合は新規で次のようにわかりやすい名前を付けて作成します。このようにステータスが有効で作成が完了すれば自動起動設定完了です。これでデータベースが自動で起動しても自動で停止させる仕組みができました。あとは、きちんと動作しているか定期的にCloudWatchでチェックしましょう。それではまた!おすすめ書籍の紹介コーナーAWSは機能が多岐にわたり存在し、初心者が足を踏み入れるとほぼ100%迷います。この教科書で全体を広く浅く知ることが重要です。(見るだけ図解)最もわかりやすく、もっとも充実した、最高のAWS入門書!AWSの基本から、主要サービスの概要、特徴などを、わかりやすい図解とともに、1つひとつ丁寧に解説!これからAWSを学ぶ人や、すでに利用している人にとって最適な教科書です。amzn.toAWSを使うメリットとして迅速なサービス運用環境の構築が求められます。失敗できない本番環境を構築する前に読んでおきたい一冊です。安全で堅牢な本番環境のつくり方AWSのネイティブ機能を組み合わせて、Webアプリのインフラを構築・運用パブリッククラウドによるインフラ構築・運用の機会は増えてきていますが、なかなか最初の一歩が踏み出せない、どうしたらよいかわからない人も多いはずです。amzn.toそしていよいよAWS認定試験に挑戦したくなった場合は、こちらで徹底的に学習しましょう。これからはAWSです。川畑光平氏が直々に執筆!AWSが提供するサービスを幅広く網羅して、学習しやすいようサービス単位で細かく解説しています。プロフェッショナル」の試験対策学習でも、引き続き有効活用できるレベルです。前回、クラウド上に自分だけのデスクトップを作れるAWSのWorkSpacesの環境を作りました。今回は約一ヶ月ぐらい使ってみた感想を書きたいと思います。ちなみに前回はこちら。前回、GCPを使ってクラウド上にGitLab環境を構築しました。HTTP通信なのでLAN内なら問題ないのですが、インターネット経由で通信となるとセキュリティ的に問題です。データベースとはなにか超ざっくり言うと、システム上のデータを保存する専用のシステムです。開発はEclipseを愛用していたのですが、重いですね。WordPressの実験環境をクラウドサービス上で動かしているのですが、ドメイン取得していないのでIPアドレス直接アクセス方式で運用しています。うっかりインスタンスを再起動してIPアドレスが変わってしまったりするとW...ITJMeterを使った負荷テスト実施方法さて、いよいよ今回は、JMeter最終回。シナリオの実行編です。今までは主にJMeterを使ってWebシステムの性能テストを実施するために必要なテストシナリオを作ってきました。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。最近はマネジメント業務ばかりやっていますが、エンジニアとしていつまでも現役でありたいので、時々手を動かしていますが、歳を重ねると物忘れがひどくなる一方なので、備忘録としてブログを運営しています。Reserved.ホーム検索トップサイドバータイトルとURLをコピーしました。