AWS Certified Solution Architect Associate受験

年末にCloud Practitionerに合格したので、お正月休みに少し勉強してSolution Architect Associateを受験してみた。

やったこと

  • 黒本ざっと読んで章末問題を2回ほど解く。

book.impress.co.jp

  • A Cloud GuruのCertified Solution Architect AssociateコースのQuizを3回くらい。

結果

合格しました

所感

  • Cloud Practitionerでざっと覚えたばかりなので、特に苦労なく
  • 当然と言えば当然なんだけどアーキテクチャ的な内容を問う問題が多く、そういうのは問題文が長いので読むの面倒だった
    • 特にCloudGuruで英語読むの。。。

AWS Certified Cloud Practitioner 受験

AWS Certified DevOps Engineer Professionalを取るよう言われてるけど、まずはということでCloud Practitionerの試験を受験してみた。 お勉強は基本こちらの本。知識としては業務でAWS使い始めて4、5ヵ月というレベルです。

Amazon CAPTCHA

やったことは本読んで、問題解いて、問題だけもう一回やって、A Cloud GuruでQuizを解いて練習という感じでした。 いかんせん本買ってからモチベーションが維持できずだらだらと3、4ヵ月たってしまったのが反省点。

無事合格。

Downstreamジョブから情報を収集する

JenkinsにおいてジョブAから別のジョブBを呼び出した後、ジョブAの中でジョブBに関連する情報を参照したいケースがあったりしますよね。例えば、ジョブBの中でAMIを作成し、ジョブAでは作成されたAMIのami-idを知りたいとか。こんな時どうするか。

ざっくり言うと下記。 - 取得したい情報をジョブBの中で環境変数に設定する - ジョブAでは、ジョブBのジョブ情報から環境変数を取得する

下記がジョブのサンプル。 - ジョブB (呼び出される側)

node {
    stage("set env") {
        env.DOWNSTREAM_MSG = "Hello, upstream"
        echo env.DOWNSTREAM_MSG
    }
}
  • ジョブA (呼び出す側)
node {
    stage('call downstream') {
        def my_job = build job: 'downstream-job', wait: true
        echo my_job.getBuildVariables().DOWNSTREAM_MSG
    }
}
  • ジョブAでは、build jobを利用してジョブBを呼び出している
  • このbuild stepは、RunWrapperオブジェクトを返す
  • RunWrapperオブジェクトにあるgetBuildVariables()メソッドは当該ジョブ(downstreamジョブ)の中で設定された環境変数のmapを返す
  • keyは環境変数名で、valueがその値
  • このmapから取得する

参考

Pipelineから別のジョブを実行する

Jenkinsにおいて、あるジョブA(upstream)から別のジョブB(downstream)を呼ぶ方法を調べたのでメモ。 呼ばれる側のジョブB(downstream job)が下記のようなケースを考える。

  • ジョブB
// 下記変数はJenkinsのパラメタとして定義してあるとする
FIRST_MESSAGE: (default/string) hello
SECOND_MESSAGE: (default/string) how are you
THIRD_MESSAGE: (default/string) good-bye


node {
    stage('print parameters') {
        print FIRST_MESSAGE
        print SECOND_MESSAGE
        print THIRD_MESSAGE
    }
}

上記のジョブを別のジョブA(upstream job)から実行したい場合、buildステップを利用する。以下、サンプル。呼び出されるジョブBの名前をprint_messageとしているケース。

  • ジョブA
node {
    stage('chain job (no params)') {
        build job: 'print-message', wait: true
    }

    stage('chain job (pass params)') {
        build job: 'print-message', parameters: [
            string(name: 'FIRST_MESSAGE', value: 'This is a message from parents')
        ], wait: true
    }
}
  • 1つめのbuild jobはパラメタなしでジョブを呼び出し
  • 2つめのbuild jobはパラメタFIRST_MESSAGEを設定してジョブを呼び出し

参考

CKADを受けてみた

冬休みの宿題ということでCKADを受けてみることにした。こういう資格は初めて、かつ、最近Kubernetesに触れていなかったので、テスト対策としてお勉強。

テスト向けにやったこと

昔やったこと

  • 入門kubernetes読む
  • 公式ドキュメントやTutorialを読む/試す

結果

  • 合格できました

反省

  • JobとかProbeとかLog周りを勉強しておけばよかった
    • うる覚えで調べながら進めたので時間がかかってしまった
  • 当初、yamlの編集にemacs使ってたけど、ctrl-sがブラウザ側でハンドルされてしまうみたいで、コンソールが反応/表示しなくなること多数。コンソールをリセットしたり、相当時間を無駄にした。素直にvi使っておくべきだった。

gcloudコマンドでgcpに作成したインスタンスにアクセスする

直に忘れるからメモを残しておく。公式ドキュメントはこちら

gcloudコマンドは、Google Cloud SDKの一部で、GCPのいろいろなサービスをこのコマンドで管理できる。 OpenStackにおけるopenstackコマンドみたいなもの。

インストール

gcloudコマンドはGoogle Cloud SDKの一部なので、このSDKをダウンロードし、インストールする。 fedoraの場合はyumコマンドで入れられる

$ sudo tee -a /etc/yum.repos.d/google-cloud-sdk.repo << EOM
[google-cloud-sdk]
name=Google Cloud SDK
baseurl=https://packages.cloud.google.com/yum/repos/cloud-sdk-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
       https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOM
$ sudo dnf install google-cloud-sdk

初期化

$ gcloud init

いろいろと聞かれるので、適宜設定していく。

使ってみる

$ gcloud compute ssh <instance名>
[hoge@instance  ~]$