クラウドリソースの管理
IaC の原則と GitHub Actions を使用して、クラウドリソース(AWS、Azure、GCP など)のデプロイと更新を自動化します。
「クラウドリソースの管理」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
クラウドリソース自動化入門
ようこそ!このレッスンでは、Infrastructure as Code(IaC)の原則とGitHub Actionsを使用して、クラウドリソースのデプロイと更新を自動化する方法を学びます。
クラウドリソースを手動で管理すると、時間がかかり、エラーも発生しやすくなります。自動化によって一貫性と速度を確保できます。
クラウドIaCにGitHub Actionsを使う理由
GitHub Actionsは、クラウドインフラストラクチャのタスクを自動化する強力なプラットフォームです。最適な選択肢となる理由を見てみましょう。
- バージョン管理:インフラストラクチャのコードをアプリケーションのコードと一緒に管理できます。
- 自動化:コードの変更をきっかけにデプロイを自動的に実行できます。
- 可視性:デプロイの状態をGitHub上で直接確認できます。
- 統合:主要なクラウドプロバイダーと簡単に接続できます。
クラウドプロバイダーへの接続
クラウドリソースを管理するには、GitHub Actionsからクラウドプロバイダー(AWS、Azure、GCPなど)を操作する権限が必要です。通常は、次のいずれかを使用します。
- アクセスキー/サービスプリンシパル:プログラムからアクセスするための認証情報です。
- OpenID Connect(OIDC):キーを使わない、より安全な認証方法です。
このレッスンでは、認証情報を安全に使用する方法に重点を置きます。
クラウド認証情報の安全な保存
機密性の高い認証情報をワークフローファイルに直接ハードコードしてはいけません。GitHub Actionsには、この目的のためにSecretsが用意されています。
Secretsは暗号化された環境変数で、ワークフローからアクセスできます。ログには公開されません。
- リポジトリの
Settingsに移動します。 Secrets and variables>Actionsの順に移動します。New repository secretをクリックして、クラウドへのアクセスキーを追加します。
IaCデプロイワークフローの基本構成
一般的なIaC用のGitHub Actionsワークフローには、次のステップが含まれます。
- コードのチェックアウト:IaCファイルを取得します。
- 認証情報の設定:クラウドプロバイダー用の環境変数を設定します。
- IaCツールのインストール:(例:AWS CLI、Azure CLI、Terraform、Pulumi)。
- IaCコマンドの実行:リソースのプランニング、適用、または破棄を行います。
汎用的な例を見てみましょう。
汎用的なクラウド適用ワークフロー
このワークフローは、IaCの変更を適用するための構成を示しています。使用するクラウドやIaCツールに合わせて変更するテンプレートです。
保存したシークレットにアクセスするために、secrets.AWS_ACCESS_KEY_IDが使われていることに注目してください。
name: Deploy Cloud Resources
on: push
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Run IaC Apply Command
run: |
# Replace with your actual IaC tool command (e.g., terraform apply, aws cloudformation deploy)
echo "Running cloud resource deployment..."
# aws s3 mb s3://my-unique-coddykit-bucket-123
例:AWS S3バケットのデプロイ
これは、AWS CLIを使用してS3バケットを作成する簡単な例です。クラウド固有のコマンドをワークフローに組み込む方法を示しています。
試す場合は、my-unique-coddykit-bucket-123をグローバルで一意なバケット名に置き換えてください。
name: Deploy S3 Bucket
on: push
jobs:
create-s3:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Create S3 Bucket
run: |
aws s3 mb s3://my-unique-coddykit-bucket-123
echo "S3 bucket created successfully!"
例:Azureリソースグループのデプロイ
同様に、AzureではAzure CLIを使用します。このワークフローではAzureにログインし、リソースグループを作成します。
AZURE_CLIENT_ID、AZURE_TENANT_ID、AZURE_SUBSCRIPTION_IDをGitHub Secretsとして設定する必要があります。多くの場合、Service Principalと組み合わせて使用します。
name: Deploy Azure Resource Group
on: push
jobs:
create-rg:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Azure Login
uses: azure/login@v1
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: Create Azure Resource Group
run: |
az group create --name coddykit-rg --location eastus
echo "Azure Resource Group created!"
更新とロールバックの管理
リソースをデプロイしたら、更新を管理する必要があります。IaC と GitHub Actions を使う場合、次のようになります。
- IaC ファイルの更新: 構成を変更します(例: 新しい EC2 インスタンスを追加する)。
- 変更のプッシュ: リポジトリにコミットしてプッシュします。
- 自動デプロイ: ワークフローが起動し、更新を適用します。
ロールバックする場合は、通常、IaC ファイルを以前のバージョンに戻して、デプロイを再実行します。
安全なクラウド管理の確認
GitHub Actions でクラウドリソースの管理を自動化する場合、機密性の高いクラウド認証情報を扱う方法として最も安全なのはどれでしょうか。
復習: クラウドリソースの管理
IaC の原則を使用して、GitHub Actions でクラウドリソースのデプロイと更新を自動化する方法を学びました。
- GitHub Actions は、IaC の自動化に適した堅牢なプラットフォームを提供します。
- GitHub Secrets は、クラウド認証情報を安全に管理するために重要です。
- ワークフローにクラウド固有の CLI(AWS CLI、Azure CLI)を組み込み、プロバイダーとやり取りできます。
- IaC ファイルを変更し、ワークフローで再適用することで更新を管理できます。
練習を続けて、自動化されたクラウドパイプラインを構築しましょう。
よくある質問
「クラウドリソースの管理」レッスンは無料ですか?
はい。「クラウドリソースの管理」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「クラウドリソースの管理」で何を学びますか?
IaC の原則と GitHub Actions を使用して、クラウドリソース(AWS、Azure、GCP など)のデプロイと更新を自動化します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「クラウドリソースの管理」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。