AWS
AWS Advent Calendar 2014
AWSAdvent CalendarEC2EIPTerraformVPC

AWS Advent Calendar 2014

今回の投稿内容は、AWS Advent Calendar 2014
になります。

AWS Advent Calendar 2014

今回の取り上げるテーマ

今回はEIPを取り上げます。EIPを付ける際はどうされてますか?
私は先ほど仕事で10個EC2インスタンスにEIPをつけようとしました。
yumによるインストールするによりリポジトリと通信を行うためです。
Managment Consoleでの選択してEIPを設定するのは正直手間がかかりました。

Managment Consoleでの作業

VPC_Management_Console.png

発行されたEIPで接続するために、sshのconfigを作成したり
EC2へのインストール作業後にEIPを外す作業もなかなか手間がかかるものです。

Terraformによるeipのオーケストレーション

最近Terraformを覚えたので、もしかしたらそちらでできるのではないかと思いつきました。
すると調べたところ、作業が簡単になる見込みがありました。
HashicoprのTerraformにより、一斉設定を行います。

Terraformファイルの準備

[01:41:52][f_prg@mba:eip]# cat eip.tf
provider "aws" {
    access_key = "XXXXXXXXXXXXXXXXXXXX"
    secret_key = "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY"
    region = "ap-northeast-1"
}

resource "aws_eip" "hoge" {
    instance = "i-AAAAAAAAA"
    vpc = true
}

resource “aws_eip”
の4行を複数記述すれば、複数のインスタンスに実行ができるようになります。

Terraformの実行

[01:41:53][f_prg@mba:eip]# terraform plan
Refreshing Terraform state prior to plan...


The Terraform execution plan has been generated and is shown below.
Resources are shown in alphabetical order for quick scanning. Green resources
will be created (or destroyed and then created if an existing resource
exists), yellow resources are being changed in-place, and red resources
will be destroyed.

Note: You didn't specify an "-out" parameter to save this plan, so when
"apply" is called, Terraform can't guarantee this is what will execute.

+ aws_eip.hoge
    allocation_id:  "" => "<computed>"
    association_id: "" => "<computed>"
    domain:         "" => "<computed>"
    instance:       "" => "i-AAAAAAAAA"
    private_ip:     "" => "<computed>"
    public_ip:      "" => "<computed>"
    vpc:            "" => "1"


[01:41:58][f_prg@mba:eip]# terraform apply
aws_eip.hoge: Creating...
  allocation_id:  "" => "<computed>"
  association_id: "" => "<computed>"
  domain:         "" => "<computed>"
  instance:       "" => "i-AAAAAAAAA"
  private_ip:     "" => "<computed>"
  public_ip:      "" => "<computed>"
  vpc:            "" => "1"
aws_eip.hoge: Creation complete

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

The state of your infrastructure has been saved to the path
below. This state is required to modify and destroy your
infrastructure, so keep it safe. To inspect the complete state
use the `terraform show` command.

State path: terraform.tfstate

各々のインストールはchefやansibleで行います。

今回は割愛します。
EIPが付いているので、packageやyumによる
パッケージインストールができるようになります。

Terraform destroyの破棄

EIPが解放されます。

[01:48:18][f_prg@mba:eip]# terraform destroy
Do you really want to destroy?
  Terraform will delete all your managed infrastructure.
  There is no undo. Only 'yes' will be accepted to confirm.

  Enter a value: yes

aws_eip.hoge: Refreshing state... (ID: eipalloc-AAAAAAAAA)
aws_eip.hoge: Destroying...
aws_eip.hoge: Destruction complete

Apply complete! Resources: 0 added, 0 changed, 1 destroyed.

まとめ

-public ipを付与できないEC2インスタンスには有効です。
-EC2インスタンスIDを入力するのはまだ手間がかかりました。
-プライベートサブネット配下のEC2インスタンスにインストール作業するときに大変便利だなぁと思いました。
-Terraformファイルを作成する工夫でもっと簡単になるのかとも思いました。

AWS
JAWS-UG Advent Calendar 2014 8Days
AWSAdvent CalendarJAWS-UG

今回の投稿内容は、
JAWS-UG Advent Calendar 2014
の8日目になります。

早いもので去年の記事より1年近くになりました。
JAWS-UGに関わってからの今まで、そしてこれから
読み返したら、とても懐かしかったです。

今年は
3月に脱藩し、
5月に退職し、
6月よりcloudpack(正確には、アイレット株式会社cloudpack事業部)に入社し
現在インフラエンジニアとして働いております。

当然ながらAWSをはじめ、ルータもPCIDSSなどいろいろ触れました。
よく忙しいと聞かれますが、まあそれなりに忙しい感じです。
この前AWSソリューションアーキテクト- アソシエイトレベル
の資格も取れました。

イベント関連では
3月にJAWSDAYS 2014
7月にJAWS-UG 三都物語 2014
9月にJAWS FESTA 2014
この1年もどっぷりとAWSでした。

JAWS FESTA 2014で、JAWS-UGで初のパイ投げをいただいたことは
楽しかった思い出です。

人生というのは、本当に変わるものなんだと実感しております。
人生の中の仕事というもののターニングポイントになったと思っております。

転職の際にお世話になった方々に
コミュニティに迎えていただいた方々に
感謝を申し上げます。
そしてこれからも宜しくお願いします。

最後に、JAWS-UG 三都物語 2014の
次の日のJAWS-UG 新世界を述べさせていただきます。
本当は行く予定はなかったのですが、
誘っていただいたことに本当に感謝を申し上げます。
一生忘れない、忘れてはいけない大切なものをいただきました。
ありがとうございました。