プロジェクト

全般

プロフィール

EC2起動と停止のタイマー設定手順 » 履歴 » バージョン 9

田中 克典, 2026/08/04 06:49

1 1 田中 克典
h1. EC2起動と停止のタイマー設定手順
2 1 田中 克典
3 1 田中 克典
EC2の起動と停止をタイマーで自動化する手順
4 5 田中 克典
すべてAWSコンソールで作業する
5 1 田中 克典
6 1 田中 克典
1.許可ポリシーの作成
7 5 田中 克典
 IAM→ポリシー→ポリシーの作成
8 2 田中 克典
 ポリシーエディタをJSONモードに変更し、下記の内容を貼り付け
9 1 田中 克典
<pre>
10 2 田中 克典
{
11 2 田中 克典
  "Version": "2012-10-17",
12 2 田中 克典
  "Statement": [
13 2 田中 克典
    {
14 2 田中 克典
      "Effect": "Allow",
15 2 田中 克典
      "Action": [
16 2 田中 克典
        "ec2:StartInstances",
17 2 田中 克典
        "ec2:StopInstances"
18 2 田中 克典
      ],
19 2 田中 克典
      "Resource": "arn:aws:ec2:*:*:instance/*"
20 2 田中 克典
    }
21 2 田中 克典
  ]
22 2 田中 克典
}
23 4 田中 克典
</pre>
24 3 田中 克典
 任意のポリシー名を入力し保存
25 3 田中 克典
26 3 田中 克典
27 3 田中 克典
2.ロールの作成
28 3 田中 克典
 IAM→ロールー→ロールを作成
29 3 田中 克典
 以下を入力し、次へ
30 6 田中 克典
  信頼されたエンティティタイプ:AWSのサービス
31 6 田中 克典
  ユースケース:EC2
32 1 田中 克典
 許可ポリシーに1で作成したポリシーを選択して、次へ
33 6 田中 克典
 任意のロール名を入力
34 3 田中 克典
 信頼ポリシーを下記に変更
35 1 田中 克典
<pre>
36 3 田中 克典
{
37 3 田中 克典
  "Version": "2012-10-17",
38 3 田中 克典
  "Statement": [
39 3 田中 克典
    {
40 3 田中 克典
      "Effect": "Allow",
41 3 田中 克典
      "Principal": {
42 3 田中 克典
        "Service": "scheduler.amazonaws.com"
43 3 田中 克典
      },
44 3 田中 克典
      "Action": "sts:AssumeRole"
45 3 田中 克典
    }
46 3 田中 克典
  ]
47 1 田中 克典
}
48 4 田中 克典
</pre>
49 1 田中 克典
 ロールを作成を押下
50 1 田中 克典
51 9 田中 克典
3.起動スケジュールの作成
52 7 田中 克典
 Amazon EventBridge→スケジュール
53 7 田中 克典
 スケジュールを作成
54 7 田中 克典
 EC2起動で使用する任意のスケジュール名を入力
55 7 田中 克典
 スケジュールのパターンに以下を入力して、次へ
56 7 田中 克典
  頻度:定期的なスケジュール
57 7 田中 克典
  タイムゾーン:(UTC+09:00) Asia/Tokyo
58 7 田中 克典
  スケジュールの種類:cronベースのスケジュール
59 7 田中 克典
  cron式:cron式のフォーマットに従い任意の値
60 7 田中 克典
  フレックスタイムウィンドウ:任意の値
61 8 田中 克典
 ターゲットの詳細に以下を入力して、JSON画面を開く
62 8 田中 克典
  ターゲットAPI:すべてのAPI
63 8 田中 克典
  すべてのAWSのサービス:Amazon EC2 StartInstances
64 8 田中 克典
 JSON画面で以下を入力して、次へ
65 1 田中 克典
<pre>
66 8 田中 克典
{
67 8 田中 克典
  "InstanceIds": [
68 8 田中 克典
    "MyData" ←ここにタイマー設定するインスタンスIDを入力
69 8 田中 克典
  ]
70 8 田中 克典
}
71 1 田中 克典
</pre>
72 8 田中 克典
 設定画面で以下を入力して、次へ
73 8 田中 克典
  スケジュールの状態:有効化
74 8 田中 克典
  スケジュール完了後のアクション:NONE
75 8 田中 克典
  アクセス許可
76 8 田中 克典
   実行ロール:既存のロールを使用
77 8 田中 克典
   既存の役割を選択:2で作成したロール
78 1 田中 克典
 設定内容を確認し、スケジュールを作成
79 9 田中 克典
80 9 田中 克典
4.停止スケジュールの作成
81 9 田中 克典
 
82 8 田中 克典
83 1 田中 克典
更新
84 1 田中 克典
<pre>
85 1 田中 克典
sudo apt clean
86 1 田中 克典
sudo apt update
87 1 田中 克典
</pre>
88 1 田中 克典
インストールする
89 1 田中 克典
<pre>
90 1 田中 克典
sudo apt install -y snapd
91 1 田中 克典
sudo snap install core
92 1 田中 克典
sudo snap refresh core
93 1 田中 克典
sudo snap install --classic certbot
94 1 田中 克典
sudo ln -s /snap/bin/certbot /usr/bin/certbot
95 1 田中 克典
</pre>
96 1 田中 克典
------
97 1 田中 克典
バージョンの確認
98 1 田中 克典
<pre>
99 1 田中 克典
certbot --version
100 1 田中 克典
</pre>
101 1 田中 克典
2.JPRS 用ディレクトリ作成(分離運用)
102 1 田中 克典
<pre>
103 1 田中 克典
sudo mkdir -p /etc/letsencrypt-jprs
104 1 田中 克典
sudo mkdir -p /var/lib/letsencrypt-jprs
105 1 田中 克典
sudo mkdir -p /var/log/letsencrypt-jprs
106 1 田中 克典
</pre>
107 1 田中 克典
3.JPRS ACME アカウント登録(EAB)
108 1 田中 克典
<pre>
109 1 田中 克典
sudo certbot register \
110 1 田中 克典
  --config-dir /etc/letsencrypt-jprs \
111 1 田中 克典
  --work-dir /var/lib/letsencrypt-jprs \
112 1 田中 克典
  --logs-dir /var/log/letsencrypt-jprs \
113 1 田中 克典
  -m 'admin@example.jp' \
114 1 田中 克典
  --agree-tos \
115 1 田中 克典
  --eab-kid '<JPRS_EAB_KID>' \
116 1 田中 克典
  --eab-hmac-key '<JPRS_EAB_HMAC_KEY>' \
117 1 田中 克典
  --server 'https://acme.amecert.jprs.jp/DV/getDirectory'
118 1 田中 克典
</pre>
119 1 田中 克典
4ー1.証明書の発行(Webroot 方式・通常ドメイン用)
120 1 田中 克典
<pre>
121 1 田中 克典
sudo certbot certonly \
122 1 田中 克典
  --config-dir /etc/letsencrypt-jprs \
123 1 田中 克典
  --work-dir /var/lib/letsencrypt-jprs \
124 1 田中 克典
  --logs-dir /var/log/letsencrypt-jprs \
125 1 田中 克典
  --webroot -w /var/www/html \
126 1 田中 克典
  --key-type rsa \
127 1 田中 克典
  -d example.jp -d www.example.jp \
128 1 田中 克典
  --server 'https://acme.amecert.jprs.jp/DV/getDirectory'
129 1 田中 克典
</pre>
130 1 田中 克典
4-2.証明書の発行(DNS-01 方式・ワイルドカード対応)
131 1 田中 克典
DNSテキストレコードを発行
132 1 田中 克典
<pre>
133 1 田中 克典
sudo certbot certonly \
134 1 田中 克典
  --config-dir /etc/letsencrypt-jprs \
135 1 田中 克典
  --work-dir /var/lib/letsencrypt-jprs \
136 1 田中 克典
  --logs-dir /var/log/letsencrypt-jprs \
137 1 田中 克典
  --manual \
138 1 田中 克典
  --preferred-challenges dns \
139 1 田中 克典
  --key-type rsa \
140 1 田中 克典
  -d '*.example.jp' -d example.jp \
141 1 田中 克典
  --server 'https://acme.amecert.jprs.jp/DV/getDirectory'
142 1 田中 克典
</pre>
143 1 田中 克典
発行されたTXTレコードをDNSに登録
144 1 田中 克典
DNSが設定されたら、
145 1 田中 克典
<pre>
146 1 田中 克典
dig TXT _acme-challenge.example.jp +short
147 1 田中 克典
</pre>
148 1 田中 克典
5.下記のようなファイルが生成される
149 1 田中 克典
<pre>
150 1 田中 克典
/etc/letsencrypt-jprs/live/example.jp/fullchain.pem
151 1 田中 克典
/etc/letsencrypt-jprs/live/example.jp/privkey.pem
152 1 田中 克典
</pre>
153 1 田中 克典
6.APACHEのConfigを設定する
154 1 田中 克典
<pre>
155 1 田中 克典
<VirtualHost *:443>
156 1 田中 克典
  ServerName example.jp
157 1 田中 克典
  ServerAlias www.example.jp
158 1 田中 克典
159 1 田中 克典
  DocumentRoot /var/www/html
160 1 田中 克典
161 1 田中 克典
  SSLEngine on
162 1 田中 克典
  SSLCertificateFile /etc/letsencrypt-jprs/live/example.jp/fullchain.pem
163 1 田中 克典
  SSLCertificateKeyFile /etc/letsencrypt-jprs/live/example.jp/privkey.pem
164 1 田中 克典
</VirtualHost>
165 1 田中 克典
</pre>
166 1 田中 克典
7.定期的な更新方法
167 1 田中 克典
<pre>
168 1 田中 克典
sudo certbot renew \
169 1 田中 克典
  --config-dir /etc/letsencrypt-jprs \
170 1 田中 克典
  --work-dir /var/lib/letsencrypt-jprs \
171 1 田中 克典
  --logs-dir /var/log/letsencrypt-jprs \
172 1 田中 克典
  --dry-run
173 1 田中 克典
</pre>
174 1 田中 克典
このコマンドを入れた後にHTTPDを再起動する
175 1 田中 克典
<pre>
176 1 田中 克典
service httpd restart
177 1 田中 克典
</pre>
178 1 田中 克典
これをシェルスクリプトにして、月に1回事項する
179 1 田中 克典
<pre>
180 1 田中 克典
10 1 1 * * root /home/bitnami/batchfiles/certbot-jprs.sh
181 1 田中 克典
</pre>
182 1 田中 克典
183 1 田中 克典
</pre>