結論

AWSとは、Amazonが提供するクラウドで、サーバーや保存場所を使った分だけ借りられるサービス群です。正式名は Amazon Web Services です。

この記事でわかること

  • 主要サービス20の役割と身近な例の早見表
  • 無料プランの条件と、6か月後に起きること
  • S3・IAM・予算アラートをCLIで作った出力

2026年10月18日更新|AWS CLI 1.46.1・moto 5.2.3 で再現

AWS では、手元の PC からインターネット経由でデータセンターの機能を借り、使った量に応じて月ごとに支払います。

flowchart TD
    U[自分の PC<br>コンソール・CLI] -->|インターネット| R[リージョン<br>例 東京]
    R --> Z[AZ 3つ以上<br>独立したデータセンター群]
    Z --> S[EC2・S3・RDS など<br>必要な分だけ借りる]
    S --> B[使った分だけ請求<br>月ごとにまとめて]

初心者が最初に知っておくと迷わない言葉を、先にまとめます。

言葉 一言でいうと 身近なたとえ
EC2 仮想サーバーを借りる レンタルの PC
S3 ファイルを置く ネット上の倉庫
IAM 誰が何をできるかを決める 社員証と入館の権限
リージョン AWS の拠点の地域 東京・大阪などの支店
AZ リージョンの中の独立した設備 支店の中の別々の建物
従量課金 使った分だけ払う 電気・水道の料金
無料プラン 6か月・クレジット内なら請求なし お試し期間
ルートユーザー アカウントを作ったメールの持ち主 金庫の親鍵

確認環境:AWS CLI 1.46.1(botocore 1.43.62)・Python 3.11・Linux。AWS には接続せず、AWS の動きを再現するライブラリ moto 5.2.3 のサーバーモードに AWS CLI を --endpoint-url で向けて、S3 のバケット作成・アップロード・一覧・削除、IAM のグループ・ユーザー作成と権限付与、AZ の一覧、AWS Budgets の予算と CloudWatch の請求アラームの作成を動かしました。出力のアカウント ID(123456789012)とキーは moto の既定値・ドキュメント用の例です。無料プラン・料金・リージョン数・責任共有モデル・ルートユーザーとIAMの推奨は、aws.amazon.com と docs.aws.amazon.com の各ページで確かめました(確認日 2026年10月18日)。

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「AWSとは|初心者向けに主要サービス・料金・始め方を解説」

AWSとは:クラウドとオンプレミスの違い

AWS(Amazon Web Services、エーダブリューエス)は、Amazon.com のグループ会社が提供するクラウドサービスの集まりです。 AWS の解説ページでは、クラウドを「ニーズに応じて IT リソースをインターネット経由により従量制料金で提供すること」と説明しています。同じページによると、AWS には 200 を超えるサービスがあります。

クラウドの反対は オンプレミス(自社でサーバーを買って、自社の建物やデータセンターに置く形)です。違いは「買って持つ」か「借りて使う」かです。

オンプレミスサーバーを買い、届くまで数週間〜数か月待つ
→
AWS画面かコマンドで作り、数分で使い始める

始めるまでの時間が大きく違う

オンプレミス最初に機器代をまとめて払い、使わなくても費用は戻らない
→
AWS使った時間・量だけ払い、消せば課金が止まる

EC2 は1秒単位の課金(最小60秒)

オンプレミスアクセスが増えたら機器を買い足す
→
AWS台数や性能を設定で増やし、減らせる

繁忙期だけ増やす使い方ができる

オンプレミス建物・電源・機器の故障対応も自社で行う
→
AWS建物と機器は AWS が管理し、利用者は設定とデータを管理する

分担は後の「責任共有モデル」で説明

一方で、クラウドにも気をつける点があります。料金はドル建てで為替によって円の額が変わること、設定を誤ると思わぬ請求やデータの公開につながること、サービスが多くて覚えることが多いことです。この記事の後半は、これらを避ける設定と手順に当てています。

IaaS・PaaS・SaaSの違い

AWS のサービスは、利用者が管理する範囲で3つに分けられます。AWS の解説ページの説明をもとにまとめます。

種類 利用者が管理するもの AWS の例
IaaS(インフラを借りる) OS・ミドルウェア・アプリ・データ EC2・VPC・EBS
PaaS(土台ごと借りる) アプリ・データ Elastic Beanstalk・RDS・Lambda
SaaS(完成品を使う) 使い方・データ Amazon WorkSpaces・Amazon Connect

下に行くほど、利用者が管理する範囲が狭くなります。

AWSでできること(身近な例)

AWS でできることを、目的ごとに並べます。

やりたいこと 使う主なサービス 例
Web サイト・Web アプリを公開する EC2・S3・CloudFront・Route 53 会社のサイト、EC サイト
ファイルをためる・配る S3 写真の保存、ログの置き場、バックアップ
データベースを使う RDS・Aurora・DynamoDB 会員情報・注文データ
サーバーを持たずに処理を動かす Lambda・API Gateway 画像の縮小、フォームの受付 API
監視・ログを集める CloudWatch CPU 使用率のグラフ、エラー通知
生成 AI を使う Amazon Bedrock チャットボット、文書の要約
データを分析する Athena・Glue・Redshift 売上データの集計
社内の PC をクラウドに置く Amazon WorkSpaces 在宅勤務用のデスクトップ

身近なところでは、動画配信・ゲーム・EC サイトなど、多くの人が毎日使う Web サービスの裏側で AWS が使われています。

AWSの主なサービス一覧(早見表)

200 を超えるサービスのうち、初心者が最初に出会うものを20個に絞りました。上から、学ぶ順番の目安です。

サービス 何をするか 身近な例
IAM ユーザー・権限の管理 社員証と入館の権限
EC2 仮想サーバー レンタルの PC
S3 ファイルの保存(オブジェクトストレージ) ネット上の倉庫
VPC 自分専用のネットワーク 社内 LAN
RDS 管理付きのデータベース(MySQL・PostgreSQL など) 管理人付きの書庫
Lambda サーバーなしでコードを動かす 呼ばれたときだけ働く係
CloudFront コンテンツ配信網(CDN) 全国の配送センター
CloudWatch 監視・ログ・アラーム 防犯カメラと警報
Route 53 DNS(ドメイン名の管理) 住所録
ELB 負荷分散(ロードバランサー) 受付の振り分け係
EBS EC2 用のディスク PC の内蔵ディスク
DynamoDB キーと値のデータベース 番号札で引く棚
API Gateway API の入口 窓口の受付
SNS・SQS 通知・キュー(順番待ち) 掲示板と整理券
CloudFormation 構成をコードで作る 設計図から組み立てる
AWS Budgets 予算と通知 家計簿のアラーム
Cost Explorer 料金の分析 明細の集計
CloudTrail 操作の記録 入退室の記録簿
KMS 暗号化の鍵の管理 鍵の保管庫
Amazon Bedrock 生成 AI のモデルを API で使う AI の窓口

AWS CLI で S3・EC2・IAM を操作するコマンドの一覧は、関連記事「AWS CLIコマンド一覧|よく使うS3・EC2・IAM操作とオプション早見表」で扱っています。

EC2・S3・Lambdaの使い分け

初心者が最初に迷うのは「プログラムを動かす場所」です。

やりたいこと 選ぶもの 理由
常に動いている Web サーバーを置きたい EC2 OS から自由に設定できる
HTML・画像だけのサイトを置きたい S3(+CloudFront) サーバーを管理しなくてよい
呼ばれたときだけ短い処理を動かしたい Lambda 動いた時間だけの課金
データベースを使いたい RDS バックアップ・更新を AWS が行う

リージョンとアベイラビリティーゾーン(AZ)

リージョンは、AWS のデータセンターが集まった地域です。 日本には東京(ap-northeast-1)と大阪(ap-northeast-3)があります。アベイラビリティーゾーン(AZ)は、リージョンの中にある、互いに独立したデータセンターの集まりです。電源やネットワークが分かれているので、1つの AZ に障害があっても、別の AZ で動き続けられます。

AWS のグローバルインフラストラクチャのページの数字です(2026年10月18日時点)。

39リージョンサウジアラビア・チリに2つ追加の予定
124アベイラビリティーゾーン各リージョンに3つ以上
750+CloudFront の拠点配信用の拠点。ほかに中継用が15

東京リージョンの AZ を AWS CLI で一覧にした出力です(moto で再現)。

aws ec2 describe-availability-zones --region ap-northeast-1 \
  --query 'AvailabilityZones[].[ZoneName,ZoneId,State]' --output table
-----------------------------------------------
|          DescribeAvailabilityZones          |
+-----------------+-------------+-------------+
|  ap-northeast-1a|  apne1-az4  |  available  |
|  ap-northeast-1c|  apne1-az1  |  available  |
|  ap-northeast-1d|  apne1-az2  |  available  |
+-----------------+-------------+-------------+

ap-northeast-1a のような名前(ZoneName)と、apne1-az4 のような ID(ZoneId)の2つがあります。AWS のドキュメントによると、AZ の名前と実際の場所の対応はアカウントごとにばらばらに割り当てられ、ID はどのアカウントでも同じ場所を指します。 別のアカウントと AZ を合わせたいときは ID で比べます。

リージョンの選び方

条件 選ぶリージョンの目安
日本の利用者向けのサービス 東京(ap-northeast-1)
東京が止まったときの予備 大阪(ap-northeast-3)
請求アラーム・一部の全体の設定 バージニア北部(us-east-1)を指定する操作がある
使いたいサービスがあるか リージョンごとに提供状況が違うので、先に確かめる

画面右上のリージョンが違うと、作ったはずのリソースが「見えない」ことがあります。 EC2 や RDS はリージョンごとに分かれているためです。初心者のつまずきの中でも多いものです。

リージョンのコードの一覧と東京・大阪の AZ は、関連記事「AWSリージョン一覧とコード早見表|東京・大阪のAZも」で扱っています。

責任共有モデル(AWSと利用者の分担)

責任共有モデルは、セキュリティの責任を AWS と利用者で分ける考え方です。 AWS のページでは、AWS は「クラウドのセキュリティ(Security of the Cloud)」、利用者は「クラウドの中のセキュリティ(Security in the Cloud)」を受け持つと説明しています。

  • AWS の担当:データセンターの建物、ハードウェア、ネットワーク、仮想化の仕組み、リージョン・AZ・エッジの設備
  • 利用者の担当:データ、OS とファイアウォールの設定、アプリ、暗号化、ID と権限(IAM)

利用者の担当の範囲は、使うサービスで変わります。 同じページの EC2 と S3・DynamoDB の例をもとに整理します。

項目 EC2 RDS S3・Lambda
建物・機器・仮想化 AWS AWS AWS
OS の更新(パッチ) 利用者 AWS AWS
データベースの更新 利用者 AWS(時期は利用者が設定) 該当なし
ファイアウォール(セキュリティグループ) 利用者 利用者 該当なし
データ・暗号化・IAM の権限 利用者 利用者 利用者

「AWS を使っているから安全」ではなく、データと権限の設定は、どのサービスでも利用者の担当です。S3 のバケットを誤って公開する事故は、利用者側の設定の問題です。S3 のドキュメントでは、新しいバケットとオブジェクトは既定では公開されず、ブロックパブリックアクセスの4つの設定をすべてオンにすることを推奨しています。

AWSの料金の考え方

AWS の料金には、初心者が押さえておくと請求に驚かない3つの基本があります。

1使った分だけ払う(従量課金)

EC2 は動いていた時間(1秒単位、最小60秒)、S3 は保存した量とリクエストの数、Lambda は呼ばれた回数と動いた時間で決まります。消せば課金が止まります。

2止めても残るものに課金される

EC2 を停止しても、ディスク(EBS)・固定の IP アドレス・スナップショットは残り、料金がかかります。使い終わったら「停止」ではなく「削除」が要るものがあります。

3リージョン・データ転送・為替で変わる

同じサービスでもリージョンで単価が違います。AWS から外へ出るデータ転送にも料金があります(全サービス合計で月100GBまでは無料)。料金はドル建てです。

料金の計算例(Lambda)

Lambda の料金ページ(バージニア北部・x86、2026年10月18日時点)の単価で計算します。単価は、リクエスト100万回あたり 0.20 ドル、1GB 秒あたり 0.0000166667 ドルです。無料枠は毎月リクエスト100万回と 40万 GB 秒です。

使い方 GB 秒 月の料金
300万回・128MB・1回100ミリ秒 37,500 0.40 ドル(リクエスト分だけ)
3,000万回・512MB・1回200ミリ秒 3,000,000 約49.13 ドル(5.80+43.33)

GB 秒は「メモリ(GB)×動いた秒数×回数」です。1つ目は計算の時間が無料枠に収まり、無料枠を超えた200万回分のリクエストだけがかかります。正確な見積もりは AWS Pricing Calculator(https://calculator.aws/)で行えます。

EC2の買い方(購入オプション)

EC2 の料金ページにある主な買い方です。

買い方 特徴 向く使い方
オンデマンド 約束なしで、使った時間だけ払う 学習・試作・使う量が読めないとき
Savings Plans 使う量を約束すると、オンデマンドより最大72%安い 1年・3年動かし続ける本番
スポットインスタンス 空いている設備を最大90%安く使う。AWS の都合で中断されることがある 中断してもやり直せる計算

初心者のうちはオンデマンドで始め、使い終わったら削除する形が、料金を読みやすくします。今いくらかかっているかの確かめ方は、Billing and Cost Management の画面と Cost Explorer で行います。

AWSの無料利用枠(2026年10月18日時点)

2026年10月18日時点の AWS の無料利用枠は、アカウント作成時に「無料プラン」か「有料プラン」を選ぶ形です。 新しく AWS を使う人は、どちらのプランでも 100 ドルのクレジットを受け取り、決められた操作をすると最大 100 ドルのクレジットが追加されます。以前の解説記事に多い「12か月間の無料利用枠」とは仕組みが違います。

項目 無料プラン 有料プラン
使えるサービス 一部のサービスと機能 すべてのサービスと機能
料金 請求されない クレジットを超えた分は通常の従量課金
期間 作成から6か月、またはクレジットを使い切るまで 期間の終わりは無い
クレジットが無くなったら アカウントが閉じる アカウントは閉じない
ほかの割引・プロモーション 対象外 対象

クレジットが増える5つの操作

AWS のドキュメントでは、コンソールのホームにある「Explore AWS」から次の操作を行うと、合計で最大 100 ドルのクレジットが追加されます。EC2・Bedrock・Lambda・RDS の操作で発生した料金は、クレジットから差し引かれます。

  1. EC2 でインスタンスを起動する
  2. Amazon Bedrock のプレイグラウンドで基盤モデルを使う
  3. AWS Budgets でコスト予算を作る
  4. Lambda で Web アプリを作る
  5. RDS でデータベースを作る

無料プランが終わると何が起きるか

ドキュメントによると、無料プランは6か月たつか、クレジットを使い切ると終わり、アカウントは自動で閉じられ、リソースとデータにアクセスできなくなります。 AWS は90日間データを残し、その間に有料プランへ上げればアカウントを使い続けられます。90日以内に上げないと、アカウントと中身はすべて完全に削除されます。 残ったクレジットは、有料プランに上げると以後の請求に充てられます。

AWS Organizations への参加など、いくつかの操作をすると無料プランは自動で有料プランに上がります。

期限なしで無料のサービス

無料プラン・有料プランのどちらでも、30 を超えるサービスに毎月の無料の使用量があります。たとえば Lambda は、毎月リクエスト100万回と 40万 GB 秒までが無料です。サービスごとの量は、AWS 無料利用枠のページで「Always Free」を選ぶと一覧で見られます。

AWSの始め方:最初の1時間でやること

アカウントを作ったら、何かを作る前に次の4つを済ませます。IAM のベストプラクティスとルートユーザーのベストプラクティスのページにある内容を、初心者向けの順に並べました。

1

ルートユーザーに MFA を設定する

ルートユーザーは、アカウントを作ったメールアドレスでサインインする、すべての権限を持つユーザーです。パスワードに加えて、スマホの認証アプリやセキュリティキーを2つ目の確認(MFA)として登録します。

ドキュメントでは、MFA が無いと初回のサインインから35日以内に登録が求められる

2

ふだん使うユーザーを別に作る

毎日の作業はルートユーザーで行いません。IAM Identity Center(推奨)か IAM ユーザーで、自分用のユーザーを作り、そのユーザーにも MFA を付けます。

ルートユーザーのアクセスキーは作らない(ドキュメントの推奨)

3

予算アラートを作る

AWS Budgets の「ゼロ支出予算」か「月次コスト予算」のテンプレートで、使った額や見込みの額が決めた額を超えたらメールが届くようにします。

無料プランを超えたら通知するのがゼロ支出予算

4

使うリージョンを決める

画面右上で東京などのリージョンを選んでから作ります。作ったリソースが見えないときは、まずリージョンを確かめます。

請求アラームはバージニア北部で作る

ルートユーザーで行う作業と、行わない作業

ルートユーザーのベストプラクティスのページの見出しから、個人で始める人に関係が深いものです。

推奨 内容
強いパスワードを使う 他のサイトと同じパスワードにしない
MFA を設定する ルートユーザーには MFA を最大8つ登録できる
ルートユーザーのアクセスキーを作らない CLI・プログラムは別のユーザーやロールで使う
グループのメールアドレスを使う(会社の場合) 担当者が辞めても受け取れるようにする
サインインと操作を監視する CloudTrail などで記録を見る

ルートユーザーでしかできない作業(アカウントの解約、一部の請求の設定など)のときだけ、ルートユーザーでサインインします。

人のユーザーは IAM Identity Center が推奨

IAM のベストプラクティスの最初の項目は「人のユーザーは、ID プロバイダーとのフェデレーションで、一時的な認証情報を使って AWS にアクセスする」です。1人で学ぶ場合も、IAM Identity Center でユーザーを作ると、CLI では aws sso login で一時的な認証情報を使えます。学習のために IAM ユーザーとアクセスキーを使う場合は、キーをコードやリポジトリに書かず、使わなくなったら削除します。

AWS CLIで動かしてみる(S3・IAM)

ここからは、AWS CLI(コマンドで AWS を操作する道具)で、S3 と IAM の基本の操作を動かします。出力は、AWS の動きを再現する moto のサーバーに AWS CLI を向けて得たものです。 本物の AWS では、--endpoint-url を付けずに同じコマンドを実行します。

AWS CLIを入れて認証情報を設定する

AWS CLI のドキュメントにある、バージョン2 の入れ方です。

OS コマンド
Linux(x86_64) curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" → unzip awscliv2.zip → sudo ./aws/install
Mac curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" → sudo installer -pkg AWSCLIV2.pkg -target /
Windows msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi

入れたら aws --version で版を確かめ、aws configure(IAM ユーザーのキーを使う場合)か aws configure sso(IAM Identity Center の場合)で認証情報とリージョンを設定します。今の設定は aws configure list で見られます。

$ aws configure list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************MPLE              env    
secret_key     ****************EKEY              env    
    region           ap-northeast-1              env    AWS_DEFAULT_REGION

どのアカウントの誰として動いているかは aws sts get-caller-identity で確かめます。操作の前にこれを見る習慣を付けると、別のアカウントでの誤操作を防げます。

$ aws sts get-caller-identity
{
    "UserId": "AKIAIOSFODNN7EXAMPLE",
    "Account": "123456789012",
    "Arn": "arn:aws:sts::123456789012:user/moto"
}

S3:バケットを作り、ファイルを置いて一覧を見る

S3 では、ファイル(オブジェクト)を「バケット」という入れ物に置きます。バケット名は、同じパーティション(通常の AWS 全体)のすべてのアカウントで重ならない名前にします。 ドキュメントの決まりは、3〜63文字・小文字の英字と数字とピリオドとハイフンだけ・英字か数字で始まり英字か数字で終わる、です。

$ aws s3 mb s3://rjc-sample-20261018
make_bucket: rjc-sample-20261018

$ aws s3 ls
2026-10-18 13:18:22 rjc-sample-20261018

ファイルを2つ作ってアップロードします。data/fruits.csv のように / を含めると、フォルダのように扱われます。

$ echo '<h1>Hello AWS</h1>' > index.html
$ printf 'id,name\n1,apple\n2,banana\n' > fruits.csv
$ aws s3 cp index.html s3://rjc-sample-20261018/
upload: ./index.html to s3://rjc-sample-20261018/index.html
$ aws s3 cp fruits.csv s3://rjc-sample-20261018/data/fruits.csv
upload: ./fruits.csv to s3://rjc-sample-20261018/data/fruits.csv

一覧を見ます。--recursive で下の階層まで、--summarize で件数と合計サイズが出ます(この時点で別名の index2.html も置いてあります)。

$ aws s3 ls s3://rjc-sample-20261018/
                           PRE data/
2026-10-18 13:18:23         19 index.html
2026-10-18 13:18:23         19 index2.html

$ aws s3 ls s3://rjc-sample-20261018/ --recursive --human-readable --summarize
2026-10-18 13:18:24   25 Bytes data/fruits.csv
2026-10-18 13:18:23   19 Bytes index.html
2026-10-18 13:18:23   19 Bytes index2.html

Total Objects: 3
   Total Size: 63 Bytes

PRE data/ は「data/ で始まるものがある」という意味です。S3 に本当のフォルダは無く、data/fruits.csv という名前の1つのオブジェクトがあるだけです。

ファイルの情報を見る・中身を表示する・バケットのリージョンを見る操作です。

$ aws s3api head-object --bucket rjc-sample-20261018 --key data/fruits.csv
{
    "AcceptRanges": "bytes",
    "LastModified": "Sun, 18 Oct 2026 04:18:24 GMT",
    "ContentLength": 25,
    "ETag": "\"f85145a07739656717a0f0d0b37ae52d\"",
    "ContentType": "text/csv",
    "Metadata": {}
}

$ aws s3 cp s3://rjc-sample-20261018/data/fruits.csv -
id,name
1,apple
2,banana

$ aws s3api get-bucket-location --bucket rjc-sample-20261018
{
    "LocationConstraint": "ap-northeast-1"
}

S3:バケットを消す(中身が残っていると消せない)

中身があるバケットは rb で消せません。先に rm --recursive で中身を消します。rm --recursive は確認なしで全部消すので、バケット名を必ず見直してから実行します。

$ aws s3 rb s3://rjc-sample-20261018
remove_bucket failed: s3://rjc-sample-20261018 An error occurred (BucketNotEmpty) when calling the DeleteBucket operation: The bucket you tried to delete is not empty

$ aws s3 rm s3://rjc-sample-20261018 --recursive
delete: s3://rjc-sample-20261018/data/fruits.csv
delete: s3://rjc-sample-20261018/index.html
delete: s3://rjc-sample-20261018/index2.html

$ aws s3 rb s3://rjc-sample-20261018
remove_bucket: rjc-sample-20261018

S3 のドキュメントによると、消したバケット名は別のアカウントが使えるようになります。他の人に名前を取られたくない場合は、自分のアカウント専用の「アカウントリージョナル名前空間」にバケットを作る方法も用意されています。

cp・sync・mv のオプションは、関連記事「aws s3コマンド一覧|cp・sync・ls実行例とオプション早見表」で扱っています。

IAM:グループとユーザーを作って権限を付ける

IAM では、権限(ポリシー)をユーザーに直接付けるより、グループに付けてユーザーをグループに入れる形が管理しやすくなります。ここでは、読み取りだけできる AWS 管理ポリシー ReadOnlyAccess を付けたグループを作ります。

$ aws iam create-group --group-name developers
{
    "Group": {
        "Path": "/",
        "GroupName": "developers",
        "GroupId": "za8i2olr2p9jclmmsnue",
        "Arn": "arn:aws:iam::123456789012:group/developers",
        "CreateDate": "2026-10-18T04:18:28.375752Z"
    }
}

$ aws iam attach-group-policy --group-name developers \
    --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess

$ aws iam create-user --user-name tanaka
{
    "User": {
        "Path": "/",
        "UserName": "tanaka",
        "UserId": "9yqg19f8t14p2aygcu7y",
        "Arn": "arn:aws:iam::123456789012:user/tanaka",
        "CreateDate": "2026-10-18T04:18:29.187064Z"
    }
}

$ aws iam add-user-to-group --user-name tanaka --group-name developers

attach-group-policy と add-user-to-group は、成功すると何も表示しません。結果は一覧で確かめます。

$ aws iam list-users --query 'Users[].[UserName,Arn]' --output table
-----------------------------------------------------
|                     ListUsers                     |
+--------+------------------------------------------+
|  tanaka|  arn:aws:iam::123456789012:user/tanaka   |
+--------+------------------------------------------+

$ aws iam list-groups-for-user --user-name tanaka --query 'Groups[].GroupName' --output text
developers

$ aws iam list-attached-group-policies --group-name developers --output table
----------------------------------------------------------------
|                   ListAttachedGroupPolicies                  |
+--------------------------------------------------------------+
||                      AttachedPolicies                      ||
|+-----------------------------------------+------------------+|
||                PolicyArn                |   PolicyName     ||
|+-----------------------------------------+------------------+|
||  arn:aws:iam::aws:policy/ReadOnlyAccess |  ReadOnlyAccess  ||
|+-----------------------------------------+------------------+|

arn:aws:iam::aws:policy/ReadOnlyAccess は ARN(AWS のリソースの住所のような名前)です。アカウント ID の部分が aws になっているのは、AWS が用意した管理ポリシーだからです。

同じ名前のユーザーをもう一度作ると、次のエラーになります。

$ aws iam create-user --user-name tanaka

An error occurred (EntityAlreadyExists) when calling the CreateUser operation: User tanaka already exists

ユーザーを消すときは、先にグループから外します。

$ aws iam remove-user-from-group --user-name tanaka --group-name developers
$ aws iam delete-user --user-name tanaka
$ aws iam list-users
{
    "Users": []
}

IAM ユーザーの作成から削除までの詳しい手順は、関連記事「IAMユーザーとグループをAWS CLIで作成|権限付与・一覧・削除」で扱っています。

予算アラートと請求アラームをCLIで作る

「最初の1時間でやること」の予算アラートは、CLI でも作れます。月10ドルの予算に、実際の額が80%を超えたとき・月末の見込みが100%を超えたときの2つの通知を付けます。

{
  "BudgetName": "monthly-10usd",
  "BudgetLimit": {"Amount": "10", "Unit": "USD"},
  "TimeUnit": "MONTHLY",
  "BudgetType": "COST"
}
[
  {
    "Notification": {"NotificationType": "ACTUAL", "ComparisonOperator": "GREATER_THAN", "Threshold": 80, "ThresholdType": "PERCENTAGE"},
    "Subscribers": [{"SubscriptionType": "EMAIL", "Address": "you@example.com"}]
  },
  {
    "Notification": {"NotificationType": "FORECASTED", "ComparisonOperator": "GREATER_THAN", "Threshold": 100, "ThresholdType": "PERCENTAGE"},
    "Subscribers": [{"SubscriptionType": "EMAIL", "Address": "you@example.com"}]
  }
]

1つ目を budget.json、2つ目を notif.json として保存し、作成します。

$ aws budgets create-budget --account-id 123456789012 \
    --budget file://budget.json --notifications-with-subscribers file://notif.json

$ aws budgets describe-budgets --account-id 123456789012 \
    --query 'Budgets[].[BudgetName,BudgetLimit.Amount,BudgetLimit.Unit,TimeUnit]' --output table
-------------------------------------------
|             DescribeBudgets             |
+----------------+-----+------+-----------+
|  monthly-10usd |  10 |  USD |  MONTHLY  |
+----------------+-----+------+-----------+

$ aws budgets describe-notifications-for-budget --account-id 123456789012 \
    --budget-name monthly-10usd --output table
----------------------------------------------------------------------------
|                      DescribeNotificationsForBudget                      |
+--------------------------------------------------------------------------+
||                              Notifications                             ||
|+---------------------+--------------------+------------+----------------+|
|| ComparisonOperator  | NotificationType   | Threshold  | ThresholdType  ||
|+---------------------+--------------------+------------+----------------+|
||  GREATER_THAN       |  ACTUAL            |  80        |  PERCENTAGE    ||
||  GREATER_THAN       |  FORECASTED        |  100       |  PERCENTAGE    ||
|+---------------------+--------------------+------------+----------------+|

CloudWatch の請求アラームを使う方法もあります。CloudWatch のドキュメントによると、先に Billing and Cost Management の「Billing Preferences」→「Alert preferences」で「Receive CloudWatch Billing Alerts」を有効にし、バージニア北部(us-east-1)で作ります。 請求のデータは世界中の料金をまとめてこのリージョンに置かれるためです。有効にしてから使えるようになるまで約15分かかります。

$ aws sns create-topic --name billing-alert --region us-east-1
{
    "TopicArn": "arn:aws:sns:us-east-1:123456789012:billing-alert"
}

$ aws cloudwatch put-metric-alarm --region us-east-1 \
    --alarm-name billing-over-10usd \
    --namespace AWS/Billing --metric-name EstimatedCharges \
    --dimensions Name=Currency,Value=USD \
    --statistic Maximum --period 21600 --evaluation-periods 1 \
    --threshold 10 --comparison-operator GreaterThanThreshold \
    --alarm-actions arn:aws:sns:us-east-1:123456789012:billing-alert

$ aws cloudwatch describe-alarms --region us-east-1 \
    --query 'MetricAlarms[].[AlarmName,Namespace,MetricName,Threshold]' --output table
-------------------------------------------------------------------
|                         DescribeAlarms                          |
+---------------------+--------------+--------------------+-------+
|  billing-over-10usd |  AWS/Billing |  EstimatedCharges  |  10.0 |
+---------------------+--------------+--------------------+-------+

SNS のトピックには、メールアドレスの購読(aws sns subscribe --protocol email)を足し、届いた確認メールのリンクを開くと通知が届くようになります。

初心者がつまずくエラーと直し方

この記事の操作で出たエラーと、始めたばかりの人に多い症状です。

エラー・症状(原文) 原因 直し方
Unable to locate credentials. You can configure credentials by running "aws configure". CLI に認証情報が無い aws configure か aws configure sso で設定する
An error occurred (AccessDenied) ... そのユーザーに権限が無い 付いているポリシーを確かめ、要る権限を足す
BucketNotEmpty ... The bucket you tried to delete is not empty 中身が残っている aws s3 rm s3://名前 --recursive の後に rb
BucketAlreadyOwnedByYou 同じ名前のバケットを自分が持っている 既にあるので作り直さない
BucketAlreadyExists 他のアカウントがその名前を使っている 別の名前にする
NoSuchBucket ... The specified bucket does not exist 名前の誤り、または消えている aws s3 ls で名前を確かめる
EntityAlreadyExists ... User tanaka already exists 同じ名前の IAM ユーザーがある 別の名前にするか、既存のものを使う
作ったはずの EC2 が一覧に出ない 画面・CLI のリージョンが違う 画面右上・--region を確かめる
停止したのに請求が続く EBS・固定 IP・スナップショットが残っている 不要なものを削除する

認証情報が無いときの出力です。終了コードは 255 でした。

$ aws s3 ls
Unable to locate credentials. You can configure credentials by running "aws configure".

このエラーの原因の切り分けは、関連記事「AWS CLI Unable to locate credentialsの直し方」で扱っています。

思わぬ請求を防ぐ確認リスト

AWSを学ぶ順番

AWS は範囲が広いので、次の順に1つずつ手を動かすと、前の知識が次で使えます。

順番 学ぶこと 手を動かす例
1 アカウント・IAM・料金 MFA・ユーザー作成・予算アラート
2 S3 バケットを作り、ファイルを置いて消す
3 EC2 と VPC 仮想サーバーを1台作って SSH で入り、削除する
4 RDS データベースを作って EC2 からつなぐ
5 Lambda と API Gateway 小さな API を作る
6 CloudWatch ログを見て、アラームを作る
7 CloudFormation・CDK 1〜6 をコードで作り直す

画面(マネジメントコンソール)で一度作り、同じことを AWS CLI で行うと、設定の項目と名前が結び付きます。

この記事で扱った責任共有モデル・料金・主要サービスは、AWS Certified Cloud Practitioner の出題範囲と重なります。試験の出題範囲と配点は、関連記事「AWSクラウドプラクティショナーとは|CLF-C02の範囲・配点・対策」で扱っています。

よくある質問

Q. AWS とは何ですか? A. Amazon が提供するクラウドで、サーバー・保存場所・データベースなどをインターネット経由で借り、使った分だけ払うサービスの集まりです。サービスは 200 を超えます。

Q. AWS とは何か、初心者向けに一言でいうと? A. 「ネット上で借りられる、使った分だけ払うデータセンター」です。最初は IAM・S3・EC2 の3つから覚えると全体がつかみやすくなります(「AWSの主なサービス一覧」)。

Q. AWS で何ができますか? A. Web サイトの公開、ファイルの保存、データベース、サーバーを持たない処理、監視、生成 AI、データ分析などです。「AWSでできること」の表にまとめています。

Q. AWS は無料で使えますか? A. 2026年10月18日時点では、無料プランを選ぶと、作成から6か月間か、100 ドル(操作で最大 200 ドル)のクレジットを使い切るまで請求されません。終わるとアカウントは閉じ、90日以内に有料プランへ上げないと削除されます。

Q. AWS の料金はどう決まりますか? A. 使った時間・量・回数で決まる従量課金です。リージョン・データ転送・為替でも変わります。見積もりは AWS Pricing Calculator で行えます。

Q. リージョンと AZ の違いは? A. リージョンは東京・大阪のような地域、AZ はその中にある独立したデータセンターの集まりです。各リージョンに AZ が3つ以上あります。

Q. 責任共有モデルとは? A. AWS が建物・機器・仮想化を、利用者がデータ・権限・OS の設定などを受け持つ分担の考え方です。EC2 と S3 では利用者の担当の範囲が違います。

まとめ

  • AWS は、サーバー・保存場所などをインターネット経由で借り、使った分だけ払うクラウド。サービスは 200 を超える。
  • 2026年10月18日時点で、リージョンは 39、AZ は 124。AZ の名前と場所の対応はアカウントごとに違い、ID は共通。
  • 責任共有モデルでは、データと権限の設定はどのサービスでも利用者の担当。
  • 無料利用枠は、無料プラン(6か月・クレジット内)と有料プランを選ぶ形。無料プランは終わると閉じ、90日で削除される。
  • 最初に、ルートユーザーの MFA・ふだん使うユーザー・予算アラート・リージョンの4つを決める。
  • S3 は中身を消さないとバケットを消せない。IAM はグループに権限を付けてユーザーを入れる。

参考・出典

確認日はいずれも 2026年10月18日です。

  • AWS「クラウドコンピューティングとは」:https://aws.amazon.com/jp/what-is-cloud-computing/
  • AWS「AWS とは」:https://aws.amazon.com/jp/what-is-aws/
  • AWS「AWS グローバルインフラストラクチャ」:https://aws.amazon.com/about-aws/global-infrastructure/
  • AWS「責任共有モデル」:https://aws.amazon.com/compliance/shared-responsibility-model/
  • AWS「AWS 無料利用枠」:https://aws.amazon.com/free/
  • AWS「AWS 無料利用枠 よくある質問」:https://aws.amazon.com/free/free-tier-faqs/
  • AWS Billing「Using the AWS Free Tier」:https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/free-tier.html
  • AWS Billing「Choosing an AWS Free Tier plan」:https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/free-tier-plans.html
  • AWS Billing「Earning AWS Free Tier credits」:https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/free-tier-plans-activities.html
  • AWS「Amazon EC2 の料金」:https://aws.amazon.com/ec2/pricing/
  • AWS「AWS Lambda の料金」:https://aws.amazon.com/lambda/pricing/
  • AWS「Amazon S3 の料金」:https://aws.amazon.com/s3/pricing/
  • IAM「Root user best practices」:https://docs.aws.amazon.com/IAM/latest/UserGuide/root-user-best-practices.html
  • IAM「Security best practices in IAM」:https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html
  • AWS Cost Management「Using a budget template」:https://docs.aws.amazon.com/cost-management/latest/userguide/budget-templates.html
  • Amazon CloudWatch「Create a billing alarm」:https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html
  • AWS RAM「Availability Zone IDs」:https://docs.aws.amazon.com/ram/latest/userguide/working-with-az-ids.html
  • Amazon S3「General purpose bucket naming rules」:https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html
  • Amazon S3「Blocking public access to your Amazon S3 storage」:https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html
  • AWS CLI「Installing or updating to the latest version of the AWS CLI」:https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
  • moto(AWS のモックライブラリ):https://github.com/getmoto/moto

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「AWSとは|初心者向けに主要サービス・料金・始め方を解説」

株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。

WE ARE HIRING

RJCで一緒に開発しながら、
成長を楽しみませんか?

RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!

  • 127日年間休日
  • 12時間平均残業時間
  • 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!

ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。

ABOUT RJC RJCがどんな会社か知る 考え方、研修、働き方、福利厚生、社員の前職まで。RJCのことが丸わかり! RJC丸わかりページへ JOB DESCRIPTION 仕事内容・待遇を見てみる 仕事内容、給与・待遇、選考の流れ。経験者も未経験も!応募前に知りたいこと、まとめました! 募集要項を見る ENTRY エントリーする エントリーは1〜2分・履歴書不要です。まずは話を聞いてみたい、という方でも歓迎です! エントリーフォームへ

RJCで一緒に開発しながら、 成長を楽しみませんか?