EC2のインスタンスを作ろうと思います。
調べているとEC2 Container ServiceというEC2のDockerに特化したサービスがあるようで興味を引かれましたが、
今は通常のEC2インスタンスを作成します。
インスタンスタイプの選択
t2.microを選択しました。
サービスイン直後からある程度多いアクセスが見込めているサービスを稼働させるのであれば話は変わってくると思いますが、まずは最も安いインスタンスタイプでよいと思います。
東京リージョンで1時間単位の課金だと1か月1700円程度でした。
毎月支払いの1年利用だと1300円ぐらいです。
EBSの選択
t2.microはインスタンスストレージを持たないのでEBSが必要です。
EBSには以下の種類があります。
- 汎用(SSD)
- プロビジョンドIOPS(SSD)
- マグネティック
1GB当たりの価格はプロビジョンドIOPS > 汎用 > マグネティックの順で高いです。
マグネティックというのはいわゆるHDD(磁気ディスク)のことです。
デフォルトの選択値は汎用(SSD)なので、より多くのケースに対応できるのがこれなのだと思います。
EBSの料金表
http://aws.amazon.com/jp/ebs/pricing/
単純に、料金が高い=パフォーマンスが高い、かというとそうでもないようでした。
汎用SSDにはベースラインパフォーマンスというのが設定されており、3IOPS/1GiBとなっています。
これはつまり、EBS作成時に確保したサイズが大きい程パフォーマンスが高いということです。
また、「ベースライン」という通り、3IOPS/1GiBは最低限のパフォーマンスであり、
ベースラインを超えるI/Oが必要になった場合は一時的にバースト(最大3000IOPSまでパフォーマンスが上昇する)します。
もちろん必要な時にいつもバーストできるわけではなく、バーストするには「I/Oクレジット」という時間経過と共に自動的に取得するポイントのようなものを消費する必要があります。
1秒当たりに取得されるI/Oクレジットの量はEBSのサイズが大きい程多くなります。
I/Oクレジットが無くなってしまえばバーストできないので、ベースラインパフォーマンスのIOPSで動作することになります。
ですので、確保するサイズが極端に小さい場合のパフォーマンスは、おそらくマグネティック > 汎用SSDになるのではないかと思います。(試したわけではありません。)
今回は小さいサイズ(8GiB)での使用を考えているのでマグネティックを選択しました。
作成したインスタンスにローカルから接続する
インスタンス作成時に秘密鍵をダウンロードできるので、sshクライアントから接続します。
$ ssh -i 秘密鍵 ec2-user@ホスト
CPU情報
ところで2年くらい前、インスタンスを再起動するたびにcpuinfoが変わっていたのですが、
今awsのサイトを見るとt2インスタンス以外は具体的なCPU名が書いてあるので、
再起動してcpuが変わるということは無くなったのかもしれません。
$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 63 model name : Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz stepping : 2 microcode : 0x25 cpu MHz : 2394.538 cache size : 30720 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc rep_good nopl xtopology eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm xsaveopt fsgsbase bmi1 avx2 smep bmi2 erms invpcid bogomips : 4789.07 clflush size : 64 cache_alignment : 64 address sizes : 46 bits physical, 48 bits virtual power management:
メモリ情報
$ cat /proc/meminfo MemTotal: 1020188 kB MemFree: 537064 kB MemAvailable: 863980 kB Buffers: 11932 kB Cached: 415660 kB SwapCached: 0 kB Active: 292848 kB Inactive: 146492 kB Active(anon): 11748 kB Inactive(anon): 52 kB Active(file): 281100 kB Inactive(file): 146440 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 11764 kB Mapped: 6576 kB Shmem: 60 kB Slab: 31264 kB SReclaimable: 23996 kB SUnreclaim: 7268 kB KernelStack: 616 kB PageTables: 1876 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 510092 kB Committed_AS: 54704 kB VmallocTotal: 34359738367 kB VmallocUsed: 2448 kB VmallocChunk: 34359732739 kB AnonHugePages: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 8192 kB DirectMap2M: 1040384 kB
お金がもったいないのでインスタンスをシャットダウンしておきます。
$ sudo shutdown -h now