AWS再入門2018 WordPress on AWS

AWS re:Invent 2016のキーノートで発表されたVPSサービス。リリース後はストレージの追加ができるようになったり、Windows Serverやロードバランサの利用が可能となるなど機能が強化されています。 単一サーバによるWordPressの運用なら低コストながらも、非常に簡単な手順でデプロイできる手頃なサービスです。 続きを読む

Windows社内基幹システムをまるごとAWSに! ~DC移行とWindows Server 2012への同時移行を決断 …

~DC移行とWindows Server 2012への同時移行を決断した事例と勘所~ (AWS Summit Tokyo 2015 | MC-02)” について. 稲村 滋己(カトーレック株式会社 情報システム部 部長) Windows Server 2003 の物理サーバにて構築してきた社内基幹システムは、ハードの老朽化と OS/DB のバージョンアップ対応を同時に実施 … 続きを読む

AWS上でWin2016をデプロイしてアクセスする方法

はじめに

タイトルの通りです。個人的な備忘録的な記事です。
目的は、AWS上でWinServerを立ち上げたことが無かったので、
立ち上げと接続方法の確認です。

構成図

cloudcraftを使用して、構成図を描きました。

WindowsServer2016 (1).png

とっても簡単な構成ですね。四角がEC2です。

構築

  1. AWSのホーム画面から「EC2」を選択
  2. 青いボタンの「インスタンスを作成」を選択
  3. AMIは「Microsoft Windows Server 2016 Base – ami-157fe573」を選択
  4. タイプは「t2.micro」を選択して、「次の手順」を選択。
  5. インスタンスの詳細の設定は「インスタンス数」を1に設定して、「次の手順」を選択。
  6. 「ストレージの追加」は30Gを選択して、「次の手順」を選択。
  7. 「タグの追加」は特に指定せず、「次の手順」を選択。
  8. 「セキュリティグループの設定」は以下が設定されていることを確認して、「確認と作成」を選択。
    画面遷移したら「作成ボタンを」選択。
タイプ プロトコル ポート範囲 ソース
RDP TCP 3389 カスタム 0.0.0.0/0

※ソースを0.0.0.0/0にしている為、どこからでもアクセス可能になっています。
テスト用にデプロイしているので、セキュリティ的にザルな設定になっているので、本番運用を考慮するなら、自宅や職場のグローバルIPからのみ接続できる設定の方が好ましいです。

9. キーペアの作成について聞かれるので、今までに作っていないor新しく作りたい場合は、作成する。

パスワードの確認

AWSの画面からキーペアを使ってユーザー名とパスワードを確認する。
Lunux等に対してSSHで接続する場合はあらかじめ設定されている初期値を入力すれば良いが、Windowsに対してRDP接続する場合は事前にキーペアから独自に作成されるパスワードを確認する必要がある。めんどい

  1. AWSのホーム画面から「EC2」を選択。
  2. インスタンスを選択。
  3. 接続したいインスタンスに対して右クリックし、「Windowsのパスワードの取得」を選択
  4. 先ほど保存したキーペアをアップロードして、ユーザ名とパスワードを確認。

接続

Windowsだと標準のリモートデスクトップを利用、MacだとMicrodsoft Remote Desktopをダウンロードして接続する。
1. リモートデスクトップを起動。
2. 接続先に先程作成した、インタスタンスのIPorホスト名を入力する。
3. 画面が表示されることを確認する。

その他

2018年2月現在で使えるWin2016は全て英語版のみでした。
その内、日本語版も出ると思うけど、案件とかで今すぐ対応しなきゃの人は大変そうですね。

続きを読む

Amazon EC2インスタンス、ネットワーク帯域増大

拡張された帯域幅を活用するには、現行世代のEC2インスタンス上でENA(、Elastic Network Adapter)対応の最新AMI(Amazon マシンイメージ)を利用する必要があるとされている。AMIはAmazon Linux、Ubuntu 14.04/16.04、RHEL 7.4、SLES 12、Windows Server (2008 R2、2012、2012 R2、2016)、AWS … 続きを読む

Windows Server で動的コンテンツを EC2 + RDS で作ってみるの巻

目的

検証用のアプリケーションを作成する

目標

Web 動的コンテンツから、RDS Mysql へデータ書き込みを行う

環境

EC2 t2.miclo WindowsServer2016
Eclipse 4.7 Oxygen の Windows 64bit Full Edition Java
Tomcat 8

その他、下のサイト参照
https://qiita.com/hatakkkk/items/cb8dd22041d75952c8d7

Eclipse 動かすのに t2.miclo は小さいかも。。。

JDBC の導入

お勉強用に下のサイトを参考にした
http://web.sfc.wide.ad.jp/~tinaba/tutorials/mysql-j/
https://qiita.com/ononoy/items/4961ce6d5b12aff6c108
https://www.qoosky.io/techs/d2beb9dc80

Mysql の JDBCドライバについて、Aamazon から情報が提供されているようなので、下のサイトを確認する。
https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/java-rds.html

Mysql のJDBC ドライバをインストールする

下のサイトから、”mysql-connector-java-5.1.45.zip” をダウンロードする
https://dev.mysql.com/downloads/file/?id=474258

「あれ?ダウンロードが始まらないな?」というときは、
Web サイトの中央下付近にある文章”No thanks, just start my download.” をクリック

今日はここまで。

続きを読む

t2.microインスタンスでWindowsは使い物になるのか?

ICDP(田舎クラウドデザインパターン)的なネタ再び。

概要

AWS EC2 t2.micro インスタンスのシステム資源は非常に乏しい。
AWS無料利用枠でウィンドウズも対象だけど、本当に使い物になるのか?

目的

t2.microインスタンスへWindows Server 2008R2をインストールしてソフトウェアを起動しようとしたところ、 Out of Memory で起動不能であった。
メモリ1GB、連続して演算できない制限付きのCPU能力で、ウィンドウズを使用するには厳しい。
動作させたいソフトウェアは必要メモリ500MBのため、なんとか使えるようにすることを目的とする。

要件

  • AMI
    Windows_Server-2008-R2_SP1-Japanese-64Bit-Base-2017.11.29 – ami-95d06bf3

  • ページファイル(スワップ)無しで使う。
    スワップが発生したら実用にならないためページファイルは無しとする。
    これはスワップ処理にはCPU時間を消費するため、CPU時間に制限があるt2系インスタンスでは動作が間欠的に停止したり、操作不能に陥ったりするからである。

現状

Windows Server 2008R2 をインストールして起動した状態はこのようになっている。
t2a.jpg

消費メモリは959MB。
メモリ1GBしか無いのに消費メモリがこの状況では無理もない。殆ど空きがない。
40MBではメモリ不足で起動不能となるのは当然であろう。

対処

タスクマネージャでメモリ使用状況を見て削減できそうなプロセスを調べる。
t2b.jpg

TrustedInstaller.exe が460MBも使用している。
これは何かと調べると、Windows Modules Installerサービスのようだ。
Windows Update関連のプログラムで、停止させると更新に失敗するが通常は問題無いので停止させてみた。

無効に設定したサービス

先の大物を含め、無効に設定したサービスは以下の通り。
ただしこれを行うとWindows Updateが失敗するので行う場合は手動で起動し対処すること。

  • Windows Modules Installer
  • Windows Update
  • WinHttp Web proxy Auto-Discovery Service

また、AWSオリジナルの制御機能を使わないのであれば以下も無効にできる。
こちらは計20MB程度の削減にしかならないのでお好みで。

  • Amazon SSM Agent
  • AWS Lite Guest Agent
  • Ec2Config

対処した結果

t2c.JPG

消費メモリが400MB程度となり、600MBの空きを確保できた。

結論

かろうじて要件を満たし動作可能な環境を構築できた。
しかし、リソースには余裕が無いためMackerel等で常時監視した方が良いと思われる。

続きを読む

AWSでのWindows Server ディスク拡張

ディスクがやばい。でもAWSなら大丈夫。

SQLのデータベースが肥大化し、ディスクが枯渇していたので拡張を実施。
ダウンタイム無し。さすがAWS。

手順

  1. AWSコンソールよりEBSボリュームの拡張
    「ボリュームが Optimizing 状態になり次第、
    ファイルシステムのサイズ変更を開始できます。」ということ。
    →変更して2、3分でOS上で認識。
  2. OS上でディスク拡張
    画面に従いそのまま完了。

参考
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/ebs-modify-volume.html
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/recognize-expanded-volume-windows.html

拡張サイズについて

本当は2.5TBに拡張しようと思ったけど、
該当のボリュームはMBRなので2.0TBまでしか拡張できない。

  • AWSサポート回答

該当のvol-xxxxxxxxをご利用開始時にGPTでフォーマット済みであれば、2.5TBまで拡張可能です。
MBRの場合には2TBまで拡張し直近での容量不足を回避していただいた後に、新規のGPTフォーマット済みボリュームへのコピーおよびドライブレターの変更による置き換えをご検討ください。

参考
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/volume_constraints.html#window-volumes
http://www1.ark-info-sys.co.jp/support/etc/use/gptsystemdrive.html

続きを読む

CPUの脆弱性におけるEC2の保守対応(Amazon Linux、Windows)

CPUの脆弱性

年明け早々に問題になっている「CPUの脆弱性」について、AWSでの保守についてのメモです。

今回騒ぎになっているのは1月3日にProject Zeroの記事で紹介されたCPU脆弱性。

CPUの脆弱性の影響や対応方法などは、以下の記事がとてもわかりやすかったです。

上記の記事で、問題点や影響について大変わかりやすく解説されているので、この記事で脆弱性の問題は省いて、AWSのEC2における対応を書いて行きたいと思います。

EC2(Amazon Linux、Windows)の対応

Processor Speculative Execution Research Disclosureを簡単に要約すると、

KPTIのバグに対処と、CVE-2017-5754(不正なデータキャッシュ読み込み)の軽減策を改善するカーネルをリリースしました。最新のAmazon LinuxカーネルかAMIにアップデートすることによって対応されたカーネルが使えるようになります。

アップデートを推奨されているサービスは、
EC2EC2 WindowsECS Optimized AMElastic Beanstalk

また、RDSは現段階でユーザーが対応することは無いようです。

今回EC2について対応の流れを紹介していきます。

Amazon Linux

OSがAmazon Linuxの場合、最新のAMI、又はカーネルをアップデートして再起動。
現在(2018年1月11日)アップデートされるカーネルは以下になります。
Linux version 4.9.75-25.55.amzn1.x86_64
https://alas.aws.amazon.com/ALAS-2018-939.html


#対象のインスタンスにログインする
$ ssh hoge-instance

$ sudo su -

# カーネルを確認
# uname -srv
Linux 4.4.5-15.26.amzn1.x86_64 #1 SMP Wed Mar 16 17:15:34 UTC 2016
# 末尾のタイムスタンプはビルドされた日時を指している。

# カーネルをアップデートする
# yum update kernel -y
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest                                                                                                                                                               | 2.1 kB     00:00
amzn-updates/latest                                                                                                                                                            | 2.5 kB     00:00
mackerel/latest/x86_64                                                                                                                                                         | 2.5 kB     00:00
mysql-connectors-community/x86_64                                                                                                                                              | 2.5 kB     00:00
mysql-tools-community/x86_64                                                                                                                                                   | 2.5 kB     00:00
mysql56-community/x86_64                                                                                                                                                       | 2.5 kB     00:00
8 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package kernel.x86_64 0:4.9.75-25.55.amzn1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================================================================
 Package                                    Arch                                       Version                                                 Repository                                        Size
======================================================================================================================================================================================================
Installing:
 kernel                                     x86_64                                     4.9.75-25.55.amzn1                                      amzn-updates                                      18 M

Transaction Summary
======================================================================================================================================================================================================
Install  1 Package

Total download size: 18 M
Installed size: 72 M
Downloading packages:
kernel-4.9.75-25.55.amzn1.x86_64.rpm                                                                                                                                           |  18 MB     00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : kernel-4.9.75-25.55.amzn1.x86_64                                                                                                                                                   1/1

  Verifying  : kernel-4.9.75-25.55.amzn1.x86_64                                                                                                                                                   1/1

Installed:
  kernel.x86_64 0:4.9.75-25.55.amzn1

Complete!

カーネルをアップデート後、awsのコンソール画面より再起動。
(再起動しないとカーネルが更新されない)

# 再起動後
# uname -srv
Linux 4.9.75-25.55.amzn1.x86_64 #1 SMP Fri Jan 5 23:50:27 UTC 2018

脆弱性対応されたカーネル(Linux version 4.9.75-25.55.amzn1.x86_64)になっていることを確認。
このバージョンがビルドされた日も1月5日と最新ですね。

補足:使用しているAMIのバージョンが古い場合は、最新のAMIにアップデートする必要があります。

問題の脆弱性に対応できているか確認する

Linuxが脆弱性「Spectre」「Meltdown」に対応済みか調べる方法の記事を参考に、アップデートされたカーネル(Linux version 4.9.75-25.55.amzn1.x86_64)で検査しまします。

Spectre and Meltdown mitigation detection tool v0.24

Checking for vulnerabilities against live running kernel Linux 4.9.75-25.55.amzn1.x86_64 #1 SMP Fri Jan 5 23:50:27 UTC 2018 x86_64

CVE-2017-5753 [bounds check bypass] aka 'Spectre Variant 1'
* Checking count of LFENCE opcodes in kernel:  NO  (only 35 opcodes found, should be >= 70)
> STATUS:  VULNERABLE  (heuristic to be improved when official patches become available)

CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
* Mitigation 1
*   Hardware (CPU microcode) support for mitigation:  YES 
*   Kernel support for IBRS:  NO 
*   IBRS enabled for Kernel space:  NO 
*   IBRS enabled for User space:  NO 
* Mitigation 2
*   Kernel compiled with retpoline option:  NO 
*   Kernel compiled with a retpoline-aware compiler:  NO 
> STATUS:  VULNERABLE  (IBRS hardware + kernel support OR kernel with retpoline are needed to mitigate the vulnerability)

CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Kernel supports Page Table Isolation (PTI):  YES 
* PTI enabled and active:  YES 
> STATUS:  NOT VULNERABLE  (PTI mitigates the vulnerability)

A false sense of security is worse than no security at all, see --disclaimer

AWSのProcessor Speculative Execution Research Disclosureに書いてあるように
確かにKPTIのバグ(Variant 3)は対処されていますが、CVE-2017-5754(不正なデータキャッシュ読み込み)の軽減策を改善するだけで、根本的に解決はできていないようです。

Windows 8.1 又は Windows Server 2012 R2

OSがWindows 8.1 又は Windows Server 2012 R2の場合
KB4056898のセキュリティプログラムをインストールします。

手順は対象のwindowsインスタンスからMicrosoft®Update カタログにアクセスし、対象のセキュリティプルグラムをインストール、再起動すれば完了です。

確認は、「コントロールパネル」 > 「システムとセキュリティ」 > 「Windows Update」 >「更新の履歴」
のタブを開き

Windows 用セキュリティ更新プログラム (KB4056898) インストール状態: 成功しました

となっていれば、対応完了です。

補足:更新プログラムしばらく更新していないマシンは、インストールに失敗する場合があるので、「コントロールパネル」 > 「システムとセキュリティ」 > 「Windows Update」 > 「更新プログラムを確認」 を開いて、プログラムを最新のものに更新して再起動してから、上記のセキュリティプログラムをインストールしましょう。

終わりに

今回の対応をとして完全に脆弱性が解決しているわけではないので、継続的にAmazon Linux AMI Security Centerをチェックして、(RSS feed有り)最新のカーネルにアップデートし続けた方が良さそうです。

今回のCPUの脆弱性で多くのマシンを保守していると脆弱性の対応がとても大変だなと痛感しました。エンジニアとして、できるだけ自分達で保守するものが少なくなるように努めて行きたいなと思います。

続きを読む

Setup Radius on AWS for access to WiFi from Anywhere

システム管理 & アマゾンウェブサービス Projects for $250 – $750. We have an AWS instance of Windows Server 2012 R2 – would like to install Active Directory and setup RADIUS so we can have users from our multiple offices authenticate the WiFi credentials… 続きを読む