はじめに
7月にAWS認定クラウドプラクティショナー(CLF)を取得した知識を活かし、実際に「動くシステム」を構築していくための開発ログです。
サーバーレス構成(React + API Gateway + Lambda + DynamoDB + S3) で読書記録アプリ(BookLog)を1週間で作り、その過程をQiitaにまとめます。
対象読者は、以下のような人を想定しています。
- CLFは取ったが、AWSを触っての開発はこれから
- フロント(JavaScript / React)とGitの基礎は学んだ
- まずは無料枠中心で、最小構成から動くものを作りたい
この記事(Day 1)では、AWSアカウント作成〜初期の安全対策までを、つまずきやすいポイント込みで整理します。
1週間の開発ロードマップ
- Day 1: AWSアカウント開設・初期の安全対策・設計 👈 今ここ!
- Day 2: データベース設計とAWS Lambda構築(バックエンド)
- Day 3: API GatewayによるAPI公開と疎通確認
- Day 4: React (Vite) を用いたフロントエンド実装
- Day 5: S3 + CloudFrontによるデプロイ・公開
- Day 6: E2Eテスト・エラーハンドリング・構成図作成
- Day 7: Qiita記事執筆と全体振り返り
作成したアプリと構成図
今回は「読書記録アプリ」をサーバーレスアーキテクチャで構築しました。
Day1: AWSアカウントの開設と初期設定
AWSで開発を始めるとき、最初にやるべきことは「環境構築」だけではなく、セキュリティとコスト事故を防ぐ設定 です。
最初にここを固めておくと、安心して手を動かせます。
この記事でやることは次の4つです。
- AWSアカウントの作成
- ルートユーザーのMFA(多要素認証)設定
- 請求アラート(AWS Budgets)の設定
- 日常作業用のIAMユーザー(管理者)作成
1. AWSアカウントの作成
-
AWS公式サイトへアクセス
https://aws.amazon.com/jp/

-
「無料でAWSの使用を開始(アカウントの作成)」をクリック(※日本語表記で進めています)
-
メールアドレスとパスワードを設定
-
連絡先情報
-
フルネーム(Full Name): ローマ字で氏名を入力します(例:
Taro Yamada)。 -
電話番号(Phone Number): 国コードで「日本 (+81)」を選択し、電話番号の最初の「0」を抜いた番号を入力します(例:
090-1234-5678の場合は9012345678)。
※SMS認証に使用されます。 -
国 / 地域(Country/Region):
Japan(日本)を選択します -
住所(Address): 日本の住所表記とは逆に「建物名・部屋番号 → 番地 → 町名」の順にローマ字で入力します。
-
住所行1(Address line 1): 番地・町名(例:
1-2-3 Minamicho) -
住所行2(Address line 2): 建物名・部屋番号(例:
Mansion Name 201※省略可) -
市区町村(City): 市区町村名(例:
Kawasaki-shiやShibuya-ku) -
州 / 都道府県 / 地域(State/Province/Region): 都道府県名(例:
KanagawaやTokyo)
-
住所行1(Address line 1): 番地・町名(例:
-
郵便番号(Postal Code): ハイフンなしまたはハイフンありの7桁(例:
2110000または211-0000)
入力後、利用規約の同意にチェックを入れて「続行」をクリックすると、次の本人確認(SMS認証)へ進みます。
-
フルネーム(Full Name): ローマ字で氏名を入力します(例:
-
連絡先情報、クレジットカード情報、本人確認(電話番号でのSMSまたは音声通話)を画面に従って入力
ここで私は、「支払い情報の登録」で大きくつまづきました。
初学者あるある(?)だと思うので、私の失敗談と解決策を共有しておきます。
❌ 失敗1:クレカが3Dセキュア(不正利用検知)で弾かれる
AWSは登録時に、カードの有効性を確認するため海外からの1ドル(または100円程度)のテスト決済が走ります。私はここで、カード会社のセキュリティに引っかかりました。
💡 解決策: 別のカードを試すか、カード会社に電話して「AWSの決済を通したいので一時的にロックを解除してほしい」と伝えるのが一番早いです
(私は当初クレジットカードで登録しようとしていたのですが、エラーが出続けたためデビットカードの登録に切り替えたところうまく認証が通りました)。
❌ 失敗2:デビットカードで「口座番号」を入力してしまう
焦って別のデビットカードを使おうとした際、「The card number isn't valid」と怒られました。
💡 解決策: クレジットカード同様、表面にある16桁の番号を入力するのが正解です。(※デビットの場合、テスト決済分が即時引き落とされるため口座残高に注意してください)
- サポートプランは ベーシックサポート(無料) を選択
- アカウント作成完了
2. ルートユーザーのMFA(多要素認証)設定
ルートユーザー(メールアドレスでログインするアカウント)は権限が強力で、不正アクセスされると重大なインシデントに繋がります。
最初に MFA(2段階認証)を必ず有効化します。
3. 請求アラート(AWS Budgets)の設定
無料枠中心で進めるとはいえ、設定ミスやリソース放置で課金が発生する可能性があります。
保険として Budgetsで請求アラートを作ります。
手順(Zero spend budget)
- 検索バーで Budgets(AWS Budgets)と検索
- 予算を作成 → 「テンプレートを使用」
- ゼロ支出予算(Zero spend budget) を選択(※ 1ドルでも超えると通知)
- 通知先メールアドレスを入力して作成
補足
- もう少し実用的にするなら、後で「月$5」などの上限を設定して段階通知(80%/100%)にするのもおすすめです。
4. 日常作業用のIAMユーザー作成(ルートは封印)
普段の作業はルートユーザーではなく、IAMユーザーで行うのがベストプラクティスです。
ここでは開発を進めるために、まずは管理者権限(強め)でIAMユーザーを作ります。
将来的には最小権限(Least Privilege)へ寄せますが、最初は「詰まって手が止まる」を避けるために管理者で進めます。
手順
- 検索バーで IAM と検索
- 左メニュー ユーザー → ユーザーの作成
- ユーザー名(例:
admin-dev) - 「AWSマネジメントコンソールへのユーザーアクセスを提供する」にチェック
- パスワードを設定
- 「ポリシーを直接アタッチする」→ AdministratorAccess を付与
- 作成後に表示される コンソールサインインURL を保存
以後はそのURLからIAMユーザーでログインして作業する
つまずきメモ
- サインインURL(
https://xxxx.signin.aws.amazon.com/console)は後で迷子になりがちなので、ブラウザのブックマーク推奨。
Next Action(Day 2に進む前に)
ここまで完了したら、次に進むために以下を確認します。
- IAMユーザーでログインできる
- MFAが有効になっている
- Budgetsの通知先メールが設定されている
これで、Day1(AWSアカウント開設・初期の安全対策)は完了です。
次回(Day 2)は、読書記録アプリ(BookLog)の データ設計(DynamoDB) と LambdaでCRUD に入ります。
まずは「保存するデータ項目(タイトル・著者・ステータス・評価・メモなど)」を決めて、テーブル設計をしていきます。



