EC2起動と停止のタイマー設定手順 » 履歴 » バージョン 8
« 前 -
バージョン 8/10
(差分) -
次 » -
最新版
田中 克典, 2026/08/04 06:47
EC2起動と停止のタイマー設定手順¶
EC2の起動と停止をタイマーで自動化する手順
すべてAWSコンソールで作業する
1.許可ポリシーの作成
IAM→ポリシー→ポリシーの作成
ポリシーエディタをJSONモードに変更し、下記の内容を貼り付け
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:StartInstances",
"ec2:StopInstances"
],
"Resource": "arn:aws:ec2:*:*:instance/*"
}
]
}
任意のポリシー名を入力し保存
2.ロールの作成
IAM→ロールー→ロールを作成
以下を入力し、次へ
信頼されたエンティティタイプ:AWSのサービス
ユースケース:EC2
許可ポリシーに1で作成したポリシーを選択して、次へ
任意のロール名を入力
信頼ポリシーを下記に変更
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "scheduler.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
ロールを作成を押下
3.スケジュールの作成
Amazon EventBridge→スケジュール
スケジュールを作成
EC2起動で使用する任意のスケジュール名を入力
スケジュールのパターンに以下を入力して、次へ
頻度:定期的なスケジュール
タイムゾーン:(UTC+09:00) Asia/Tokyo
スケジュールの種類:cronベースのスケジュール
cron式:cron式のフォーマットに従い任意の値
フレックスタイムウィンドウ:任意の値
ターゲットの詳細に以下を入力して、JSON画面を開く
ターゲットAPI:すべてのAPI
すべてのAWSのサービス:Amazon EC2 StartInstances
JSON画面で以下を入力して、次へ
{
"InstanceIds": [
"MyData" ←ここにタイマー設定するインスタンスIDを入力
]
}
設定画面で以下を入力して、次へ
スケジュールの状態:有効化
スケジュール完了後のアクション:NONE
アクセス許可
実行ロール:既存のロールを使用
既存の役割を選択:2で作成したロール
設定内容を確認し、スケジュールを作成
更新
sudo apt clean sudo apt update
インストールする
sudo apt install -y snapd sudo snap install core sudo snap refresh core sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot
------
バージョンの確認
certbot --version
2.JPRS 用ディレクトリ作成(分離運用)
sudo mkdir -p /etc/letsencrypt-jprs sudo mkdir -p /var/lib/letsencrypt-jprs sudo mkdir -p /var/log/letsencrypt-jprs
3.JPRS ACME アカウント登録(EAB)
sudo certbot register \ --config-dir /etc/letsencrypt-jprs \ --work-dir /var/lib/letsencrypt-jprs \ --logs-dir /var/log/letsencrypt-jprs \ -m 'admin@example.jp' \ --agree-tos \ --eab-kid '<JPRS_EAB_KID>' \ --eab-hmac-key '<JPRS_EAB_HMAC_KEY>' \ --server 'https://acme.amecert.jprs.jp/DV/getDirectory'
4ー1.証明書の発行(Webroot 方式・通常ドメイン用)
sudo certbot certonly \ --config-dir /etc/letsencrypt-jprs \ --work-dir /var/lib/letsencrypt-jprs \ --logs-dir /var/log/letsencrypt-jprs \ --webroot -w /var/www/html \ --key-type rsa \ -d example.jp -d www.example.jp \ --server 'https://acme.amecert.jprs.jp/DV/getDirectory'
4-2.証明書の発行(DNS-01 方式・ワイルドカード対応)
DNSテキストレコードを発行
sudo certbot certonly \ --config-dir /etc/letsencrypt-jprs \ --work-dir /var/lib/letsencrypt-jprs \ --logs-dir /var/log/letsencrypt-jprs \ --manual \ --preferred-challenges dns \ --key-type rsa \ -d '*.example.jp' -d example.jp \ --server 'https://acme.amecert.jprs.jp/DV/getDirectory'
発行されたTXTレコードをDNSに登録
DNSが設定されたら、
dig TXT _acme-challenge.example.jp +short
5.下記のようなファイルが生成される
/etc/letsencrypt-jprs/live/example.jp/fullchain.pem /etc/letsencrypt-jprs/live/example.jp/privkey.pem
6.APACHEのConfigを設定する
<VirtualHost *:443> ServerName example.jp ServerAlias www.example.jp DocumentRoot /var/www/html SSLEngine on SSLCertificateFile /etc/letsencrypt-jprs/live/example.jp/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt-jprs/live/example.jp/privkey.pem </VirtualHost>
7.定期的な更新方法
sudo certbot renew \ --config-dir /etc/letsencrypt-jprs \ --work-dir /var/lib/letsencrypt-jprs \ --logs-dir /var/log/letsencrypt-jprs \ --dry-run
このコマンドを入れた後にHTTPDを再起動する
service httpd restart
これをシェルスクリプトにして、月に1回事項する
10 1 1 * * root /home/bitnami/batchfiles/certbot-jprs.sh