はじめに
こんにちは。前回はAWSでCloud9とEC2インスタンスの設定までやりました。
今回はAWS EC2インスタンス上のUbuntuの設定について説明します。やることは時刻同期設定です。自動売買は時刻が正確にあっていることが重要です。必ず設定しておきましょう。
設定はAWS Cloud9のターミナルで行います。AWS Cloud9の画面の下部ペインの「bash-“(環境によって違う番号)”」のタブです。
パッケージ情報の更新とパッケージの更新
まずUbuntuのパッケージ情報の更新とパッケージの更新を行います。更新は今後、定期的に実行します。
$ sudo apt update
$ sudo apt upgrade
AWS Cloud9設定直後に実行すると、以下のようなエラーが出るかもしれませんが、その場合はしばらく待ってから実行してください。
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
タイムゾーンはUTCのまま
タイムゾーンの設定について説明します。デフォルトはUTC(Coordinated Universal Time:協定世界時)です。「date」で確認しましょう。
$ date
Thu Sep 2 11:40:25 UTC 2021
タイムゾーンを日本時間に変えてもいいのですが、私はUTCのままとしています。FXの売買では欧州時間や米国時間を基準にして売買するロジックがありますので、日本時間を基準にするとかえって売買プログラムのコーディングで混乱する場合があるからです。
時刻同期設定
本題の時刻同期設定です。 Amazonが提供している、Amazon Time Sync Service を利用します。Amazon Linuxの場合は、デフォルトで同期しますが、Ubuntuは設定する必要があります。以下を参考にしました。
Ubuntu での Amazon Time Sync Service の設定
まず、chrony パッケージをインストールします。
$ sudo apt install chrony
次にchrony.confファイルを修正します。私はvimに慣れているのでvimでファイルを開きますが、好きなエディタで構いません。sudoを前につけないと修正ができません。
$ sudo vim /etc/chrony/chrony.conf
ファイルを開いたら、以下をpoolステートメントの前に追加してください。
「server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4」
以下のような感じです。
# Welcome to the chrony configuration file. See chrony.conf(5) for more
# information about usuable directives.
# This will use (up to):
# - 4 sources from ntp.ubuntu.com which some are ipv6 enabled
# - 2 sources from 2.ubuntu.pool.ntp.org which is ipv6 enabled as well
# - 1 source from [01].ubuntu.pool.ntp.org each (ipv4 only atm)
# This means by default, up to 6 dual-stack and up to 2 additional IPv4-only
# sources will be used.
# At the same time it retains some protection against one of the entries being
# down (compare to just using one of the lines). See (LP: #1754358) for the
# discussion.
#
# About using servers from the NTP Pool Project in general see (LP: #104525).
# Approved by Ubuntu Technical Board on 2011-02-08.
# See http://www.pool.ntp.org/join.html for more information.
server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
pool ntp.ubuntu.com iburst maxsources 4
pool 0.ubuntu.pool.ntp.org iburst maxsources 1
pool 1.ubuntu.pool.ntp.org iburst maxsources 1
pool 2.ubuntu.pool.ntp.org iburst maxsources 2
chrony サービスを再起動します。
$ sudo /etc/init.d/chrony restart
[ ok ] Restarting chrony (via systemctl): chrony.service.
chrony が 169.254.169.123 IP アドレスを使用して時刻を同期させていることを確認します。
$ chronyc sources -v
以下のような表示がでればOKです。
210 Number of sources = 9
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 169.254.169.123 3 4 377 13 -1517ns[ -10us] +/- 524us
^- pugot.canonical.com 2 6 37 43 -554us[ -565us] +/- 83ms
^- chilipepper.canonical.com 2 6 37 43 -633us[ -644us] +/- 74ms
^- golem.canonical.com 2 6 37 43 +28us[ +17us] +/- 56ms
^- alphyn.canonical.com 2 6 37 44 -219us[ -229us] +/- 67ms
^- clock.fmt.he.net 1 6 37 45 +2842us[+2828us] +/- 34ms
^- 50-205-244-111-static.hf> 2 6 37 44 +844us[ +834us] +/- 47ms
^- gopher.fart.website 3 6 37 44 -5934us[-5944us] +/- 86ms
^- radio-sunshine.org 2 6 37 43 +3365us[+3355us] +/- 104ms
最後に
以上でUbuntuの設定は終わりです。次はPython環境を構築していきます。
コメント