最近はQAの活動ではなく開発の生産性をあげる為の活動に多く取り組んでいます。今現在は開発チームで使用しているAWSのコスト削減を行っています。AWSはとても便利ですが、何も考えずに利用しているとちりつもで、いつのまにか結構な課金額になっていて顔が真っ青になることがあります。世の中には既にAWSを便利に使うためのノウハウがたくさんありますので、ここではAWSを利用する際に最初にやっておくべき5つのことをお伝えできればと思います!◆利用したいサービスとそれにかかるお金を洗い出そうAWSにはたくさんのサービスがあります。利用したいサービスを洗い出し、そのサービスの利用金額を頭にいれておきましょう。それがイメージできたら、あとはいかに課金を減らすかを考えていくだけです!利用金額については各サービスごとに料金表が書いてありますので、まずはそれを目安にします。EC2ですとコチラから見ることができます。利用を開始している場合は、AWSコンソールの請求書ダッシュボードの請求書やコストエクスプローラーから課金額を知ることができます。予算を立てる場合は、予算機能を利用したりすることもできます。◆なにはともあれIAMによる権限管理まずは権限管理をしましょう。ここでやってはいけないことは、フルアクセス権をふること!です。誰かがハイスペックなEC2をたてたり、必要なEC2を間違って消したりすることがあるかもしれません。セキュリティ的にもオススメできません。必要な人が必要なぶんだけ必要なリソースにアクセスできることを考えて権限管理していきます。Management(IAM)という機能があり、これを利用します。AWSコンソールにサインインしたい場合や、AWSサービスに対してプログラムによるリクエストを行う場合に使用します。グループを使用して、ユーザーの集合に対してアクセス権限を指定でき、ユーザーのアクセス権限を容易に管理する為のもの。認証情報(パスワードやアクセスキー)を関連付けることができないアクセス権限です。あるという点で、ユーザーと似ています。人の特定の人に一意に関連付けられますが、ロールはそれを必要とする任意の人が引き受けるようになっています。「どのユーザ」が「どのAWSサービスの」「どのリソースに対して」「どんな操作を」「許可する(許可しない)」を記述するためのものです。AWSが提供してくれているJobFunctionという特定の職務機能と密接に連携するように設計されたポリシー、AWS管理ポリシーと自分で詳細に設定ができるカスタマー管理ポリシーがあります。ポリシーを作成しておき、グループに紐付け、そのグループをユーザが利用するような王道の利用方法から特定のユーザにインラインポリシーという個別ポリシーを記述することもできます。ロールはLamda等のサービスを利用する際に使用できます。◆リソースのバックアップを取ろう利用したいサービスとユーザー、お金がイメージできたところで、次は各サービスで利用するリソースのバックアップについて考えます。AWSを利用したけれど、環境を壊した場合にすぐに復旧できる仕組みを準備しておかなければAWSの利用メリットがなくなってしまいます。ここでは例としてEC2利用時のバックアップについてふれてみたいと思います。マシンイメージがあります。基本的に環境を利用する場合は、仮想サーバであるEC2に必要な分だけのEBSボリュームをアタッチすることで環境を作成することができます。EBSを壊してしまったりある時点でのEBSの状態を保持しておいて、うまくいかなければ戻したいというような場合は、スナップショットをとっていればすぐ復元できますし、EC2自体がうまく起動できない場合にもう一回EC2を作り直したいEC2インスタンスを複数たてたいといった場合には、AMIをとっていればすぐに対応することができます。復元したいインスタンスはAMIやスナップショットのバックアップをとっておくことをオススメします。WatchのEventスケジュールで定期バックアップをとるなどがあります。boto3.resourceの2つがありますので使用する際にはご注意ください。◆ゴミを残さないようにしようバックアップがとれた後には、ゴミがたまらない仕組みを考えなければなりません。バックアップばかりとっていてゴミを消さなければどんどん課金額が膨れてしまいます。ここでは例としてEC2削除時のゴミ問題についてふれてみたいと思います。terminationの値によって決まりますのでここの値を削除にするようにしておきましょうAMIを削除した場合には、紐づいているスナップショットを自動的に削除するLamdaでboto3を利用してAMIに紐づくスナップショットを削除するスクリプトを書きます。WatchのEventでAMIの登録解除をトリガーにして先ほどの削除スクリプトを呼び出します◆運用ルールをドキュメントにまとめて周知しよう最後に運用ルールをまとめて、メンバーに周知します。自分の組織にあった権限を付与し、それにともなった運用ルールを明記しておけば、メンバーも快適にAWSが利用できます。各リソースにTagをつけておけば、どんな開発にどれくらいのリソースを割り当てていてどれくらいのお金をつかっているかを取得しやすくなります。課金レポートを作成する際に有用です。ドキュメントを作成しておけば、運用者が変わった場合にも大きな問題なく運用ができると思います。いかがでしたでしょうか?ざっと説明しましたがAWS利用時にこれらのことを最初に考えておけば、後の運用がずっと楽になります。最新技術の動向を中心に個人的な興味・関心事などをレポートしています。頻繁に更新していますので、是非お気に入りに登録してください!よろしくお願いします。(ShanonAdventCalenda...新卒(貧困)エンジニアによる、Chromebookとの歩き方(ShanonAdventCalenda...PM(プロダクトマネージャー)チームを立ち上げて。わかったことと課題5つ。