※本記事はAIが書いて、人間がファクトチェックしています。
IaCの連載企画、第0回です。
こんにちは!本日から新連載 『IaCで作る「絶対止めない」AWSデプロイ戦略ハンズオン』 をスタートします。
「ローリングアップデートとかブルーグリーンデプロイって言葉は知ってるけど、実際どうやるの?」
「本番環境のデプロイで、ユーザーにエラー画面を見せてしまったトラウマがある…」
そんな方に向けて、AWS環境で 「絶対にサービスを止めないデプロイ」 を、IaC(Infrastructure as Code)ツールを使って実現していく実践的なハンズオン企画です。
記念すべき第0回のテーマは、デプロイ戦略…の前に、「クラウド破産を回避して安全な実験場を作る」 です。これをやらないと本当に危険なので、必ず最後までついてきてくださいね!
1. 【プロローグ】 恐怖!GitHubにキーを上げてしまった先輩の怪談
先輩エンジニア(入社2年目):
「よーし、ついに個人のAWSアカウント作ったぞ!とりあえず練習で書いたコード、GitHubのパブリックリポジトリにプッシュしとこっと。自分の頑張り、世界に見てもらいたいしな!」
(数日後)
先輩エンジニア:
「ん?AWSからメールが来てる。『Your AWS invoice...』? なになに……」
『 ご 請 求 額 : $ 20,000 ( 約 300 万 円 ) 』
先輩エンジニア:
「ヒッ……!?(気絶)」
…これは現場で本当に起きる 「アクセスキー漏洩」によるクラウド破産(不正利用) のリアルな怪談です。
悪意あるボットはGitHubを24時間監視しており、誤って公開されたアクセスキー(AWSを操作するためのパスワードのようなもの)を数秒で検知し、勝手に超ハイスペックなサーバーを何百台も立ち上げて暗号資産のマイニングなどに悪用します。
この連載を安全に、安心して進めるために、まずは「絶対に破産しないための命綱」と「自分のPCからAWSを操作する魔法の環境」を作りましょう!
2. 【図解インプット】 あなたのPCとAWSはどう繋がるのか?
普段、みなさんがAWSを使う時はブラウザ(マネジメントコンソール)からポチポチとボタンを押していると思います。しかし、今回のテーマであるIaC(コードによるインフラ構築)では、手元のPCから直接AWSに命令を下します。
そのために必要なのが以下の仕組みです。
[あなたのPC]
├─ VS Code (コードを書くエディタ)
├─ Terraform / CDK (IaCツール:インフラの設計図)
└─ AWS CLI (AWS専用の翻訳機・通信機)
│
▼ (インターネットを経由して命令を送信)
│ ※ここで「アクセスキー」という通行証を見せる
▼
[AWS クラウド] (リソースが自動で作られる!)
この「手元のPCにツールを入れ、安全な通行証を発行する」のが今日のゴールです。
3. 【ハンズオン】 鉄壁の防具を装備し、武器を手に入れる
インターネットに繋がるPC(WindowsでもMacでもOK)を用意してください。所要時間は約45分です。
Step 1: AWSアカウント(ルートユーザー)の作成と「MFA(多要素認証)」の絶対設定
まだアカウントを持っていない方はAWS公式サイトから作成してください(クレジットカードの登録が必要です)。
ログインしたら、何よりも先に MFA(多要素認証) を設定します。最近のAWSではアカウント作成直後のダッシュボードにMFA設定を促す警告が出ているはずなので、それに従って設定を進めましょう。
- 画面右上のアカウント名をクリックし、「セキュリティ認証情報」へ。
- 「MFAの割り当て」をクリックし、スマホの認証アプリ(Google Authenticator等)を登録します。
これをやらないと、パスワードが漏れた瞬間に終わります。必ず設定してください。
Step 2: 命綱「AWS Budgets(予算アラート)」と「コスト異常検出」の設定
次に、万が一料金が発生した時にすぐ気づけるようアラートを設定します。
- 検索窓で「Budgets(あるいは予算)」と検索。
- 「予算を作成」から「ゼロ支出予算」または「月額コスト予算(例:1,000円)」を作成します。
- 超過時に通知を受け取るメールアドレスを登録します。
さらに強力な防具として、**「AWS Cost Anomaly Detection(AWS コスト異常検出)」**も有効化しましょう。機械学習が想定外のスパイク出費を検知してくれます。
- 検索窓で「コスト異常検出」と検索。
- 「サブスクリプションの作成」から、通知を受け取るメールアドレスを設定します。無料ですぐに設定できる最強の盾です。これで心理的ハードルが劇的に下がります!
Step 3: 作業用IAMユーザーの作成とアクセスキー発行
ルートユーザー(メールアドレスでログインする最強権限のアカウント)での普段使いはNGです。
- IAMコンソールから「ユーザーの作成」を開き、自分用のユーザー(例:
dev-user)を作ります。権限は一旦AdministratorAccessを付与します(※本番環境では最小権限の原則に従いますが、今回は学習用のため)。 - ルートユーザーと同様にMFAの設定を忘れずに。
- 作成したユーザーの画面から「セキュリティ認証情報」タブを開き、「アクセスキーの作成」 を行います。
- 表示された
アクセスキーIDとシークレットアクセスキーを手元にメモしてください。
🚨【超重要】🚨
この2つの文字列が載ったファイルを絶対にGitHubなどの公開の場にアップロードしないでください!Gitを使う際は必ず .gitignore ファイルを設定し、terraform.tfvars や .env といったキー情報やパスワードを書き込みがちなファイルを除外するクセをつけましょう。
Step 4: ローカルPCの武器屋(ツールインストール)
最後に、手元のPCに必須ツールをインストールします。以下の公式サイトから、ご自身のOS(Windows / Mac)に合わせたものを入れてください。
- VS Code(最強のエディタ)
- AWS CLI(AWSをコマンドで操作する基本ツール)
- Git(コード管理用)
- Terraform & Node.js(第2回以降で使うIaCツールと実行環境。Node.jsはLTS(長期サポート)版を選んでください)
4. 【トラシュー体験】 コマンドが「見つかりません」のパターン
さて、無事にAWS CLIのインストールが終わりましたね。確認してみましょう。
インストール前から開いていたターミナル(コマンドプロンプトやPowerShell、ターミナル.appなど)があれば、以下のコマンドを打ってみてください。
aws --version
【よくある結果】
command not found: aws
(または「'aws' は、内部コマンドまたは外部コマンド...として認識されていません。」)
「えっ、さっきインストール成功したのに!?」 と絶望したあなた、安心してください。初学者が陥りやすいパニックです。
原因は、現在開いているターミナルが 「新しくインストールされたツールの場所(PATH)をまだ知らない」 からです。
【解決策】
ターミナルを一度「×」ボタンで閉じ、もう一度新しく開き直してから、再度 aws --version を実行してください。
$ aws --version
aws-cli/2.x.x Python/3.x.x ...
※バージョン番号は実行したタイミングによって異なりますが、2系(または3系)が表示されればOKです!
バージョンが表示されれば大成功です。PATH(パス)を通す、環境変数を反映させる、という言葉を覚えておきましょう。
最後に、Step3で取得したキーをPCに覚えさせます。
aws configure
と入力し、聞かれるままに アクセスキーID、シークレットアクセスキー、デフォルトリージョン(ap-northeast-1)、フォーマット(json)を入力すれば準備完了です!
🚨【超重要:もう一つの怪談】🚨
aws configureを実行すると、あなたのPCの奥深く(~/.aws/credentials)に今のパスワードが**平文(暗号化されていない状態)で保存されます。「ファイルに書いてGitHubに上げなければOK」と思いがちですが、PC内に保存されたキーを悪意あるプログラムが盗むリスクもゼロではありません。
本連載では初学者がスムーズに学べるようこの方法を使いますが、「本連載(第6回)がすべて終わったら、必ずAWSコンソールからこのアクセスキーを『無効化』または『削除』する」**と、ここで私と約束してください!
5. 【AI活用コラム】 インストールでつまずいた時の「正しいAIへのSOS」
環境構築はPCのOSバージョンや設定によってエラーが千差万別です。もしエラーが出たとき、ChatGPTやGeminiに単に「Terraform インストールできない」と聞いても、一般的な回答しか返ってきません。
現場で活躍するエンジニアは、以下のような 「魔法のプロンプト」 を使います。
【AIへのSOS テンプレート】
以下の環境で〇〇をインストールしようとしたら、エラーが出ました。原因と解決策を教えてください。・OS: [例:Windows 11 / macOS Sonoma (M3チップ)]
・実行したコマンド: [例:brew install terraform]
・エラーの全文:[ここにターミナルに出たエラーを英語のままコピペする]
このように「自分の前提条件(コンテキスト)」をAIに渡すことが、優秀なエンジニア(そして自走できるエンジニア)への第一歩です。
6. 【今回のリザルト】
- かかった費用: 0円(完全無料枠)
- 構築した環境: IaC無双するための最強のローカル環境
- 手に入れたもの: 「いくら使っているか分からない」という恐怖からの解放(安心感)と、トラブルシューティングの基礎知識
【次回予告】
準備は整いました!次回はいよいよ、あなたのPCからコードの魔法を使ってAWS上にWebサーバーを立ち上げます。しかし、そこに待ち受けるのは「サービス瞬断」の恐怖……。絶対に見逃すな!第1回でお会いしましょう。





