2022年を振り返る

あけましておめでとうございます。最近は、なかなかブログもかけていないので、久しぶりに去年(2022年)の振り返りでもしようと思います。

技術的な話

Kubernetes, Istio, Verrazzano

去年は、Kubernetesをはじめとするコンテナ関連の技術に面と向かって取り組むことができました。今までは、なんとなく、基本的なところを抑えている部分が多かったですが、ちゃんと運用を踏まえた部分までしっかりと理解することができました。コンテナ技術は一般の企業でも普通に使う技術になってきたと感じます。コンテナ技術をただ使うだけではなく、なぜそれを使用するのかという背景をしっかりと抑えて利用することが重要だと実感しました。今年も引き続き継続して取り組んでいこうと思います。

Java, Jakarta EE

現在はコンテナ関連メインで活動していますが、Javaも忘れてはいません。Javaも最新技術をしっかりと把握できているかというと怪しいとこともありますが、基本的なところはしっかりと抑えているつもりです。JJUGJavaのユーザグループ)のセミナーにもすべてではありませんが参加することができました。本来は運営をお手伝いする立場のような気もしますが、なかなかそこまではできておらず、運営の方々には頭が上があがりません。今の会社に入ったのもJavaがきっかけにというところもあるので、もちろん今年もJavaに取り組んでいきたいと思います。

買ったもの

コーヒー関連

ここ数年はリモート勤務の時間が長いので、自宅のQOLを向上させようと取り組みました。コーヒーは昔からずっと飲んでいるのですが、最近では、高性能手びきミルが安価で販売されているようで、自宅で手軽にきめのそろった豆を挽くことができます。私はタイムモアのC3 MAXとハリオ V60を購入して手軽に毎回、豆からコーヒーを飲むようにしました。今まではブレンド豆をメインに飲んでいましたが、単一産地のストレートを購入して地域ごとの豆の違いとか、香り高いゲイシャ種なども飲んでみてコーヒーの味の違いを理解することができました。最近では単一農園のスペシャルティコーヒーやアナエロビック・ファーメンテーションという特別な発酵処理を行ったコーヒーなども販売されているようなので、今年も引き続き飲み比べをしたいなと思います。

Amazon Echoシリーズ

アマゾンプライムデーに、今まで気になっていたAmazon EchoシリーズとSwitchBotを購入しました。SwitchBotで各部屋のエアコン、テレビ、電気を音声などで操作することができます。子供たちもあっという間に使いこなすようになり、いつもアレクサに「テレビをつけて」や「ただいま」などと話しかけています。ちょっとリモコンが遠いところにあるなみたいなときにその場で操作できるのでとても便利です。また、外出先から帰って来る時に、事前に部屋のエアコンをつけたりなどもできるようになりました。

ゲーム

スプラトゥーン3

今年はスプラトゥーン3が発売されたので、発売以降はメインで遊んでいました。ひとまずS+10までは到達して、サーモンランのバッチ集めや縄張りやガチマッチをゆるりとやっていた感じです。スプラトゥーン1,2とやっていますが、さすがにその時ほどのモチベーションはありませんね。ただ、普通の人から見れば十分な時間やっていると思います。

ポケモン

ポケモン世代ではないのですが、子供がポケットモンスターバイオレットを購入したので、クリアまではやりました。ポケモンはかわいいです。

アニメ

ワンピース

ワンピースが25年を迎えとても面白いと聞いて、久しぶりに電子版のジャンプを購入して読みました。ジャンプは30歳の時に読むのをやめたので15年ぶりです。まだワンピースが第一線で活躍しているのが驚きでもあり、とても面白かったです。これから最終章で25年で隠してきた謎を吐き出していくらしいので、今年以降もさらに楽しみです。あわせて映画も見に行きましたが、ワンピースの映画なのかAdoのライブなのかこちらもとても良い出来でよかったです。

ヒロアカ、スパイファミリー、チェーンソーマン

アマゾンプライムに入ったので、ヒロアカ、スパイファミリー、チェーンソーマンを見ました。さすがどれも人気アニメで面白かったです。

プライベート

家族

子供が3人いるのですが、長女が高校受験だったり、次男が小学校に入学したりとなかなか大変でした。自分のことはどうしても2の次になってしまいますね。教育費もなかなかかかるのでヒーヒーいいながら仕事を頑張っている次第です。

体調

もう45歳なので基本どこか痛かったり、100%元気な日のほうが少なくなってきました。健康診断でひっかかり、初めて大腸検査もやりました。リモート勤務であまり体も動かさなくなったので、数年前から自宅でちょいちょい筋トレをやっています。なにはともあれ健康が一番なので今年も大きい病気もなく過ごせると良いなと思います。

今年の抱負

今年の抱負とかは特にないです。またゆるりと1年、元気に頑張れたらと思っています。みなさんもよいお年を。

Virtualbox6.1のGuest AdditionsをOracle Linux 8.6にインストールする

VirtualboxのGuest Additionsをインストールしようとするといつも忘れるのでメモ


バージョンは以下


コツはインストール前にrootで以下を実施

$ dnf install perl make bzip2 gzip unzip kernel-uek-devel-$(uname -r) tar


上記を事前にインストールしておかないとGuest Additionsインストール時に「modprobe vboxguest failed」と表示されてエラーになる。


インストールしたら再起動してGuest Additionsをインストール


バイスから「Guest Additions CDイメージの挿入」を選択してディスクをマウント


自動起動起動のダイアログが出るので「実行する」を選択


インストールには管理権限が必要なのでパスワード入力が表示されたら管理者パスワードを入力すると、コンソールが起動して無事Guest Additionsがインストールできる。


インストールが終わったらマウントしたCDイメージのアンマウントを忘れずに。

VirtualBox6.1上のOracleLinux8.4のディスクを拡張する

VirtualBox6.1上にインストールされたOracleLinux8.4のディスクを拡張した時のメモ。

バージョン

VirtualBox 6.1
OracleLinux 8.4

VirtualBoxの設定

 ・ファイル>仮想メディアマネージャ を選択
 ・追加したいディスクのプロパティ画面を表示して、ディスクのサイズを変更して適用

OracleLinuxの設定

 ・rootユーザでログイン
 ・現状のディスク確認

[root@oel7 ~]$ df -h
ファイルシス        サイズ  使用  残り 使用% マウント位置
devtmpfs              1.8G     0  1.8G    0% /dev
tmpfs                 1.8G     0  1.8G    0% /dev/shm
tmpfs                 1.8G  9.3M  1.8G    1% /run
tmpfs                 1.8G     0  1.8G    0% /sys/fs/cgroup
/dev/mapper/ol-root    17G  5.3G   12G   32% /
/dev/sda1            1014M  367M  648M   37% /boot
tmpfs                 365M  4.6M  361M    2% /run/user/1000


 ・fdiskでパーティションを拡張

[root@localhost ~]# fdisk /dev/sda

fdisk (util-linux 2.32.1) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。


コマンド (m でヘルプ): p
ディスク /dev/sda: 200 GiB, 214748364800 バイト, 419430400 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x3db55c14

デバイス   起動 開始位置 終了位置   セクタ サイズ Id タイプ
/dev/sda1  *        2048  2099199  2097152     1G 83 Linux
/dev/sda2        2099200 41943039 39843840    19G 8e Linux LVM

コマンド (m でヘルプ): n
パーティションタイプ
   p   基本パーティション (2 プライマリ, 0 拡張, 2 空き)
   e   拡張領域 (論理パーティションが入ります)
選択 (既定値 p): 

既定の回答 p であるものとみなします。
パーティション番号 (3,4, 既定値 3): 
最初のセクタ (41943040-419430399, 既定値 41943040): 
最終セクタ, +セクタ番号 または +サイズ{K,M,G,T,P} (41943040-419430399, 既定値 419430399): 

新しいパーティション 3 をタイプ Linux、サイズ 180 GiB で作成しました。

コマンド (m でヘルプ): p
ディスク /dev/sda: 200 GiB, 214748364800 バイト, 419430400 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x3db55c14

デバイス   起動 開始位置  終了位置    セクタ サイズ Id タイプ
/dev/sda1  *        2048   2099199   2097152     1G 83 Linux
/dev/sda2        2099200  41943039  39843840    19G 8e Linux LVM
/dev/sda3       41943040 419430399 377487360   180G 83 Linux

コマンド (m でヘルプ): t
パーティション番号 (1-3, 既定値 3): 
16 進数コード (L で利用可能なコードを一覧表示します): 8e

パーティションのタイプを 'Linux' から 'Linux LVM' に変更しました。

コマンド (m でヘルプ): p
ディスク /dev/sda: 200 GiB, 214748364800 バイト, 419430400 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x3db55c14

デバイス   起動 開始位置  終了位置    セクタ サイズ Id タイプ
/dev/sda1  *        2048   2099199   2097152     1G 83 Linux
/dev/sda2        2099200  41943039  39843840    19G 8e Linux LVM
/dev/sda3       41943040 419430399 377487360   180G 8e Linux LVM

コマンド (m でヘルプ): w
パーティション情報が変更されました。
ディスクを同期しています。


 ・Linuxを再起動

[root@oel7 ~]# reboot


 ・物理ボリュームの作成

[root@localhost ~]# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.


 ・Volume Groupに物理ボリュームを追加

[root@localhost ~]# vgdisplay
  --- Volume group ---
  VG Name               ol
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <19.00 GiB
  PE Size               4.00 MiB
  Total PE              4863
  Alloc PE / Size       4863 / <19.00 GiB
  Free  PE / Size       0 / 0   
  VG UUID               GghsIo-qiG1-HlZU-BCuz-zoUv-MPwQ-xxR9vS
   
[root@localhost ~]# vgextend ol /dev/sda3
  Volume group "ol" successfully extended


 ・論理ボリュームのサイズを拡張

[root@localhost ~]# lvextend -l +100%FREE /dev/mapper/ol-root
  Size of logical volume ol/root changed from <17.00 GiB (4351 extents) to 196.99 GiB (50430 extents).
  Logical volume ol/root successfully resized.


 ・ファイルシステムを拡張

[root@localhost ~]# xfs_growfs /dev/mapper/ol-root
meta-data=/dev/mapper/ol-root    isize=512    agcount=4, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=4455424, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 4455424 to 51640320


 ・ディスクサイズが拡張されたか確認

[root@localhost ~]# df -h
ファイルシス        サイズ  使用  残り 使用% マウント位置
devtmpfs              1.8G     0  1.8G    0% /dev
tmpfs                 1.8G     0  1.8G    0% /dev/shm
tmpfs                 1.8G  9.3M  1.8G    1% /run
tmpfs                 1.8G     0  1.8G    0% /sys/fs/cgroup
/dev/mapper/ol-root   197G  6.6G  191G    4% /
/dev/sda1            1014M  367M  648M   37% /boot
tmpfs                 365M  5.7M  360M    2% /run/user/1000

VirtualBox6.0上のOracleLinux7.6のディスクを拡張する

VirtualBox6.0上にインストールされたOracleLinux7.6のディスクを拡張した時のメモ。

バージョン

VirtualBox 6.0
OracleLinux 7.6

VirtualBoxの設定

 ・ファイル>仮想メディアマネージャ を選択
 ・追加したいディスクのプロパティ画面を表示して、ディスクのサイズを変更して適用

OracleLinuxの設定

 ・rootユーザでログイン
 ・現状のディスク確認

[root@oel7 ~]$ df
ファイルシス        1K-ブロック    使用  使用可 使用% マウント位置
/dev/mapper/ol-root    10258432 9495888  762544   93% /
devtmpfs                1006548       0 1006548    0% /dev
tmpfs                   1023400       0 1023400    0% /dev/shm
tmpfs                   1023400    9680 1013720    1% /run
tmpfs                   1023400       0 1023400    0% /sys/fs/cgroup
/dev/sda1               1038336  299928  738408   29% /boot
tmpfs                    204680       8  204672    1% /run/user/42
tmpfs                    204680      24  204656    1% /run/user/1000


 ・fdiskでパーティションを拡張

[root@oel7 ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


コマンド (m でヘルプ): p

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000b1daf

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    25165823    11533312   8e  Linux LVM

コマンド (m でヘルプ): d
パーティション番号 (1,2, default 2): 
Partition 2 is deleted

コマンド (m でヘルプ): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): 
Using default response p
パーティション番号 (2-4, default 2): 
最初 sector (2099200-41943039, 初期値 2099200): 
初期値 2099200 を使います
Last sector, +sectors or +size{K,M,G} (2099200-41943039, 初期値 41943039): 
初期値 41943039 を使います
Partition 2 of type Linux and of size 19 GiB is set

コマンド (m でヘルプ): p

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000b1daf

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   83  Linux

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。

WARNING: Re-reading the partition table failed with error 16: デバイスもしくはリソースがビジー状態です.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
ディスクを同期しています。


 ・Linuxを再起動

[root@oel7 ~]# reboot


 ・物理ボリュームのサイズの変更

[root@oel7 ~]# pvresize /dev/sda2
  Physical volume "/dev/sda2" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized


 ・論理ボリュームのサイズを拡張

[root@oel7 ~]# lvextend -l +100%FREE /dev/mapper/ol-root
  Size of logical volume ol/root changed from 9.79 GiB (2507 extents) to <17.80 GiB (4556 extents).
  Logical volume ol/root successfully resized.


 ・ファイルシステムを拡張

[root@oel7 ~]# xfs_growfs /dev/mapper/ol-root
meta-data=/dev/mapper/ol-root    isize=256    agcount=4, agsize=641792 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=2567168, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 2567168 to 4665344


 ・ディスクサイズが拡張されたか確認

[root@oel7-node2 ~]# df
ファイルシス        1K-ブロック    使用  使用可 使用% マウント位置
/dev/mapper/ol-root    18651136 9641740 9009396   52% /
devtmpfs                1006548       0 1006548    0% /dev
tmpfs                   1023400       0 1023400    0% /dev/shm
tmpfs                   1023400    9664 1013736    1% /run
tmpfs                   1023400       0 1023400    0% /sys/fs/cgroup
/dev/sda1               1038336  299928  738408   29% /boot
tmpfs                    204680       4  204676    1% /run/user/42
tmpfs                    204680      24  204656    1% /run/user/1000

Oracle Cloud Infrastructure DNSサービスにサブドメインを委任する

OCI(Oracle Cloud Infrastructure)にはDNSのゾーンを作成して管理するサービスがあります。本日は、OCIのDNSサービスに保有しているドメインサブドメインを委任する方法について説明します。

1.OCI DNSで Zoneを作成

最初に、OCI管理コンソールの「ネットワーキング > DNSゾーン管理」より「ゾーンの作成」を行います。

f:id:den2sn:20191206122543p:plain

メソッド:手動
ゾーン・タイプ:プライマリ
ゾーン名:<<管理するサブドメイン名>>

今回はゾーン名を「den2sn.com」のサブドメインとして「test.den2sn.com」を設定してみます。

2.NSレコードの設定内容確認

ゾーンを作成するといくつかレコードが定義されています。そのレコードの設定を確認します。作成したゾーンをクリックすると、レコードに設定されているNSレコード(4件)を確認することができます。このレコードを利用しているドメインDNSサービスに登録する必要があるのでメモしておきます。

f:id:den2sn:20191206122823p:plain

3.NSレコードをDNSサービスに登録

ドメインを購入しているDNSサービスに、2.で確認したNSレコード(4件)を追加します。私は「お名前.com」でドメインを購入しているので、そのDNSサービスの管理画面で設定します。

f:id:den2sn:20191206123012p:plain

ホスト名:<<管理するサブドメイン名>>
TYPE:NS
TTL:<<キャッシュ有効期限(秒)>>
VALUE:<<2.で確認したRDATAの名前>>

テストのために今回はTTL値を少なく設定していますが、1日(86400)で良いと思います。

4.NSレコードの設定確認

NSレコードが「お名前.com」に正しく登録されたか、任意のクライアントで確認します。Windowsでは以下のnslookupコマンドで登録されているNSレコードを確認することができます。

$ nslookup -type=ns test.den2sn.com

サーバー:  UnKnown
Address:  10.0.0.1

権限のない回答:
test.den2sn.com nameserver = ns4.p68.dns.oraclecloud.net
test.den2sn.com nameserver = ns1.p68.dns.oraclecloud.net
test.den2sn.com nameserver = ns2.p68.dns.oraclecloud.net
test.den2sn.com nameserver = ns3.p68.dns.oraclecloud.net

ns1.p68.dns.oraclecloud.net     internet address = 162.88.2.6
ns2.p68.dns.oraclecloud.net     internet address = 162.88.18.6
ns3.p68.dns.oraclecloud.net     internet address = 162.88.34.6
ns4.p68.dns.oraclecloud.net     internet address = 162.88.50.6

3.で登録したNSレコードの一覧が表示されればOKです。

5.Aレコードの作成

 ・NSレコードの確認が取れたら、次は実際にホスティングするインスタンスのIPをOCIに作成したゾーンのレコードに追加します。

f:id:den2sn:20191206123441p:plain

レコード型:A
ホスト・レコード:<<インスタンスドメイン名>>
TTL:<<キャッシュ有効期限(秒)>>
RDATAモード:基本
アドレス:<<インスタンスのIP>>

6.Aレコードの設定確認

最後にまた任意のクライアントから、今度はAレコードが参照できるか確認します。

$ nslookup test.den2sn.com
サーバー:  UnKnown
Address:  10.0.0.1

権限のない回答:
名前:    test.den2sn.com
Address:  xxx.xxx.xxx.xxx

5.で登録したAレコードのIPが表示されればOK


これで無事、サブドメイン以下のIP管理をOCIのDNSサービスで実施することができるようになりました。


OCIのDNSサービスにはインスタンスのヘルスチェック結果を元に、返却するIPを変更するようなトラフィックマネージメント機能があります。サブドメインの管理をOCIのDNSサービスに委任しておくことでこのような機能を有効活用することができます。

Java EE 8 関連のAPIの日本語翻訳(非公式)

megascusさんがJava EE関連のAPIの日本語翻訳(非公式)を公開されているようですね。
Java EEAPIは公式で日本語化されていないので英語がわからない方は参考になると思います。


Java Servlet 4.0 API Specification日本語翻訳版(非公式)
https://megascus.github.io/servlet-spec/docs/apidocs/
Java Persistence API 2.2 Specification日本語翻訳版(非公式)
https://megascus.github.io/jpa-spec/docs/apidocs/

Java EE 8で追加・更新された機能

先日Java EE 8がリリースされましたが
追加・更新された各テクノロジーのバージョンは以下のようになっています。

Java EE 8で新規で追加されたもの
テクノロジー バージョン
Java API for JSON Binding (JSON-B) 1.0
Java EE Security API 1.0
アップデートされたもの
テクノロジー EE6バージョン EE7バージョン
Enterprise JavaBeans (EJB) 3.2 3.2
Servlet 3.1 4.0
JavaServer Pages (JSP) 2.3 2.3
Expression Language (EL) 3.0 3.0
Java Messaging Service (JMS) 2.0 2.0
Java Transaction API (JTA) 1.2 1.2
JavaMail API 1.5 1.6
Java Connector Architecture (JCA) 1.7 1.7
Web Services 1.4 1.4
Java API for RESTful Web Services (JAX-RS) 2.0 2.1
Java API for WebSocket 1.0 1.1
Java API for JSON Processing (JSON-P) 1.0 1.1
Concurrency Utilities for Java EE 1.0 1.0
Batch Application for the Java Platform (jBatch) 1.0 1.0
Java EE Management 1.1 1.1
Java Authorization Service Provider Contract for Containers (JACC) 1.5 1.5
Java Authentication Service Provider Interface for Containers (JASPIC) 1.1 1.1
JSP Debugging 1.0 1.0
JavaServer Pages Standard Tag Library (JSTL) 1.2 1.2
Web Services Metadata for the Java Platform 2.1 2.1
JavaServer Faces (JSF) 2.2 2.3
Common Annotations 1.2 1.3
Java Persistence API (JPA) 2.1 2.2
Bean Validation 1.1 2.0
Managed Beans 1.0 1.0
Interceptors 1.2 1.2
Contexts and Dependency Injection for Java EE (CDI) 1.1 2.0
Dependency Injection for Java 1.0 1.0


紆余曲折あったJava EE 8ですが、追加された機能は最終的にJSON-BとSecurity APIの2つになりました。


また、Servlet、Bean Validation、CDIの3つの仕様についてはメジャーバージョンが更新されており、大きな機能が追加されています。