AWS に初めて触れるとき、いきなりすべてのサービスを試すのは大変です。まずは「インフラの土台」「データの保管」「実行環境」「データベース」「監視」の5つの役割に分けて、代表的なサービスを押さえておけば、次のステップへスムーズに進めます。
1. IAM – 誰が何をできるかを管理する「認証・認可」の基盤
AWS のすべての操作は IAM ユーザー/ロールに紐付いています。最小権限のポリシーを作成し、GitHub Actions から安全にデプロイできるようにすると、CI/CD が本格化したときに便利です。
2. S3 – 静的ファイルやバックアップを置く「オブジェクトストレージ」
Web アセット(画像や CSS)やビルド成果物を保存するだけでなく、CloudFront と組み合わせて静的サイトをホスティングできます。バケットポリシーで公開/非公開を簡単に切り替えられます。
3. EC2(または Lightsail) – サーバーを立ち上げる「コンピューティング」
最も汎用的な仮想サーバーです。初心者は無料利用枠の t2.micro から始め、SSH 鍵でアクセスし、Node.js や Docker をインストールしてみましょう。Lightsail なら GUI で構成でき、学習コストが下がります。
4. RDS – 管理されたデータベース「DB」サービス
MySQL、PostgreSQL、Aurora などから選べ、バックアップやスケーリングを自動で行ってくれます。アプリケーションのデータ永続化を試す際に最適です。
5. CloudWatch – ログとメトリクスで「監視」
インスタンスの CPU 使用率やエラーログをリアルタイムで取得し、アラートを設定できます。CI のビルド結果を CloudWatch Logs に流すと、失敗時の原因解析が楽になります。
ちょっとした実装例:GitHub Actions から S3 へデプロイ
name: Deploy to S3
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@v3
- uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: arn:aws:iam::123456789012:role/GitHubActionsDeploy
aws-region: ap-northeast-1
- run: aws s3 sync ./dist s3://my-bucket-name --delete
このワークフローは IAM ロールを一時的に取得し、ビルド成果物を S3 バケットへ同期します。IAM の最小権限設定と組み合わせるだけで、安全に自動デプロイが実現できます。
まとめ
- IAM → 認証・認可の土台
- S3 → 静的ファイル・バックアップ
- EC2/Lightsail → 実行環境
- RDS → データ永続化
- CloudWatch → 監視・ログ
この 5 つを把握すれば、GitHub Actions と組み合わせた CI/CD パイプラインの構築や、簡易的な Web アプリの運用が可能になります。まずは各サービスのコンソールで「無料枠」や「チュートリアル」を試し、実際に手を動かしてみましょう。