どーもわたしです。5記事目にして急に技術の話題をもってきました! AWS SAMを使って毎月1日にSlackへ請求額を通知させる!っていう設定をCloud9でやってみました。Cloud9も使うのが初めてだったので、感想というか経験値を書き出しました。エンジニアの皆さんにとってはたぶん (笑) な内容かと思いますが、そういう目線なんか〜〜ふ〜〜〜んって感じで春風のようになまあたたかく見守ってもらえるとうれしいです。
AWS Cloud9 は、ブラウザのみでどのマシンからでもコードを記述、実行、デバッグできる、クラウドベースの統合開発環境 (IDE) です。- AWS公式ドキュメントから引用
そもそもなんで急にこんなことをやりだしたんかというと
依頼主はシンジです。ある日、この一言から唐突にわたしの挑戦が幕を開けたのです。
ファイッ!(ゴングが鳴る
AWS SAM と、いいますと?
SAM…サーバーレス アプリケーション モデル
AWS上でサーバーレスアプリケーションを構築する際に利用できるオープンソースフレームワークです。AWSのコンソールに表示されているサービスでもなく、コマンドの類でもなく、サーバーレスアプリケーションを定義するモデルです。
とりあえずやってみよかという感じでスタート
今回はクラスメソッドさんの記事を拝見し設定したので、詳細手順に関しては割愛します。コードにも分かりやすくコメントが入っていて、親切設計という。。 ただ通知が毎日AM9時の設定だったので、毎月1日朝9時に設定を変えました。ざっくりとした流れは、
①Slack側のWebhookの設定をする
②AWS SAMを使ってSlackの対象チャンネルへの請求額通知を設定(毎日AM9時)
③毎日の通知がくることを確認したら、月1回に変更 っていうかんじです。
(クラスメソッドさんの記事は最下部の参考欄に記載させていただきました!)
Cloud9を使ってみた
ブラウザ上で作成・実行・デバッグができるサービスで、Managed AmazonEC2に対するsudo権限をもったターミナルがくっついてるらしいので、サクッとコマンドを実行してAWSサービスに直接アクセスできるんですよね。これべんり!(こなみ
実際の画面はこんなかんじです。コードを記載するターミナル画面とテキスト編集ができる画面、上下で使い分けることもできて私は使いやすかったです。
非エンジニアがおっこちた落とし穴
もちろんすべて自力で完遂したわけではないので、やってみて気が付いたことがめっちゃありました。
重要なのは問題解決、まさにググり力
いろんなドキュメントを参考にしながら突き進もうとするんですが、そこに大きな障害が。
基礎的な情報がない!!
…ってのは少々語弊あるしほんまに極端なんですが、わたしみたいな非エンジニアな人間が挑戦しようとした時、エンジニアの皆さんの中で当たり前である設定や前提条件、知識が全く無い状態から手を動かします。なので、どこが割愛されてて何が必要なんかが分からず、ここの部分はどうするんや…って感じで一難去ってまた一難。困ったわたしは必死にGoogle先生を頼っていくわけなんですが、ググり力が足りず答えに辿り着くまでめっちゃ時間かかりました。Slack上で困り果てているわたしを見かねた弊社エンジニア数名がヒントをくれたり、私からすっぽ抜けている部分を補足してくれたりして、なんとか次のステップまで漕ぎ着けるような感じでしたね。(最終シンジも一緒にやってくれました、、、)
シンジ曰く、わたしの検索方法(というかキーワード)が間違っていたらしく、正しくググれば簡単にでてくるものばかりだったそうな。かなしい。
全然OKGoogleじゃなかった模様。
※ なんとかこんな感じで通知には成功しました!(なんとなく金額は伏せてみた)
知らなかった「あるある」な状況にまんまとハマった
OSや言語などのバージョンによって、相性が悪いとかうまく設定できないケースがあることを今回初めて体感しました。 必要なものを用意し、手順通りに設定して、ちょこちょこ問題はあったけどなんとか解決して、よっしゃビルドしたろ!いけー!って時にエラーメッセージがもりもり出てきて愕然とした時の気持ち…. 実は当初自分のMacBookからiTermを使って設定してみる予定だったんですが、この問題にぶち当たりCloud9で再挑戦したんです。 日々こんな状況(というかもっと過酷な状態や内容)と戦いながら問題を解決してゴールに辿り着く、すべてのエンジニアさんを心から尊敬します。ほんますごい。
これ以外にも、いわゆる凡ミスを連発し教訓を得たわたしでした。。。
経験値、いただきです!
挑戦から得た課題
黒い画面ともっと仲良くなることはもちろん、ほしい情報を素早く、正確に得るための問題解決力を手に入れること。ただ単にググり力を高めろというだけの話ではなく、何をしようとした時に/何をして/どのような結果になったのかを整理し、ヘルプを求めることが重要だとわかりました。最初からそれが実行できていればもっと早く完遂できたのかなーと思います。 何事もやってみんと分からんことが多いし、一筋縄ではいかんなーと感じました。
っていうことでまとめます
急に降ってきた依頼でめっちゃ時間かかったんですが、それもシンジの狙いであり、「あんま技術的な事やんないから、いろいろ悩みながらやってみてほしかったんだよね〜」って言ってました。確かに、いくら非エンジニアとはいえ最先端を走ろうとするIT企業に所属し、エンジニアと仕事をするのに必要最低限の知識がまだまだ足りんな!ってのを今回改めて確認できたので、まずは黒い画面と仲良くなるよう歩み寄っていくところから始めます。摺足で。そぉろぉりそぉろぉりぃ〜
参考
■ クラスメソッドさんの元記事 https://dev.classmethod.jp/cloud/aws/notify-slack-aws-billing/