## 使用するOSバージョンとAMIの選定
[AWS が Amazon EC2 での Microsoft Windows Server 2025 イメージの提供開始を発表](https://aws.amazon.com/jp/about-aws/whats-new/2024/11/microsoft-windows-server-2025-images-amazon-ec2/)
### 日本語版の事前構成済みWindows ServerのAMIを検索
```
$ aws ec2 describe-images \
--owners amazon \
--filters "Name=name,Values=*Windows_Server-2025-Japanese-Full-Base*" \
--region ap-northeast-1 \
--query "Images[*].{ID:ImageId,Name:Name}" \
--output table
--------------------------------------------------------------------------------
| DescribeImages |
+------------------------+-----------------------------------------------------+
| ID | Name |
+------------------------+-----------------------------------------------------+
| ami-041265d23fd7eaf09 | Windows_Server-2025-Japanese-Full-Base-2025.04.09 |
| ami-04e928802ea4517df | Windows_Server-2025-Japanese-Full-Base-2025.07.09 |
| ami-096a6fcfb661eadd3 | Windows_Server-2025-Japanese-Full-Base-2025.06.11 |
| ami-09f374e94cc2615d3 | Windows_Server-2025-Japanese-Full-Base-2025.05.15 |
+------------------------+-----------------------------------------------------+
```
「ami-04e928802ea4517df」を使用する。
## OS設定
### インストール言語の確認
```
PS C:\Users\Administrator> Get-WinUserLanguageList
LanguageTag : ja
Autonym : 日本語
EnglishName : Japanese
LocalizedName : 日本語
ScriptName : 日本語
InputMethodTips : {0411:{03B5835F-F03C-411B-9CE2-AA23E1171E36}{A76C93D9-5523-4E90-AAFA-4DB112F9AC76}}
Spellchecking : True
Handwriting : True
```
### 優先言語の確認
```
PS C:\Users\Administrator> Get-SystemPreferredUILanguage
ja
```
### ロケール設定の確認
```
PS C:\Users\Administrator> Get-WinSystemLocale
LCID Name DisplayName
---- ---- -----------
1041 ja-JP 日本語 (日本)
```
### タイムゾーンの確認
```
PS C:\Users\Administrator> Get-TimeZone
Id : UTC
DisplayName : (UTC) 協定世界時
StandardName : 協定世界時
DaylightName : 協定世界時
BaseUtcOffset : 00:00:00
SupportsDaylightSavingTime : False
PS C:\Users\Administrator>
PS C:\Users\Administrator> Set-TimeZone -Id "Tokyo Standard Time"
PS C:\Users\Administrator>
PS C:\Users\Administrator> Get-TimeZone
Id : Tokyo Standard Time
DisplayName : (UTC+09:00) 大阪、札幌、東京
StandardName : 東京 (標準時)
DaylightName : 東京 (夏時間)
BaseUtcOffset : 09:00:00
SupportsDaylightSavingTime : False
```
### ホームロケーションの確認
```
PS C:\Users\Administrator> Get-WinHomeLocation
GeoId HomeLocation
----- ------------
122 日本
```
### Windows Updateの実施(CLIモジュールは別途インストール済)
```
PS C:\Users\Administrator\Documents> Install-WindowsUpdate -MicrosoftUpdate
PS C:\Users\Administrator\Documents>
```
## インスタンスプロファイルの確認
```
aws sts get-caller-identity
```
## AWS CLIの導入
### インストール
[AWS CLI の最新バージョンのインストールまたは更新](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html)
## CloudWatchAgentの導入
### MSI パッケージのダウンロード
```
Invoke-WebRequest -Uri "https://amazoncloudwatch-agent.s3.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi" -OutFile "amazon-cloudwatch-agent.msi"
```
### インストールの実行
```
msiexec /i amazon-cloudwatch-agent.msi
```
インストール先「C:\Program Files\Amazon\AmazonCloudWatchAgent」
### 設定ウィザードの起動(初期構成ファイル作成)
```
cd "C:\Program Files\Amazon\AmazonCloudWatchAgent"
.\amazon-cloudwatch-agent-config-wizard.exe
```
### IAM ロールの確認(EC2 にアタッチ)
- CloudWatchAgentServerPolicy
- AmazonSSMManagedInstanceCore(SSM 経由で管理する場合)
### Agent 起動と設定反映
```
& "$Env:ProgramFiles\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" `
-a fetch-config -m ec2 -s `
-c file:"$Env:ProgramFiles\Amazon\AmazonCloudWatchAgent\config.json"
```
```
****** processing amazon-cloudwatch-agent ******
I! Trying to detect region from ec2
D! [EC2] Found active network interface
I! imds retry client will retry 1 timesSuccessfully fetched the config and saved in C:\ProgramData\Amazon\AmazonCloudWatchAgent\Configs\file_config.json.tmp
Start configuration validation...
2025/07/17 11:37:58 Reading json config file path: C:\ProgramData\Amazon\AmazonCloudWatchAgent\Configs\file_config.json.tmp ...
2025/07/17 11:37:58 I! Valid Json input schema.
I! Trying to detect region from ec2
D! [EC2] Found active network interface
I! imds retry client will retry 1 times2025/07/17 11:37:58 D! ec2tagger processor required because append_dimensions is set
2025/07/17 11:37:58 D! ec2tagger processor required because append_dimensions is set
2025/07/17 11:37:58 Configuration validation first phase succeeded
Configuration validation second phase succeeded
Configuration validation succeeded
AmazonCloudWatchAgent has been stopped
AmazonCloudWatchAgent has been started
```
### 動作確認(ステータス表示)
```
& "$Env:ProgramFiles\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a status -m ec2
```
```(実行結果)
{
"status": "running",
"starttime": "2025-07-17T11:37:59",
"configstatus": "configured",
"version": "1.300057.0b1161"
}
```
## RDS for MySQL 接続用クライアントの導入
### ダウンロード
以下からMySQL Community Server 8.4.5 LTSをダウンロードしてClientプログラムのみインストール
https://dev.mysql.com/downloads/mysql/8.4.html
Pathにbinフォルダを追加
### 確認
```
C:\Users\Administrator>mysql --version
mysql Ver 8.4.5 for Win64 on x86_64 (MySQL Community Server - GPL)
C:\Users\Administrator>
```
### RDSへの接続確認
```
C:\Users\Administrator>mysql -h <エンドポイント名> -u admin -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.4.5 Source distribution
Copyright (c) 2000, 2025, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
```
### データベース設定
```
mysql> CREATE DATABASE hogedb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
Query OK, 1 row affected (0.00 sec)
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| hogedb |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql> CREATE USER 'hogeuser'@'%' IDENTIFIED BY 'xxxxxxxx';
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT ALL PRIVILEGES ON hogedb.* TO 'hogeuser'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW GRANTS FOR 'hogeuser'@'%';
+--------------------------------------------------------+
| Grants for hogeuser@% |
+--------------------------------------------------------+
| GRANT USAGE ON *.* TO `hogedb`@`%` |
| GRANT ALL PRIVILEGES ON `hogedb`.* TO `hogeuser`@`%` |
+--------------------------------------------------------+
2 rows in set (0.00 sec)
mysql>
```
## JDK 1.8.0_231
### ダウンロードとインストール
以下のアーカイブから「jdk-8u231-windows-x64.exe」をダウンロード
https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html
### 環境変数設定(システム)
JAVA_HOME = C:\Java\jdk1.8.0_231
Path に %JAVA_HOME%\bin を追加
### 動作確認
```
C:\Users\Administrator>java -version
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
C:\Users\Administrator>
```
## Apache 2.4
### ダウンロードとインストール
以下から「Apache 2.4.64-250710 Win64」をダウンロード
https://www.apachelounge.com/download/
C:Apache24へ展開
### httpd.confを修正
SSLとTomcat連携以外の設定項目は、現行に合わせて指定する。
### 自己署名SSL証明の作成
```
# 自己署名SSL証明の作成
cd C:Apache24\bin
openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 -keyout server.key -out server.crt
# 以下へ保存
C:\Apache24\conf\ssl\server.key
C:\Apache24\conf\ssl\server.crt
```
### 証明書の検証
```
c:\Apache24\bin>openssl.exe x509 -in ..\conf\ssl\server.crt -text -noout
Certificate:
```
### HTTPS対応 VirtualHost の設定(httpd-ssl.conf)
```
Listen 443
<VirtualHost *:443>
DocumentRoot "${SRVROOT}/htdocs"
# Elastic IPを指定
ServerName xx.xx.xx.xx
ErrorLog "${SRVROOT}/logs/ssl_error.log"
CustomLog "${SRVROOT}/logs/ssl_access.log" combined
SSLEngine on
SSLCertificateFile "${SRVROOT}/conf/ssl/server.crt"
SSLCertificateKeyFile "${SRVROOT}/conf/ssl/server.key"
<Directory "${SRVROOT}/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Location /testweb/>
ProxyPass ajp://localhost:8009/testweb/
</Location>
</VirtualHost>
```
Include httpd-ssl.conf を httpd.conf に追加して有効化。
### 設定ファイルの構文チェック
```
c:\Apache24\bin>httpd -t
Syntax OK
```
### Apacheのサービス登録
管理者権限でコマンドプロンプトを起動
```
C:\Users\Administrator>cd C:\Apache24\bin
C:\Apache24\bin>httpd -t
Syntax OK
# サービス登録
C:\Apache24\bin>httpd.exe -k install -n "Apache24"
Installing the 'Apache24' service
The 'Apache24' service is successfully installed.
Testing httpd.conf....
Errors reported here must be corrected before the service can be started.
# 遅延開始に変更(Tomcatの後に起動したいため)
C:\Apache24\bin>sc config Apache24 start= delayed-auto
[SC] ChangeServiceConfig SUCCESS
# 起動・停止コマンド
net start Apache24
net stop Apache24
```
## Tomcat 6.0
### ダウンロードとインストール
以下から「apache-tomcat-6.0.53-windows-x64.zip」をダウンロード
https://archive.apache.org/dist/tomcat/tomcat-6/v6.0.53/bin/
C:Tomcat6.0へ展開
### conf/server.xmlを修正
- HTTP用のConnectorを現行に合わせて修正(使われてないと思う・・;)
```
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="180000"
maxParameterCount="30000"
maxPostSize="4194304"
redirectPort="8443" />
```
- AJP用のConnectorを現行に合わせて修正
```
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"
connectionTimeout="180000"
maxParameterCount="60000"
maxPostSize="209715200" />
```
### conf/Catalina/localhost/testweb.xmlを修正(アプリ側かな・・;)
```
<Context path="/testweb" reloadable="false" docBase="C:\testweb\WebContent" >
<Resource name="jdbc/testdb"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://<エンドポイント名>:3306/hogedb?useSSL=false&serverTimezone=Asia/Tokyo"
username="hogeuser"
password=""
maxActive="100"
maxIdle="10"
removeAbandoned="true"
removeAbandonedTimeout="180"
logAbandoned="true" />
</Context>
```
### 手起動
```
C:\tomcat6\bin\startup.bat
```
### Tomcatのサービス登録
管理者権限でコマンドプロンプトを起動
```
c:\>cd c:\Tomcat6.0\apache-tomcat-6.0.53\bin
c:\Tomcat6.0\apache-tomcat-6.0.53\bin>
c:\Tomcat6.0\apache-tomcat-6.0.53\bin>service.bat install
Installing the service 'Tomcat6' ...
Using CATALINA_HOME: "c:\Tomcat6.0\apache-tomcat-6.0.53"
Using CATALINA_BASE: "c:\Tomcat6.0\apache-tomcat-6.0.53"
Using JAVA_HOME: "C:\Program Files\Java\jdk1.8.0_231"
Using JRE_HOME: "C:\Program Files\Java\jdk1.8.0_231\jre"
Using JVM: "C:\Program Files\Java\jdk1.8.0_231\jre\bin\server\jvm.dll"
The service 'Tomcat6' has been installed.
c:\Tomcat6.0\apache-tomcat-6.0.53\bin>
c:\Tomcat6.0\apache-tomcat-6.0.53\bin>sc config Tomcat6 start= auto
[SC] ChangeServiceConfig SUCCESS
c:\Tomcat6.0\apache-tomcat-6.0.53\bin>
```
## Apache と Tomcat の連携
### Apache ↔ Tomcat(mod_proxy_ajp)リクエスト連携の流れ
```
sequenceDiagram
Client->>Apache: https://xx.xx.xx.xx/testweb/
Apache->>Apache: Location /testweb/ に一致
Apache->>Tomcat: AJPでリクエスト転送 (8009ポート)
Tomcat->>Apache: AJPレスポンス返却
Apache->>Client: レスポンス送信(HTML等)
```
### 連携方式(Apache側の設定方法として2通り)
- mod_jk方式
mod_jk.soモジュールを使い、JkMountディレクティブやworkers.propertiesで指定する方式
- ✔リバースプロキシ方式
mod_proxt_ajp.soモジュールを使い、ProxyPass/Locationで指定する方式
指定内容
```
# モジュールの有効化
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
# 以下を指定
<Location /testweb/>
ProxyPass ajp://localhost:8009/testweb/
</Location>
```
## Windows環境でのログローテーション
### Apacheログ
1. rotatelogs.exe(Apache付属)
```
CustomLog "|bin/rotatelogs.exe logs/access_%Y%m%d.log 86400 540" combined
ErrorLog "|bin/rotatelogs.exe logs/error_%Y%m%d.log 86400 540"
```
2. PowerShellバッチで削除処理
```
# 例)7日以上前のログを削除
Get-ChildItem "C:\Apache24\logs\access_log*.log" | Where-Object {
$_.LastWriteTime -lt (Get-Date).AddDays(-7)
} | Remove-Item
```
タスクスケジューラで毎日実行
### Tomcatログ
- %CATALINA_HOME%\conf\logging.properties にて自動ローテーション設定。
2025/07/18
EC2でWindows Serverの設定あれこれ
登録:
コメントの投稿 (Atom)
人気の投稿
-
## 作業前確認 [Amazon Linux 2023 リリースノート](https://docs.aws.amazon.com/ja_jp/linux/al2023/release-notes/relnotes.html) ### インスタンスのネットワーク設定 ``` ...
-
SCTとDMSを使用してオンプレミスにあるOracleをAWSのRDSへ移行してみる。 - [AWS Schema Conversion Toolとは](https://docs.aws.amazon.com/ja_jp/SchemaConversionTool/latest/...
-
--- ## 地理構成・リージョン設計 | AWS | Azure | 説明 | |-----|-------|------| | - | ジオ | Azure独自の地理的分類単位 | | リージョン | リージョン | データセンター群の配置単位 | | - | リージョ...
-
## smtp4dev [https://github.com/rnwood/smtp4dev](https://github.com/rnwood/smtp4dev) > A dummy SMTP server for Windows, Linux, Mac OS-X...
0 件のコメント:
コメントを投稿