VS Code で Java を書くときに Lombok が無くてエラーが出たとき
VS Code で Java のプログラムを見たとき、Lombok を使用している場合大量のエラーが発生した。
前までは自分でパスを設定する必要があったみたいだけど、今はエクステンションが用意されているみたいで追加するとUser Settings に下記が追加される。
ビルドしてエラーが無くなって解決。
"java.jdt.ls.vmargs": "-noverify -Xmx1G -XX:+UseG1GC -XX:+UseStringDeduplication -javaagent:\"C:\\Users\\xxxxx\\.vscode\\extensions\\gabrielbb.vscode-lombok-0.9.4/server/lombok.jar\" -Xbootclasspath/a:\"C:\\Users\\xxxxx\\.vscode\\extensions\\gabrielbb.vscode-lombok-0.9.4/server/lombok.jar\"
参考
Spring Boot Thymeleaf Starter を 1.5.10 から 2.0.1 にあげたらレイアウトがうまく動かなかったけど解決した
2.0 から Compile Dependencies の nz.net.ultraq.thymeleaf / thymeleaf-layout-dialect が無くなっている。
Maven Repository: org.springframework.boot » spring-boot-starter-thymeleaf » 1.5.13.RELEASE
Maven Repository: org.springframework.boot » spring-boot-starter-thymeleaf » 2.0.2.RELEASE
compile('nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect')
を builld.gradle に追加して解決
追記
Spring Boot 2.0 Migration Guide · spring-projects/spring-boot Wiki · GitHub
公式にもマイグレーションガイドで書いてあった。
Thymeleaf 3 からはネイティブな方法が用意されてるから無くなってるらしい。
使いたいなら自分で追加してくれ。
とのこと。
AWSOME DAY ONLINE TRAINING の メモ
オンラインセミナーを聞いたときのメモ
聞きながらだったので、取り逃しとかもある
AWS の紹介と歴史~Amazon EC2, Amazon EBS, Amazon S3, Amazon VPC ~
- アマゾン社内のビジネス課題を解決するために生まれた
- AWS 上で実現できないことは無いと言われている
- 3000 を超える、機能拡張を実施
- 最近ではセキュリティの厳しい金融機関でも採用
- 強み
- 資本の支出を変動費に切り替える
- 従量課金で、初期費用が発生しない
- 規模の経済の利点を得る
- 60 回以上の値下げ(薄利多売)
- キャパシティの予測が不要
- スピードとアジリティの向上
- データセンターの運用保守費が不要に
- 分単位で世界中にデプロイ
- 資本の支出を変動費に切り替える
- AWS グローバルインフラストラクチャ
- リージョン
- アベイラビリティーゾーン
EC2
- 仮想サーバー
- 数分で必要なリソースを準備可能
- インスタンスと表現する
- AMI = Amazon Machine Image
- インスタンスタイプ
- インスタンスファミリー
- 世代
- サイズ
- インスタンスメタデータ
- ユーザーデータの取得 http://169.254.169.254/latest/user-data/
インスタンスユーザーデータ
- インスタンス起動時に、ユーザーデータを指定可能
- 初回起動時1回のみ有効
購入オプション
EBS
- Amazon EC2 インスタンスストア
- ハイパーバイザー内にある
- インスタンスを止めるとデータは消える
- Amazon EBS
- EC2 からはネットワーク経由でアクセス
- このネットワークは高速
- スナップショットを S3 に保存
- 支払いはプロビジョニングした分 100GB 中 5GB しか使って無くても 100GB の課金
S3
- ファイルシステムとしての使用は推奨していない
- バケットに無制限のオブジェクトを保存可能
- 最大 5TB のオブジェクトを保存可能
- 99.999999999% のオブジェクトの耐久性(イレブン・ナイン)
- 3箇所以上のデータセンターにデータを格納している
- 99.99% のオブジェクト可用性
- オブジェクトはインターネットに公開可能
- 動画配信や静的なサイトの構築が可能
- バケット
- デフォルト 100個(上限緩和申請可能)
- オブジェクト
- キー
- http://doc.s3.amazonaws.com/2006-03-01/AmazonS3.html
- バケット doc
- オブジェクトキー "2006 ~ html" まで
ディレクトリの概念は無く全てフラットに存在している
- バージョニング
- 有効化することでバージョン管理される
- バージョン管理されているファイルが全て課金対象になる
- Amazon Glacier
- S3 に似たサービス
- 低コストの長期アーカイブサービス
- 低頻度アクセスのデータに最適
- オンプレミスの磁器バックアップの置き換えをイメージ
- リアルタイムアクセスには利用不可
- Amazon S3 - 低頻度アクセス(IA)
- 低頻度アクセスのデータに最適
- ライフライクルポリシー
- S3 -> S3 低頻度アクセス -> Glacier -> 削除
- 保存期間に基づいてオブジェクトを削除、移動ができる
- 使用した分のみの料金が発生
- AWS簡易見積ツール
VPC
- 仮想ネットワーク
サブネットと呼ばれるネットサーク
- それぞれのアベイラビリティーゾーンに作成する
- private サブネット
- インターネットへ出入り出来ない
- public サブネット
- インターネットへ出入りできる
public ip アドレス(Global IP アドレス)
- private ip アドレス(Local IP アドレス)
- VPN 接続可能
- 全てのリソースが VPC 内にあるわけではない
- S3 はリージョンに存在sる
AWS の伸縮性とベストプラクティス
- アーキテクチャが需要の変化に対応できるようにする
- キャパシティの上限に達してからサーバーを用意しても遅い(Bad practice)
- アラームのしきい値に達したときに Auto Scaling がアラームを受信し EC2 を用意する(Best practice)
- Elastic Load Balancing
CloudWatch
Auto Scaling
- 耐障害性の向上
- 可用性の向上
コスト管理の強化
手動スケーリング
動的スケーリング
- CloudWatch アラームを使用
Auto Healing
- 異常な EC2 があった場合に、正常な EC2 インスタンスの台数を維持できる機能
スケーリングプラン
- インスタンス数の維持
- 手動スケーリング
- スケジュールに基づくスケーリング
- オンデマンドスケーリング
AWS Trusted Advisor
- 無料で使用可能
セキュリティ、アイデンティティ、およびアクセス管理
AWS のデータベース
Amazon RDS
- 共有ストレージ
VS Code で markdown のプレビュー表示のフォントを変更したい
ユーザー設定で下記の項目を編集して解決。
今回は、
fontFamily に Ricty Diminished
fontSize を 18 に変更
"markdown.preview.fontFamily": "-apple-system, BlinkMacSystemFont, 'Segoe WPC', 'Segoe UI', 'HelveticaNeue-Light', 'Ubuntu', 'Droid Sans', sans-serif, 'Ricty Diminished'", "markdown.preview.fontSize": 18
イヤホンを買った
今週 3/18 にハーフマラソンに参加するので、イヤホンを買った。
今までは iPhone に付属されていたイヤホンを使用してランニングしていけど、走ってるとコードが邪魔だったり、スマホと繋がれてるせいで耳が痛くなり走ることに支障が出ていた。
とりあえず、ワイヤレスを試してみたいということで値段も安く anker ということで下記を購入
Anker SoundBuds Slim Bluetoothイヤホン(カナル型)【マグネット機能 / 防水規格IPX4 /内蔵マイク搭載】 iPhone、Android各種対応 (ブラック)
- 出版社/メーカー: Anker
- メディア: エレクトロニクス
- この商品を含むブログ (2件) を見る
完全なワイヤレスは無くしてしまいそうだったのでこのモデルにした。
使ってみる。
Mac の コマンドラインで使用する Java をアップデートしようとしてちょっと引っかかった
現在のバージョンを確認
macOS High Sierra 10.13.1 ☁ ~ java -version java version "1.7.0_71" Java(TM) SE Runtime Environment (build 1.7.0_71-b14) Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
Java をアップデート(失敗)
としたけど、コマンドラインの Java のバージョンに変化が無い。
このアップデートでは、
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
の Java が更新されている。
を参照すると、
Oracle製のJREをインストールしても、java -versionのシンボリック・リンクが更新されたりjavaがパスに追加されたりすることはありません。これを可能にするには、JDKをインストールする必要があります。
とあるので、OS で使用する Java の実行環境をインストールしているだけってことか。パスにも Internet Plug-Ins ってあるし、ブラウザで使用する Java を設定しているのか。
Java をアップデート(成功)
から Java SE Development Kit 8u151 をダウンロード、実行
- コマンドから確認
☁ ~ /usr/libexec/java_home -V Matching Java Virtual Machines (2): 1.8.0_151, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home 1.7.0_71, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
- JAVA_HOME を設定
export JAVA_HOME=$(/usr/libexec/java_home)
- バージョン確認
☁ ~ java -version java version "1.8.0_151" Java(TM) SE Runtime Environment (build 1.8.0_151-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
アップデートが出来ました。 ちょっと引っかかたので備忘録がてら調べた内容をメモー。
参考
インターネット Web サーバー構築ガイドライン を読んだメモ 3
第六章:アプリケーションの実行環境を設定しよう
- ハンドラーがアプリケーションへのリクエストを処理する
PHP ゕプリケーションを実行できるようにするには、ハンドラーの設定で、「拡張子.php がリクエストされたら FastCGI を使用して php-cgi.exe を実行する」 というようにマッピングを行う。これをハンドラー マッピングと言う。
仮想ディレクトリ
- コンテンツのレスポンスに関する設定しか持っていない
アプリケーション
第九章:ログやトレースを活用しよう
-
- C:¥inetpub¥logs¥LogFiles
- Web, FTP サイト毎にフォルダーが分割され、その中に日付別に名前が付けられたファイルがある
- Http.sys によって出力される
- 自動的に削除はされない。ディスク容量の兼ね合いを見て手動で削除する必要がある
失敗した要求のトレース
- リクエストに対して行われる Web サーバー上の処理について、ファイルの種類や、処理時間、Web サーバーが返す HTTP ステータスを条件に、トレースログを取得することができる
ワーカープロセスの監視
- IIS への各リクエストは、ワーカープロセスと呼ばれるサーバープロセス上のスレッドとして処理される
- IIS では任意の数のワーカープロセスをホストすることが可能
- Web サイト、アプリケーションは、各々独自のワーカープロセスを使用することも、また、ひとつのワーカープロセスを共有して使用することも可能
ワーカープロセスとは、アプリケーションプールが実行された際のプロセスのこと
現在稼働しているワーカープロセスの一覧表示ができる
- ワーカープロセスで現在実行中の要求を表示することができる
- Windows の機能の有効化から インターネットインフォメーションサービス > World Wide Web サービス > 状態と診断 > 要求の監視 を有効にする必要あり
イベントログ
イベントログが記録されるとき
- プログラム(アプリケーション、サービス)が明示的にイベントログへ情報を出力している
- プログラムが内部で発生したエラーを処理できなかった場合
イベントビューアーで サブスクリプション を構成すると、リモート コンピューターからイベントを収集し、ローカル コンピューターのログに格納することができる
- 複数台のサーバーを集中して管理する場合に便利
- https://technet.microsoft.com/ja-jp/library/cc749183.aspx?f=255&MSPPError=-2147217396
第十章:動作状態の確認と性能向上
RSCA(Runtime Status and Control API: ルスカ) という実行状態を公開するためのインターフェースが IIS7 から開発された
- RequestMonitorModule (Iisreqs.dll) という IIS モジュールがインストールされていれば利用できる
コマンドからの管理系の操作は Windows PowerShell の利用が推奨
- アプリケーションプールの状態を知りたい
Get-WebAppPoolState プール名 開始済みの場合 Value ----- Started 停止の場合 Value ----- Stopped
- IIS ドライブを使う
IIS: PS IIS:\> dir Name ---- AppPools Sites SslBindings
タスクマネージャー
- 注目すべきプロセス
- inetinfo.exe IIS Admin Service のプロセス
- svchost.exe World Wide Web Publishing Service のプロセス
- w3wp.exe アプリケーションが動作するワーカープロセス
- w3wp.exe に一番注目
- ワーカープロセスは全て w3wp.exe の名前になっているので pid(プロセスID) から識別する
- タスクマネージャーで情報が足りない場合は Process Explorer を使う
- 注目すべきプロセス
パフォーマンスモニター
失敗した要求トレース
- 失敗した(HTTPステータスコード 400 以上)だけでなく、200 OK の正常終了のリクエストについても使用可能
- ASP.NET の場合は
Trace.Write
,Trace.Warn
を記述することで記録が残せる
HTTP 圧縮機能
- サーバーで圧縮を行い、対応しているブラウザで解凍する
- 静的コンテンツ、動的コンテンツの2種類に対してそれぞれ圧縮機能がある
- サーバーで圧縮処理を行うため、処理増加・ディスク I/O の状況によってはボトルネックになることもある