ソフトウェアエンジニアの王子です。
最近はDyson Sphere Programというゲームにハマっていまして、寝ている間も効率のよい自動化設計を考え続けています。
さて、本日は「AWS社内ハンズオンをやりたい」という話をさせていただきます。
AWS、便利ですよね。
製品リリースでも個人で何かを公開するなどでも使えてしまう。
個人なら低コストの代替手段もありますが、どうせなら製品リリース時に知見を活かせるAWSで全部こなせるようになりたいものです。
とはいえどこのAWS。 一般的なエンジニアリング環境と違って、情報量や上限のないコスト面などで習得ハードルが高いものになっています。
本日はこのAWSのノウハウをどうやって全体で蓄積しようかと考えている進行形のお話です。
Terraformでスマートな環境情報の共有を
唐突にご紹介するこのTerraform。
インフラの状態を構成ファイルで宣言しプロビジョニング、更新、破棄などをここから実行するものでIaC(Infrastructure as Code)と呼ばれる分野のものです。
メリットは数あるWebサイトで紹介されているので深くは記載しませんがざっくりと下記の利点があります。
- インフラ環境情報がファイル/ディレクトリに集約され見通しが良い
- コード補完により存在しない設定をする可能性を下げられる
- コンソール画面を共有せずにインフラ環境情報を共有できる
- コードをgitなどで管理することでインフラ環境情報の管理ができる
製品リリースにそのまま利用できるだけでなく、実際に手を動かす必要のあるハンズオンに何と最適な環境ではありませんか。
Terraformのハンズオンに寄る形になりますが、これを習得することでAWSの知見を深められるのではと考えています。
コストは制約としても残したい
AWS、特に費用上限といった概念がありません。
必要な時に必要なだけサーバーを用意することができそしてその分だけお金がかかります。
製品リリースの品質に直結しているので、ハンズオンの段階から「この設定を適用すると¥100,000かかるかも…」
という緊張感を持って取り組んでもらいたいと思っています。
ここで費用を負担されることと緊張感のバランスをどう設定したら良いか…は目下の悩みです。
「いくらかかっても良いよ、好きに学習してOK!」はどうも緊張感のバランスが悪い気がするんですよね
なお、製品環境を想定した最小構成を立ち上げてみたところ
- 作業しないときは全部廃棄する→ ¥3,000/month + ドメイン代
- 常時起動しておく→¥20,000/month
という感じでした
ここは引き続き検討していきたいと思います
まずは自分ができるようにならないと
さて、私自身がさもインフラ担当者のように書いていますがそんなことはありません。
まだプログラム歴のなかでは3Dグラフィックス関連の処理を書いていた時間の方が長いです。
これまで関わった製品でもインフラ関連の部分は専門職種の方にお願いしていましたし、AWSできるようになろうと急に思い立ったのも先月です
こういう右も左もわからない時は、まずは写経ですよね。
こちらの書籍を大変参考にさせていただきました。
KOS-MOSさん、技術書典さん、ありがとうございます!
Web検索を併用しながら
ドメイン作成 + VPS/ECS/S3/ALB/RDS/Redis/CloudWatch/CodePipeline
あたりを立ち上げて動作を確認していました。
なんとこれでGitHubにコミットしたコードで自動デプロイされる独自ドメイン環境の完成です。
社内のTerraform設定も読んで理解できるようになりましたので、「土日二日だけくらいなら起動しっぱなしでも良いかー」と起動したまま請求書を見て急いで停止したのも良い思い出ですワハハハハ
さいごに
写経開始時は結構なハードルかと思っていましたが進めてみると動作確認まで比較的スムーズでした。
この結果を元に次回は「ハンズオンをやってみた話」が出来ればと思っています!
とりとめのない話になってしまいましたが以上です。
読んで頂き、ありがとうございました!
\\『真のユーザーファーストでマーケットを創造する』仲間を募集中です!! // 919.jp