0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS無料プランで個人開発環境を作る 第1回:アカウント初期設定と課金対策

0
Posted at

AWS無料プランで個人開発環境を作る 第1回:アカウント初期設定と課金対策

はじめに

AWSを使って個人開発やAI駆動開発の環境を作るために、まずはAWSアカウントの初期設定を行いました。

この記事では、AWS無料プランでアカウントを作成したあとに、最低限やっておきたい初期設定をまとめます。

今回のゴールは以下です。

AWS無料プランの状態を確認する
rootユーザーを保護する
作業用IAMユーザーを作成する
課金事故を防ぐ設定をする
東京リージョンを基本にする
高額になりやすいサービスを避ける方針を決める

今後、Terraform、AWS CDK、CodexなどのAIエージェントによる自動化を進める前提でも、最初にこのあたりを固めておくと安全です。

前提

この記事では以下の状態を想定します。

AWSアカウント作成済み
無料プランを選択済み
支払い方法の検証済み
Windows PCから利用予定
東京リージョンを主に使う予定

AWSリージョンは、まず東京リージョンを使用します。

ap-northeast-1

また、公開記事用としてIAMユーザー名は以下のような例で記載します。

dev-admin-user

実際には、自分の環境に合わせたユーザー名に置き換えてください。

1. AWS無料プランでアカウントを作成する

まずAWSアカウントを作成します。

新規登録時には、無料プランまたは有料プランを選択できます。

今回は、まず無料プランを選択しました。

無料プランの画面では、以下のような情報を確認できます。

無料プランのステータス
残りのクレジット
残りの日数

無料プランであっても、支払い方法の登録と検証は必要です。

支払い方法の検証が完了していないと、AWSアカウントを正常に使えなかったり、一部の操作が制限されたりする可能性があります。

そのため、アカウント作成後に支払い方法の検証が出ている場合は、先に完了させておきます。

2. 無料プランの状態を確認する

AWSコンソールにログイン後、無料プランの状態を確認します。

確認する項目は以下です。

無料プランのステータス
残りのクレジット
残りの日数

無料プランの表示が出ていれば、無料プランとして利用開始できています。

ただし、無料プランであっても、使い方によっては課金につながる可能性があります。

そのため、次のステップでMFAと予算アラートを設定します。

3. rootユーザーのMFAを設定する

AWSアカウント作成後、最初にやるべきことはrootユーザーのMFA設定です。

rootユーザーはAWSアカウント全体に対して強い権限を持つため、普段使いはしません。

rootユーザーでログインした状態で、以下の順に進みます。

右上のアカウント名
↓
セキュリティ認証情報
↓
多要素認証 / MFA
↓
MFAデバイスの割り当て

MFAには、認証アプリを使いました。

例としては以下があります。

Google Authenticator
Microsoft Authenticator
1Password
Bitwarden

設定の流れは以下です。

Authenticator app を選択
↓
QRコードをスマホ認証アプリで読み取る
↓
6桁コードを2回入力
↓
保存

これでrootユーザーをMFAで保護できます。

4. 作業用IAMユーザーを作成する

rootユーザーは普段使いしないため、通常作業用のIAMユーザーを作成します。

今回は例として、以下のようなIAMユーザーを作成した想定にします。

dev-admin-user

IAMコンソールで以下の順に進みます。

IAM
↓
ユーザー
↓
ユーザーを作成

ユーザー名を入力します。

dev-admin-user

AWSマネジメントコンソールにログインさせたい場合は、コンソールアクセスも有効にします。

このユーザーは、今後AWS上で通常作業をするためのユーザーです。

5. 作業用IAMユーザーに管理者権限を付与する

作成直後のIAMユーザーは権限が少なく、そのままではAWSの操作がほとんどできません。

個人開発用の管理者ユーザーとして使う場合は、まず AdministratorAccess を付与します。

rootユーザーでログインした状態で、以下の順に進みます。

IAM
↓
ユーザー
↓
dev-admin-user
↓
許可
↓
許可を追加
↓
ポリシーを直接アタッチ
↓
AdministratorAccess を検索
↓
チェックを入れる
↓
許可を追加

付与するポリシー名は以下です。

AdministratorAccess

これで作業用IAMユーザーが、通常のAWS管理作業を行えるようになります。

ただし、これはあくまで人間が管理作業を行うためのユーザーです。

後でAIエージェントや自動化ツールに使わせるユーザーは、別途最小権限で作成します。

6. 作業用IAMユーザーにもMFAを設定する

管理者権限を持つIAMユーザーにもMFAを設定します。

IAMコンソールで以下の順に進みます。

IAM
↓
ユーザー
↓
dev-admin-user
↓
セキュリティ認証情報
↓
MFAデバイスの割り当て

rootユーザーと同じように、認証アプリでQRコードを読み取って設定します。

Authenticator app を選択
↓
QRコードを読み取る
↓
6桁コードを2回入力
↓
保存

これで、普段使いするIAMユーザーもMFAで保護できます。

7. IAMユーザーからBillingを見られるようにする

AdministratorAccess を付与していても、IAMユーザーから請求情報やアカウント情報が見えない場合があります。

その場合は、rootユーザーでBillingへのIAMアクセスを有効化します。

rootユーザーでログインし、以下の順に進みます。

右上のアカウント名
↓
アカウント
↓
IAM User and Role Access to Billing Information
↓
Edit
↓
Activate IAM Access にチェック
↓
Update

これを有効化すると、IAMユーザーからBilling、Budgets、Free Tier、Creditsなどを確認できるようになります。

設定後は、rootユーザーからログアウトし、作業用IAMユーザーでログインし直します。

8. 予算アラートを作成する

AWS無料プランや無料利用枠を使う場合でも、課金事故を防ぐために予算アラートは必ず設定しておきます。

まず、Billing and Cost Managementを開きます。

Billing and Cost Management
↓
Budgets
↓
Create budget

Zero spend budget

最初に作るのは Zero spend budget です。

Create budget
↓
Use a template
↓
Zero spend budget
↓
通知先メールを確認
↓
Create budget

これにより、想定外の支出が発生した場合に早期に気づけます。

Monthly cost budget

次に、月額の上限予算も作成します。

最初は低めに設定します。

Budget type: Cost budget
Period: Monthly
Budget amount: 1 USD
Alert threshold: 80%, 100%

設定例です。

Monthly cost budget: 1 USD
通知: 80%
通知: 100%

個人開発の初期段階では、まずは1 USD程度で設定しておくと安心です。

9. Free Tier / Credits / Billsを確認する

AWS無料プランでは、無料クレジットや残り日数を確認できます。

Billing and Cost Managementから以下を確認します。

Free Tier
Credits
Bills

見るポイントは以下です。

残りクレジット
残り日数
今月の請求額
無料枠の使用状況

無料プランの状態やクレジット残高は、定期的に確認しておくと安全です。

10. 代替連絡先を設定する

可能であれば、代替連絡先も設定します。

これは、請求・セキュリティ・運用に関する通知を見逃さないための設定です。

右上のアカウント名
↓
アカウント
↓
連絡先情報
↓
代替連絡先

設定する項目は以下です。

Billing
Security
Operations

個人利用であれば、3つとも同じメールアドレスでも問題ありません。

画面に出てこない場合や権限エラーが出る場合は、rootユーザーで確認します。

それでも見つからない場合は、後回しでも構いません。

優先度としては、MFAと予算アラートの方が高いです。

11. デフォルトリージョンを東京に決める

日本から個人開発で使う場合、まずは東京リージョンを基本にします。

ap-northeast-1
Asia Pacific (Tokyo)
東京リージョン

AWSコンソール右上のリージョン選択で、東京リージョンを選びます。

アジアパシフィック(東京)
ap-northeast-1

今後、AWS CLI、Terraform、AWS CDK、AIエージェントに操作させる場合も、リージョンを固定しておくと安全です。

PowerShellで環境変数として指定する場合は以下です。

$env:AWS_REGION="ap-northeast-1"
$env:AWS_DEFAULT_REGION="ap-northeast-1"

12. 最初は避けるサービスを決める

無料プランや個人検証の初期段階では、高額になりやすいサービスを避けます。

最初は触らない方がよいものです。

NAT Gateway
RDS
OpenSearch
EKS
ECS/Fargateの常時稼働
大型EC2
GPU系インスタンス
Elastic IPの放置
ロードバランサーの放置

最初に触るなら、比較的低リスクなサービスから始めます。

IAM
S3
Lambda
CloudWatch
EventBridge
DynamoDB
API Gateway

まずはS3など、作成・削除が分かりやすいサービスから試すのがよいです。

13. AIエージェントや自動化ツールに管理者キーを渡さない

作業用IAMユーザーは、人間が管理作業を行うためのIAMユーザーです。

このユーザーのアクセスキーを、そのままCodexや自動化ツールに渡すのは避けます。

自動化用には、後で別のIAMユーザーを作成し、必要なサービスだけ操作できるようにします。

例です。

人間用: dev-admin-user
自動化用: codex-sandbox-user

自動化用ユーザーには、最初から AdministratorAccess を付けないようにします。

まずはS3など、低リスクなサービスだけ操作できるようにして、少しずつ権限を追加するのが安全です。

14. ここまでで完了したこと

ここまでで、AWSの基本設定はかなり固まりました。

完了した内容です。

AWS無料プランの確認
支払い方法の検証
rootユーザーのMFA設定
作業用IAMユーザーの作成
作業用IAMユーザーへのAdministratorAccess付与
作業用IAMユーザーのMFA設定
BillingへのIAMアクセス有効化
Zero spend budget作成
Monthly cost budget作成
Free Tier / Credits / Bills確認
東京リージョン固定
高額になりやすいサービスを避ける方針の整理

この状態で、AWSを個人開発に使い始めるための基本設定は完了です。

15. 次にやること

次は、自動化やAI駆動開発に向けた準備を進めます。

次にやる予定です。

1. AWS CLIプロファイルを分ける
2. 自動化ツール用のIAMユーザーを別で作る
3. 自動化ツール用IAMユーザーには最小権限だけ付与する
4. TerraformまたはAWS CDKの方針を決める
5. S3など低リスクなリソースで作成・削除テストをする
6. Codexに渡す操作範囲をAGENTS.mdで制限する

まずは、人間用の管理者プロファイルと、自動化用の制限付きプロファイルを分けるところから始めます。

まとめ

AWS無料プランを使い始める場合でも、最初に以下を設定しておくと安全です。

rootユーザーのMFA
作業用IAMユーザー
作業用IAMユーザーのMFA
BillingへのIAMアクセス有効化
予算アラート
Free Tier / Credits / Bills確認
東京リージョン固定
高額サービスを避ける方針

特に重要なのは、rootユーザーを普段使いしないことと、予算アラートを早めに作ることです。

次回は、自動化用IAMユーザーを分けて、AIエージェントやTerraform/CDKから安全にAWSを操作する準備を進めます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?