09:30カテゴリ:AWS,運用技術はじめまして。今年の5月に入社した、エンジニアリンググループの佐藤です。前職ではメディア関連の会社で就業していて、WebサイトやWebシステムの開発チームでインフラ構築・運用・保守を担当してきました。この度、自分自身の技術力向上を目的にハートビーツに入社しました。今回は、業務の中でAWSのリザーブドインスタンスを購入する機会があったので関連するTipsをご紹介します。リザーブドインスタンスとはAWSのリザーブドインスタンスとは、1年もしくは3年の長期間利用を予約することで、通常のオンデマンド料金に対して割引が適用され、オプションによってはキャパシティーを予約できるサービスです。その他様々な購入オプションがありますが、今回はそのオプションについて詳細は触れません。AWSの公式サイトをご確認ください。高額決済ってこわいリザーブドインスタンスの購入手続きは、先述の通り長期利用を予約するものになるため、前払いを選択する場合は1年分もしくは3年分を一括で前払いすることになります。このため、「前払いなし」の購入オプションを選択しない限り、普段より大きめな金額の決済が発生します。AWSを利用中の方はご存知のことでしょうが、マネージメントコンソールのユーザインターフェースは不定期かつ予告なく変更になることがあります。このため手順書が再利用できないこともありますし、そもそも画面での操作には再現性がなく、ミスの温床となってしまうことが多々あります。ダブルチェックでの購入でミスを低減できますが、リモートワークでのダブルチェックにはやはり不安がつきまといます。そのような環境で高額な決済手続きをエンジニアが行うことは、「気をつけて操作する」以外の解決策がないのでストレスと言わざるをえません。決済オペレーションにもレビューと再現性をAWSには豊富なAPIと比較的かんたんに使えるコマンドラインツールが用意されています。リザーブドインスタンスの購入オペレーションももれなく対応しています。コマンドラインツールを利用することで、購入手続きを事前にレビューすることが可能になり、高額決済のストレス緩和に大いに貢献してくれます。コマンド例リザーブドインスタンスの購入手続きは大きく分けて2段階の手順を踏みます。IDという購入パターンごとにユニークなIDが割り当てられています。IDを特定することが必要になります。IDがひとつになるまで絞りきるのがポイントです。IDを指定して購入コマンドを実行します。それではさっそく購入までの実行例をいくつか見ていきましょう。IDが返ってきました。期間とスコープについては絞り込むためのオプションがないのでfiltersオプションを利用しています。IDだけになるように調整しています。filtersで指定しているdurationの値31536000は、365日を秒になおした値です。このコマンドでは決済は行われないので何度確認しても大丈夫です。レビュアーにもしっかり確認してもらいましょう。IDを指定してリザーブドインスタンスを購入します。購入するインスタンスの数はここで指定しています。このコマンドを実行すると決済が実行されるので注意してください。社内で決裁が承認されてから実行しましょう。ヒストリーバック等で複数回実行しないように注意してください。2以上でEC2のリザーブドインスタンス購入手続きが完了しましたが、まだこの時点では支払いのステータスがpendingになっています。翌日もステータスがactiveにならない場合、なんらかの理由で決済が滞っているのでサポートに確認してみましょう。ちなみに、EC2のリザーブドインスタンスには以下のように日時を指定して購入予約をするオプションがあります。リザーブドインスタンスには更新という概念がないので、リザーブドインスタンスの有効期間を切れ目なく購入したい場合などに活用します。RDSRDSでのリザーブドインスタンスの購入も大まかな流れは同じです。RDSの場合は指定できるオプションに違いがあり、EC2でできた予約購入ができません。このあたりはぜひAWSに機能追加をしていただきたいものです。IDが返ってきました。EC2と違ってRDSでは期間の絞り込みオプションが存在します。IDだけになるように調整しています。durationの値94608000は、365日×3を秒になおした値です。期間内にうるう年をふくむ場合も365日で計算されるので、実際に購入すると有効期限が3年後の1日前になったように見えます。このコマンドでは決済は行われないので何度確認しても大丈夫です。レビュアーにもしっかり確認してもらいましょう。IDを指定してリザーブドインスタンスを購入します。このコマンドを実行すると決済が実行されるので注意してください。1EC2と違って予約購入のオプションはありません。リクエストが通った時間から適用されます。支払いのステータスについてはEC2と同様です。以上でRDSのリザーブドインスタンスが購入できました。ElastiCacheElastiCacheはインスタンスではありませんが、リザーブドインスタンスと同様のサービスとしてリザーブドキャッシュノードが存在します。基本的な考え方はEC2やRDSのリザーブドインスタンスと変わりません。IDが返ってきました。オプションの使用感はRDSと近いです。IDだけになるように調整しています。このコマンドでは決済は行われないので何度確認しても大丈夫です。レビュアーにもしっかり確認してもらいましょう。IDを指定してリザーブドキャッシュノードを購入します。このコマンドを実行すると決済が実行されるので注意してください。2支払いのステータスについてはEC2やRDSと同様です。以上でElastiCacheのリザーブドキャッシュノードが購入できました。まとめEC2、RDS、ElastiCacheのリザーブドインスタンスをコマンドラインツールを使用して購入する方法をご紹介しました。コマンドラインツールを使用することで事前の手間は増えるようにも感じますが、レビューを通すことで実行者は安心して購入作業をすすめることができました。コマンドラインツールを活用しましょう。最後にハートビーツでは、AWS代行サービスをメニューとして取り扱っています。いに至るまで全て弊社にお任せいただけるサービスとなります。ハートビーツのマネージドサービスと組み合わせることで、AWSにおける様々な手続きを我々が対応します。今回紹介したリザーブドインスタンスの購入も対応します。AWSを使いたいけど運用に不安がある、といったお客様はぜひご相談ください。株式会社ハートビーツの技術情報やイベント情報などをお届けする公式ブログです。こちら「みんな仲良く」「プライドを持って」「変化を楽しむ」という企業理念に共感していただけるエンジニアを募集しています。