aws memo

AWS関連の備忘録 (※本ブログの内容は個人的見解であり、所属組織及び企業の意見を代弁するものではありません。1年以上古いエントリは疑ってかかってください)

AWS CLIで Scheduled Reserved Instanceを起動する

前提1:事前にScheduled Reserved Instanceを購入済みで、scheduled instance idが有効であること

前提2:購入したScheduled Reserved Instanceで指定した時間帯であること

 

まずはlaunch-specification.jsonを作成する

launch specification json for RunScheduledInstance ...

その上で

AWS CLI example for run-scheduled-instances

すると、以下の様な結果となる

{

    "InstanceIdSet": [

        "i-e58f7722"

    ]

}

EMRがHIPAA対応

HIPAAとは?という方はこちらを参照。

HIPAA と AWS - アマゾン ウェブ サービスでのヘルスケア | アマゾン ウェブ サービス(AWS 日本語)

 

2015年7月29日に、HIPAA on AWSホワイトペーパーが更新された。

Updated HIPAA Whitepaper Now Available - AWS Security Blog

HIPAA Compliancy on AWS: Amazon DynamoDB, Amazon RDS, and Amazon EMR Now Covered Under the AWS Business Associate Agreement | AWS Partner Network (APN) Blog

ハイライトは、2点。

今までHIPAA対応サービスは EC2, S3, Glacier, Redshiftだったのが、RDS(MySQL, Oracle)、DynamoDB, EMRに対応したこと。

KMSで PHI(Personal Health Information)の暗号化する方法がホワイトペーパーに記載されていること。

Using AWS KMS for Encryption of PHI

Master keys in AWS KMS can be used to encrypt/decrypt data encryption keys used to encrypt PHI in customer applications or in AWS services that are integrated with AWS KMS. AWS KMS can be used in conjunction with a HIPAA account, but PHI may only be processed, stored, or transmitted in HIPAA-eligible services. KMS does not need to be a HIPAA-eligible service so long as it is used to generate and manage keys for applications running in other HIPAA-eligible services. For example, an application processing PHI in Amazon EC2 could use the GenerateDataKey API call to generate data encryption keys for encrypting and decrypting PHI in the application. The data encryption keys would be protected by customer master keys stored in AWS KMS, creating a highly auditable key hierarchy as API calls to AWS KMS are logged in AWS CloudTrail.

 HIPAAに抵触するような医療情報を保存し、EMRで解析などを行う場合のコンプライアンスのハードルが少し下がることになる。

 

 

 

 

 

AWS MarketplaceでのICEL (Intel Cloud Edition for Lustre* ) メモ

Intelが提供している分散並列ファイルシステム ICELは、AWS MarketplaceからCloudformationで簡単に起動し利用することができます。

Intel Cloud Edition for Lustre on Amazon Web Services - HPDD Community Space - HPDD Community Wiki

 

今まで(Software費用が)無償で使えていたIntel Cloud Edition for Lustre* Community Version (1.1.1)は、2015/8/11で新規起動ができなくなった模様。(サポートは2015/11/9までとのこと)

f:id:understeer:20150812124745p:plain

 

アップグレードパスとして、新たに以下の3つがMarketplaceに登場している。

Intel Cloud Edition for Lustre* software - Premier Support (8x5) on AWS Marketplace

 Software費用はインスタンスタイプ毎に変わる(インスタンス費用に約30%プラス?)。加えて、 Monthly Subscription Feeが $500/mo でかかる。C3, C4が選択可能。

Intel Cloud Edition for Lustre* software - Global Storage on AWS Marketplace

 Software費用はインスタンスサイズに拘らず$0.08/hr。m2, i2 c3, c4が選択可能。

Intel Cloud Edition for Lustre* software - Evaluation on AWS Marketplace

 Software費用は無償のかわりに、サポートを含んでいない。また、t2, m3と小さいインスタンスしか選べないので、動作検証用か。

 

CentOS6.7 AMI公開

RHEL6.7, CentOS6.7がリリースされた。

Red Hat Enterprise Linux 6.7 Release Notes

Manuals/ReleaseNotes/CentOS6.7/Japanese - CentOS Wiki

CentOSVM Import で持ち込んだAMIを公開(利用は自己責任で) 

AMI Tokyo Oregon Virginia
CentOS6.7HVM ami-b644fcb6 ami-4d5d577d ami-5b359c30
CentOS6.7HVM-SR-IOV ami-2e45fd2e ami-b15d5781 ami-53359c38
CentOS6.7HVM-SR-IOV-maxcpus=18 ami-a846fea8 ami-4f5d577f ami-5f359c34

※ ec2-userでログインしてください

RHEL6.7は、Red Hat社が提供しているAMIがSR-IOV化されているので、そのAMIをベースに18コア設定版を作成。

AMI Tokyo Oregon Virginia
RHEL6.7HVM-SR-IOV(provided by Red Hat, Inc.) ami-78379d78 ami-75f3f145 ami-0d28fe66
RHEL6.7HVM-SR-IOV-maxcpus=18 ami-efc7fe81 ami-7748ac17 ami-ace3c0c6

 

Spot Fleetで複数AZ指定ができるようになった

ので、メモ。

Spot fleet launches Spot instances in the lowest priced Availability Zone

本日(2015年7月24日)からSpotフリートの機能にて、spot fleet launch specificationで指定した複数VPCサブネットもしくはAZの中で最も安いAZにSpotインスタンスを起動するようになりました。以前は、複数サブネットの中で最安値のサブネットに起動したい場合には、自分自身で最安値のAZを決定し、Spotフリートリクエストを実行する必要がありました

ということで、spot fleet launch specificationの記載方法の自由度が増しました。

設定例(spot.json)

ここでは、 C3.8xlargeCC2.8xlargeを、subnet-aaaaaa (AZ-a)か subnet-bbbbbb(AZ-b)の組み合わせ4パターンのうち、最安値のパターンで、10台、$0.50で入札する、といった例。

{
    "SpotPrice": "0.50",
    "TargetCapacity": 10,
    "IamFleetRole": "arn:aws:iam::111111111111:role/SpotFleet",
    "LaunchSpecifications": [
       {
           "ImageId": "ami-xxxxxxx",
           "InstanceType": "cc2.8xlarge",
           "SubnetId": "subnet-aaaaaaaa"
       },
       {
           "ImageId": "ami-xxxxxxx",
           "InstanceType": "cc2.8xlarge",
           "SubnetId": "subnet-bbbbbbbb"
       },
       {
           "ImageId": "ami-xxxxxxx",
           "InstanceType": "c3.8xlarge",
           "SubnetId": "subnet-aaaaaaaa"
       },
       {
           "ImageId": "ami-xxxxxxx",
            "InstanceType": "c3.8xlarge",
           "SubnetId": "subnet-bbbbbbbb"
       }
    ]
}

実行

aws ec2 request-spot-fleet --region ap-northeast-1 \

  --spot-fleet-request-config file://spot.json

 Request時点で最安値のゾーン・タイプが10台 spot requestとして入札される。

連続するIPアドレスで複数台のインスタンスを起動する〜追加EBSも添えて〜

172.16.11.101〜 17216.11.120 まで、連続したIPアドレス群でインスタンス起動したいとうような事があります(hostsファイル必要なアレとか)。一緒にEBSをががっと付けたい時もあります。CLIでやった時のメモ。

 

まずはEBS構成。Block Device Mappingを指定した bdmapping.json を用意。

[
  {

    "DeviceName": "/dev/sdb",
    "Ebs": {
      "VolumeSize": 100,
      "DeleteOnTermination": true,
      "VolumeType": "gp2"
    }
  },
  {
    "DeviceName": "/dev/sdc",
    "Ebs": {
      "VolumeSize": 100,
      "DeleteOnTermination": true,
      "VolumeType": "io1",
      "Iops": 3000
    }
  }
]

上記だと、 /dev/sdbに 100GBの汎用SSD EBS  を、/dev/sdcに 100GB 3000IOPSの PIOPS EBSをアタッチする指定。

 

で、以下の様な感じで実行する。

for IP in `seq 101 120`
do
  aws ec2 run-instances \
    --region us-west-2 \
    --image-id ami-xxxxxx \
    --security-group-ids sg-yyyyyyy \
    --key-name id_rsa \
    --instance-type c4.8xlarge \
    --placement GroupName=C4 \
    --subnet-id subnet-zzzzzzz \
    --block-device-mappings file://bdmapping.json \
    --private-ip-address 172.16.11.$IP

done

上記例だと、 172.16.11.101〜172.16.11.120までの20台の C4.8xlargeを、 Placement Group名 C4 内に起動する事になる。

 

RHEL6.7 AMIがデフォルトでSR-IOV対応した

RHEL6.7 AMIが公開されました。

RHEL6.7のリリースノートはこちら↓

access.redhat.com

 

Amazon Linuxと同じようにSR-IOVがデフォルトでOnとなっていて、 SR-IOV対応インスタンスタイプ(C4/C3/D2/I2/M4/R3)だと、何も気にせずに拡張ネットワーキングが使えます。

東京リージョンだと RHEL6.7 AMIは ami-78379d78 なので、確認してみると

$ aws ec2 describe-images --region ap-northeast-1 --image-id ami-78379d78 | jq '.Images[]|{Name, ImageId,VirtualizationType,SriovNetSupport}'
{
"SriovNetSupport": "simple",
"VirtualizationType": "hvm",
"ImageId": "ami-78379d78",
"Name": "RHEL-6.7_HVM_GA-20150714-x86_64-1-Hourly2-GP2"
}

と、最初からAMIで SriovNetSupportが有効になっています。

起動したインスタンスにログインして確認。

$ curl http://169.254.169.254/latest/meta-data/instance-type

c4.large

$ cat /etc/redhat-release

Red Hat Enterprise Linux Server release 6.7 (Santiago)

 

$ uname -a

Linux ip-10-0-1-6.ap-northeast-1.compute.internal 2.6.32-573.el6.x86_64 #1 SMP Wed Jul 1 18:23:37 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux

 

$ ethtool -i eth0

driver: ixgbevf

version: 2.12.1-k

firmware-version:

bus-info: 0000:00:03.0

supports-statistics: yes

supports-test: yes

supports-eeprom-access: no

supports-register-dump: yes

supports-priv-flags: no

 これでカジュアルに使えますね。

RHEL-6.7_HVM_GA-20150714-x86_64-1-Hourly2-GP2 のAMIはこちらのリンクから起動できます。

・Virginia : ami-0d28fe66

・Oregon: ami-75f3f145

・Tokyo: ami-78379d78