EBS スナップショット管理用のコスト節約 Lambda 関数を構築およびデプロイするためのステップバイステップ ガイド
DevOps の世界へようこそ!今日は、AWS ユーザーが直面する共通の課題、つまり不要な EBS スナップショットの管理に取り組むエキサイティングなコスト最適化プロジェクトについて詳しく説明します。このプロジェクトでは、以下を自動的にクリーンアップする Python プログラムを作成します。
この実践的なプロジェクトは、AWS のストレージ コストを削減する優れた方法であるだけでなく、AWS でのリソース利用についての理解を強化する機会でもあります。その過程で、AWS リソースと対話し、ニーズに合わせて操作するための Python 用 AWS SDK である boto3 について調べていきます。
コスト削減措置を自動化し、DevOps スキルを向上させるための取り組みを始めましょう!
コスト最適化プロジェクトの構築に取り掛かる前に、必要なツールと知識が整っていることを確認してください。必要なものは次のとおりです:
aws configure
このステップでは、アクセス キー、リージョン、出力形式を設定して、AWS サービスとのシームレスな通信を可能にします。
これらの前提条件を満たしたら、プロジェクトを進める準備が整います!
このプロジェクトのソース コードは、私の GitHub リポジトリで入手できます:
? GitHub リポジトリ: AWS クラウドコストの最適化
次の手順に従って、Lambda 関数を作成して設定します。
Lambda 関数を作成します:
コードを追加します:
aws configure
コードをデプロイします:
タイムアウトを増やす:
関数をテストします:
このエラーは、Lambda 関数に必要な権限がないために発生します。これについては、次のステップで説明します。
Lambda 関数が EC2 リソースと対話できるようにするには、そのサービス ロールに特定の権限を追加する必要があります。フルアクセスを付与する代わりに、最小権限の原則に従って、関数が必要な権限のみを持つようにします。次の手順に従ってください:
サービスロールを見つけます:
IAM でサービス ロールを開きます:
インラインポリシーの作成:
ポリシーを確認して割り当てます:
ebs-permissions ポリシーは次のようになります:
このインラインポリシーが追加されると、Lambda 関数はスナップショット、ボリューム、インスタンスを効果的に記述および削除するために必要なすべての権限を取得します。
権限を設定したら、次のステップでもう一度機能をテストしてみましょう!
権限を設定したら、実際のシナリオを使用して Lambda 関数をテストします。関数がどのように実行されるかを確認するには、次の手順に従ってください:
1.最初の使用例: 削除されたインスタンスのスナップショットのクリーニング
EC2 インスタンスを作成します:
スナップショットを作成します:
インスタンスを削除します:
スナップショットの準備ができたら、test-ebs インスタンスを終了します。これにより、存在しないインスタンスのスナップショットが残り、冗長になりました。
Lambda 関数を実行します:
EC2 ダッシュボードのスナップショット セクションで削除を確認します。
2. 2 番目の使用例: 削除されたボリュームのスナップショットのクリーニング
EBS ボリュームを作成します:
スナップショットの作成:
ボリュームを削除します:
スナップショットの準備ができたら、ebs ボリュームを削除します。これにより、どのボリュームにもアタッチされていないスナップショットが残ります。
Lambda 関数を実行します:
これら 2 つのシナリオを適切に処理することで、Lambda 関数は冗長な EBS スナップショットを特定してクリーンアップし、コストを節約し、リソース管理を合理化する機能を実証します。
おめでとうございます! ? Python と Lambda を使用して AWS 上にコスト最適化ソリューションを構築しました。このプロジェクトでは、目的を果たさなくなった冗長な EBS スナップショットを特定してクリーンアップし、リソース管理を改善しながらクラウド コストを節約する方法を検討しました。
私たちが達成したことを簡単に要約します:
このプロジェクトでは、クラウド環境におけるリソースの最適化の重要性を強調し、Python を使用して AWS タスクを自動化する実践的な経験を身につけます。
この機能を自由にカスタマイズしてさらに強化してください。たとえば、CloudWatch ルールを設定して関数を定期的にトリガーしたり、ロジックを拡張して追加のクリーンアップ シナリオを処理したりできます。
フォローしていただきありがとうございます。今後もエキサイティングな DevOps とクラウド プロジェクトにご期待ください! ?
?さらに有益なブログについては、Hashnode、X(Twitter)、LinkedIn でフォローしてください。
それまで、楽しく学んでください! ?
以上がAWS コストの最適化: Lambda を使用して未使用の EBS スナップショットのクリーンアップを自動化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。