ご自身の環境に応じてカスタマイズして頂けたら幸いです。EngineeringTweet小ネタですが、どなたかのかゆいところに手が届けばと思い、投稿します。前提Jenkinsでサービスのジョブ実行を制御しているバッチサーバーのリソースは諸事情により簡単に増やせないといった方々にご一読頂けたら嬉しい内容です。Jobが1日に複数回動くケースでは、2つ目の要件(1日1回、特定の時間帯しか動かしたくない)を満たすことができません。Jobはその名の通り重いジョブなので、実行時間が想定よりも延びてしまう可能性があります。その場合、処理内容によっては一緒に動いてしまうと、バッチサーバのマシンリソースを食い合うことによって、OOMなど深刻な問題に陥いる可能性が生まれ、結果お互いのジョブ及び他の実行中ジョブにも影響を与えてしまいます。すればよいか?やり方は色々あるかと思いますが、自分が対応したのはこういったやり方です。時間帯制御のロジックを書きます。オプションで9時間後の日付を取得することができます。UTC環境で動く前提ですが、JSTとの差は+9時間なのでこのようにしています。フォーマット指定です。0〜23の時間の数値で、1桁の場合はスペースが入ります。0〜23の数値が入ります。"`次に、先程取得したhourの整形です。trコマンドで半角スペースを削除します。抜けるようにしています。どなたかのご参考になれば幸いです。EC2インスタンスのIPアドレスを即座に確認するAWSTweetはじめにサービスを運用しているエンジニアなら障害検知システムを導入して、日々の障害に備えているかと思います。自身が所属するプロジェクトではAWSをメインに使っていて、監視サービスが異常を検知した場合、slackにインスタンスのホスト名を表示しています。sshして詳細を確認したいけど、DNS設定していないインスタンスはIPでなければsshできません。プライベートIPを確認しなければいけないのは効率が悪い...。準備しようと思います。※今回のやり方以外にも色々やりようはあるかと思いますが、自己流のやり方を記事に残しておきます。インストール・アクセスキー設定済EC2の各インスタンスタグにホスト名と環境名をつけて運用している自身のプロジェクトでそれらのタグをつけていない場合は、今回のコマンドから不要な部分のコマンドを削除すればよいです。describe-instancesです。AWSで運用しているインスタンスの数によりますが、このまま叩くとEC2インスタンス情報が膨大なJSONにて表示されます。表示要素を絞り込むJSONにはEC2インスタンスの様々な情報が含まれているため、必要最低限の要素だけを表示するようにします。オプションを使うことでそれを指定できます。},...]自分のプロジェクトでは、Environmentタグに環境名を、Nameタグにインスタンス名を設定しています。条件による絞り込みが可能です。値はバッククォートで囲います。Hashで連想配列にしています。テーブル形式で出力するJSON形式よりもヒューマンリーダブルなテーブル形式にします。環境でソートする(最終形)バラバラなまま表示することは運用上少ないので、環境名でソートします。いうソート関数を噛ませます。今回ここが割りと肝だったのですが、Environmentタグを定義していないインスタンスがある場合、ソート関数を単純に追加すると下記エラーが起きます。いう関数で、Environmentタグの値がnullのインスタンスを事前に除外します。上記2点を踏まえて変更した最終形のコマンドがこちらです。|+-------------+----------------------+------------------------------+----------------+------------------+これで必要最低限の全EC2インスタンス情報が表示されるようになりました。コマンドでもいいですが、このケースではnullチェックやsortは不要かと思います。|+-------------+----------------------+------------------------------+----------------+------------------+複数環境を指定したい場合は、バラバラに出力されないようにsortもかけたほうがよいです。以上、どなたかのご参考になれば幸いです。〜その2〜StripeTweet前回の記事kitakitabauer.hatenablog.com今回はStripeを使った開発上で困ったことを紹介します。こちらは2017年08月時点の情報なので、中には改善されていることがあるかもしれないのでご了承ください。テストカードの発行元設定が全て日本以外https://stripe.com/docs/testing#cardsこのページに、テスト環境でのみ使えるクレジットカードがありますが、サイト運用にあたり、リスク回避のため日本以外で発行されたカードは許可していないのですが、テストカードに日本のものがないため、テスト環境では日本以外のカードも使えるようにしなければなりませんでした。テストカードに関してはその点以外、イレギュラーケースとして請求が拒否されるカードなど様々なカードが用意されていたので、不都合はありませんでした。定期購読のプランの領収書に税を表示するために、開発途中で税込みから税抜きの価格設定に変更し、サブスクリプションを作成する際に事前に計算した税価格を渡すようにしました。作成済プランの料金を変更することはできないので、当たり前ですが、本番運用開始までに十分検証期間が必要です。いったこともあり、​税込み価格での設定を前提として、途中から税率を変更できたらうれしいなぁと思いました。税抜き価格のプランのため、税率変更の場合はおそらく新しいプランを用意する必要がありそうなので...以降のケースは全てStripeからリクエストされるWebhookに関する事柄です。Webhookのパターン検証の術がないWebhookは様々なタイプのリクエストがあります。支払い期限を迎えたときの請求を作成するリクエスト支払いが成功したときのリクエスト支払いが失敗したことにより、サブスクリプションがキャンセルしたときのリクエスト...これらリクエストのイベントタイプに対してエンドポイントを設定し、サービス固有の処理をフックすることができるのですが、どういったデータがWebhookに載ってくるか事前にわかればテストしやすかったなぁと感じました。本番稼働後では遅いので、それらがテスト環境で簡単に検証できたらうれしいものです。ダッシュボード:イベントログのタイプをフィルタリングする術が手打ちしかないStripe利用ユーザには売上や入金先設定やプラン、Webhookなどを管理できるダッシュボードが提供されているのですが、Webhookのログをフィルタリングしたいときに、毎回タイプを手打ちする必要があるのはやや手間でした^^;ダッシュボード:Webhookが失敗したことを一覧しづらい・検知する術がないWebhookが失敗したら何らかのユーザ対応が必要なこともあるのですが、常にログを見続けているわけではないので、気付きとなるような仕組みがほしいところです。いう旨のメールを頂いて初めて失敗し続けていることがわかりました。ため、開発スケジュールに影響が出てしまいました。ダッシュボードで失敗がサマリされているビューがあって、slackなどに通知できたら最高です。慣れていないこともありましたが、総じてWebhook周りのトラブルが多かったです。以上、どなたかのご参考になれば幸いです。〜その1〜StripeTweetはじめにWebサービス運営するにあたり、特にECサイト構築の中でも決済部分は重要かと思います。自社システムでもそういったニーズがあり、どのオンライン決済サービスを選定すべきか慎重に判断しなければなりません。はじめに、他のオンライン決済サービスとどう違うのか、既にまとめられている情報を確認します。この他にも実に様々なサイトで比較が行われています。(オンライン決済サービス15選。引用)有名所は個人でも使ったことがある方も多いPayPalかと思います。続いてSPIKEもホリエモンが取り上げていたこともあり知ってる方もいるのではないでしょうか。定期購読(サブスクリプション型課金)が可能か開発効率(対応言語やAPI及びドキュメントの充実度)ユーザーに課金操作をスムーズに行ってもらいたいでした。その中で、PayPalとSPIKEはPayPalは、PayPalアカウントがないと決済ができないPayPalはページ遷移をはさむSPIKEは定期購読に対応していないSPIKEはビジネスプランでないとVISAにしか対応していないSPIKEはAPIを利用する場合5,000円/月かかるといったことがネックとなりました。採用する運びとなりました。Stripeは下記特徴があり、結果ほとんど困ることなく開発を進めることができ、リリースできました。言語のクライアントが用意されており、その中で今回Golangのクライアントを使って開発しました。github.comドキュメント全て英語ですが、サンプルコードが充実しているので非常にわかりやすかったです。Reference例えば、カード情報を取得するAPIを確認する場合、curlGoといったサンプルリクエストが言語ごとに記述されています。テストのしやすさは、決済サービス選定の大きなポイントになると思います。それを使って本番さながらのテストが可能でした。次回は、そんな便利なStripeの中でも開発上で困ったことを紹介したいと思います。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。