## 使用する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> ``` ## 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> ``` ## 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" } ``` ## 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) ### インスタンスのネットワーク設定 ``` ...
-
rfc793 TCP Header Format 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 ...
-
SEに必要なスキル スキル分類 主なスキル 技術 ・プラットフォーム ・プログラミング言語 ・データベース ・セキュリティ ・ネットワーク メソドロジ ・オブジェクト指向 ・コンサルティング手法 ・アーキテクチャデザイン ・モデリン...
-
--- ## 地理構成・リージョン設計 | AWS | Azure | 説明 | |-----|-------|------| | - | ジオ | Azure独自の地理的分類単位 | | リージョン | リージョン | データセンター群の配置単位 | | - | リージョ...
0 件のコメント:
コメントを投稿