継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

Aurora MySQL の特定テーブルデータを SELECT INTO OUTFILE S3 を使って S3 にエクスポートする

タダです.

業務でデータ分析系に関わり始めたのですが,その技術調査として Aurora MySQL 互換から S3 へデータをエクスポートした時の検証を記事にまとめていきます.なお,Aurora のバージョンは 5.6.mysql_aurora.1.22.2 で検証してます.

準備

準備として Aurora 以外の設定箇所で次の作業が必要です.

  1. Aurora にアタッチする IAM ロールの作成
  2. Aurora から S3 へデータを出力するための VPC エンドポイントの作成とルートテーブルの設定

1. Aurora にアタッチする IAM ロールの作成

まず,IAM ロールの作成ですが Aurora から S3 へのアクセス権限を付与します.下記のドキュメントの SELECT INTO OUTFILE S3 を実行したいので,ドキュメント記載の通りに IAM ポリシーを設定しています.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:AbortMultipartUpload",
                "s3:DeleteObject",
                "s3:ListMultipartUploadParts",
                "s3:PutObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::[bucket name]/*",
                "arn:aws:s3:::[bucket name]"
            ]
        }
    ]
}

IAM ロール作成画面にて RDS – Add Role to Database を選択して RDS サービスで IAM ロールを使用できるように信頼関係は下記の通りにしています.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "rds.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

関連ドキュメント

docs.aws.amazon.com

2. Aurora から S3 へデータを出力するための VPC エンドポイントの作成とルートテーブルの設定

Aurora が配置されているネットワークから S3 への経路を確保するために VPC エンドポイント作成とルートテーブル設定を行いました.

Aurora DB クラスターがパブリックアクセス可能ではなく、VPC パブリックサブネットにある場合は、プライベートです。プライベートの DB クラスターがあり、このネットワーク設定を必要とする機能の 1 つを使用する場合があります。その場合、ネットワークアドレス変換 (NAT) を介してインターネットアドレスに接続できるよう、クラスターを設定します。Amazon S3 の代わりに、DB クラスターのルートテーブルに、Amazon S3VPC エンドポイントが関連付けられるように、VPC を設定することもできます。VPC での NAT の設定の詳細については、「NAT ゲートウェイ」を参照してください。VPC エンドポイントの設定の詳細については、「VPC エンドポイント」を参照してください。

関連ドキュメント

docs.aws.amazon.com

Aurora から S3 へのデータエクスポート

準備が終わったら Aurora 側の作業に移ります.

  1. Aurora に IAM ロール付与するために DB クラスターグループの設定変更
  2. Aurora に準備で作成した IAM ロール付与
  3. データをエクスポート用のデータベースユーザーへの権限付与

docs.aws.amazon.com

1. Aurora に IAM ロール付与するために DB クラスターグループの設定変更

DB クラスターグループのパラメーターに aurora_select_into_s3_roleaws_default_s3_role で準備していた IAM ロールの ARN を設定します.

2. Aurora に準備で作成した IAM ロール付与

Aurora クラスターの接続とセキュリティの画面から IAM ロールを指定して追加します.追加できると下記のように設定した IAM ロール

f:id:sadayoshi_tada:20200908214939p:plain

3. データをエクスポート用のデータベースユーザーへの権限付与

Aurora で作成されるデフォルトの管理者ユーザーで実行しないと思われるので,S3 へのエクスポートを実行するユーザーへの権限付与を次のクエリで行います.

GRANT SELECT INTO S3 ON *.* TO 'user'@'domain-or-ip-address'

検証では以下のリポジトリにあるテストデータを投入して,employees DB の departments テーブルをエクスポートしてみました.

github.com

S3 へ出力する SQL を発行します.構文はドキュメントに記載があるのですがその定義に沿って書きました.

SELECT * FROM departments INTO OUTFILE S3 's3://***/[日付]/employees/departments'
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\n'
    MANIFEST ON

指定した S3 バケットをみに行くとマニフェストファイルとデータのファイルが作成されていました.

f:id:sadayoshi_tada:20200908184118p:plain

注意点 Aurora から S3 へのデータエクスポートはできたのですが,検証していて個人的に気になったところを列挙していきます.

  • 検証で試したバージョンにおいては Aurora から S3 へのデータ出力はテキストファイルのみの対応で,CSVJSON でエクスポートしたファイルを扱いたい場合は別途処理が必要でした
    • ドキュメントに記載のようにFORMAT {CSV|TEXT} [HEADER] は Aurora MySQL バージョン 2.07.0 以降で対応しています
  • 検証ではそこまでデータがデカくなったため気にしなかったのですが,ファイルサイズの閾値があるためデータサイズが大きい時,複数ファイルが作られる場合もあることもあります

デフォルトのファイルサイズのしきい値は 6 GB です。ステートメントで選択したデータがファイルサイズのしきい値より少ない場合は、1 つのファイルが作成されます。それ以外の場合は、複数のファイルが作成されます。

  • また,データが25 GB を超える場合は S3 のファイルプレフィクスを変更しつつ複数回のクエリ発行が推奨されてます.

選択するデータが 25 GB を超える場合は、複数回の SELECT INTO OUTFILE S3 ステートメントを使用してデータを Amazon S3 に保存することをお勧めします。実行するステートメントごとに、保存するデータ部分を選択し、保存先として s3-uri パラメータに異なる file_prefix を指定します。選択するデータを複数のステートメントパーティション化すると、1 つのステートメントでエラーから回復しやすくなります。1 つのステートメントでエラーが発生した場合は、データの一部だけを再選択して Amazon S3 にアップロードする必要があります。複数のステートメントを使用すると、1 回のトランザクションの実行時間が短くなり、パフォーマンスも向上します。

まとめ

Aurora MySQL のデータを S3 にエクスポートする方法と注意点を整理しました.この記事では,S3 にデータを吐き出して終わりですが,ここからデータ分析として AWS や他のクラウドサービスと組み合わせていい感じに料理していけます.S3 を中心にデータ活用の幅を広げていきたいです.

参照記事

kakakakakku.hatenablog.com

Macbook の初期セットアップを Ansible で取り組む(2020年9月版)

タダです.

業務で使う PC を変えたのでそのセットアップを勉強の一環で Ansible でやってみました.セットアップしたのは次のマシンです.今回は備忘録として行った内容を記事に書いていきます.

準備

準備として brew と Ansible のインストールを行います.

% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
% brew install ansible

Ansible のバージョンは 2.9.11 です.

% ansible --version
ansible 2.9.11

定義ファイル

Ansible で導入するアプリケーションや導入したいコマンドを列挙していく Playbook ファイルと Ansible の実行先マシンを指定するインベントリのファイルを作成して実行しました.

setup.yml

- name: Mac Setup Setting
  hosts: 127.0.0.1
  connection: local
  vars:
    brew_taps:
      - homebrew/core
      - homebrew/cask
    brew_cask_apps:
      - clipy
      - docker
      - firefox
      - google-japanese-ime
      - iterm2
      - authy
    brew_packages:
      - git
      - jq
      - tree
      - wget

  tasks:
    - name: Homebrew tap
      homebrew_tap:
        name: "{{ item }}"
        state: "present"
      with_items: "{{ brew_taps }}"

    - name: Install Homebrew Cask Packages
      homebrew_cask:
        name: "{{ item }}"
        state: "present"
        install_options: "appdir=/Applications"
        accept_external_apps: yes
      with_items: "{{ brew_cask_apps }}"

    - name: Update Homebrew
      homebrew:
        update_homebrew: yes

    - name: Install Homebrew Packages
      homebrew:
        name: "{{ brew_packages }}"
        state: "present"

実行結果

PLAY [Mac Setup Setting] ********************************************************************************************************************************************************************************
TASK [Gathering Facts] **************************************************************************************************************************************************************************
[WARNING]: Platform darwin on host 127.0.0.1 is using the discovered Python interpreter at /usr/bin/python, but future installation of another Python interpreter could change this. See
https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information.
ok: [127.0.0.1]

TASK [Homebrew tap] *****************************************************************************************************************************************************************************
ok: [127.0.0.1] => (item=homebrew/core)
changed: [127.0.0.1] => (item=homebrew/cask)

TASK [Install Homebrew Cask Packages] ***********************************************************************************************************************************************************
changed: [127.0.0.1] => (item=clipy)
changed: [127.0.0.1] => (item=docker)
changed: [127.0.0.1] => (item=firefox)
Password:
changed: [127.0.0.1] => (item=google-japanese-ime)
changed: [127.0.0.1] => (item=iterm2)
changed: [127.0.0.1] => (item=authy)

TASK [Update Homebrew] **************************************************************************************************************************************************************************
ok: [127.0.0.1]

TASK [Install Homebrew Packages] ****************************************************************************************************************************************************************
changed: [127.0.0.1]

PLAY RECAP **************************************************************************************************************************************************************************************
127.0.0.1                  : ok=5    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

まとめ

業務 PC を新調したのでそのセットアップに Ansible を使ってみました.構成管理で Ansible を使っていきたいのでこの機会をきっかけに使っていければと思います.

参考記事

qiita.com

自分の仕事を見つめ直すきっかけをくれる『その仕事、全部やめてみよう』を読んだ

タダです.

Twitter でいろんな人が感想をツイートして気になっていた「その仕事、全部やめてみよう」を読み終えたので,書評記事を書いていきます.

目次

本書は以下の章立てになってます.総ページ数は222Pの本です.

  • 第1章 「谷」を埋めるな、「山」を作れ!
  • 第2章 「ハンマーと釘」の世界の落とし穴
  • 第3章 「ラストマン戦略」で頭角をあらわせ
  • 第4章 「To Stopリスト」をいますぐ作る
  • 第5章 職場は「猛獣園」である

著者の小野和俊さんはクレディセゾン常務執行役員CTOを勤められています.著者はプログラマでのキャリアをスタートし,サンマイクロシステム->アプレッソを渡って来られベンチャーも大企業での仕事も経験されて「どんな仕事にも共通する無駄を排して仕事を合理的にする」視点(メッセージ)と事例を本書で5つの章に分けて説明しています.

5つのメッセージから自分が感じたこと

各章のメッセージと事例を読んで自分が感じたことをまとめていきます.

第1章 「谷」を埋めるな、「山」を作れ! - 市場で勝つ

仕事で商品(プロダクト)の短所(谷)をどうにかするのはではなく長所(山)を伸ばそうが本章のメッセージです.競合が現れた時にその強みと自分たちの弱みを比較し,弱みを改善することに時間を使わず強みをより尖らせて優位性をとり,短所は最低限の機能にするなどある程度の割り切るアプローチが紹介されてます.なぜ短所改善に奔走しないのか,という問いには「短所がすでに競合製品が世の中に示した体験や価値」であるためとしています.確かに既に提供されているものと同じものを作っても差別化できません.

本章の事例としてマイクロソフト社の製品 BizTalk とアプレッソ社の DataSpider が競合していた時のお話は企業規模が全く異なる中で顧客の製品支持を集めた結果を収めた,山を作り続ける大切さがわかりやすい事例だと感じます.また,山を作るためのチームには Amazon の2ピザルールが適しているというのも少数精鋭で変化に強く,チームとして一丸になりやすいなど取り組む効果を理解できました.弱みを埋める時間はそれだけ強みを出す時間が取れなくなり,強豪とのビハインドになってしまうため優先すべきは強み出しだなと見方が変わった章でした.

第2章 「ハンマーと釘」の世界の落とし穴 - 正しく実行する

仕事で自分が興味のある技術やスキルに気を取られず,「その仕事は誰のどんな喜びに寄与するのかを理解すること」が本章でのメッセージです.ありがちですが流行りの技術を使いたくてその技術を採用する話を聞きますが,より良い技術も大切ですがその先の利用者に満足してもらえるものかは考えなくてはならないでしょう.自分の仕事の提供先が喜んでもらえないものを出しても魅力がないと同義だと思います.仕事でアイデアを出したりする時,アクションをとっていく中でちゃんと目的を見間違わないことを筆者は繰り返し話しています.例えば,近年のバズワードである DX も言葉が一人歩きして DX をやることが目的化して解決したい課題,その先の喜んでくれたり驚いてくれる姿をイメージして正しく取り組むことが大切だと再確認できたなと思います.

第3章 「ラストマン戦略」で頭角をあらわせ - 自分を磨く

個人の成長船長戦略として日々の仕事に「見せ場」を作って特定の領域で秀でた「ラストマン戦略」を立てるのが本章のメッセージです.

「ラストマン戦略」とはグループ内で自分が一番になれそうな領域を決め、「あの人がわからないなら、誰に聞いてもわからないよね」という、いわば最後の砦ともいうべきスペシャリストを目指す成長戦略だ。

本章のエピソードの中でエンジニア風林火山というのがあります.風林火山の漢字に当てはめてそれぞれの役割を担ったエンジニアを紹介し,人にはそれぞれの強みの伸ばし方があり,他人の優れた能力は取り入れて自分自身の成長の形を模索し続けるというのは自分が思っていたことだったので著者の考えとリンクした章でした.自分の体験でも脳筋キャラを会社内で確立した時に筋トレ,ダイエット,食事ならタダに聞くといいかもという流れができた経験があります.その頃会社で減量してボディビル大会に出るのは自分だけでした.そういう意味でラストマン戦略が叶った経験でした.引き続き技術でも頑張りますw

関連記事

blog.livedoor.jp

第4章 「To Stopリスト」をいますぐ作る - 生産性を上げる

自分がやらなきゃいけないことを「To Do リスト」にしている人は多いのではないでしょうか?逆にやめても影響がない仕事を列挙する「To Stop リスト」を作って棚卸しするのが本章でのメッセージです.本章では,リストを作るタイミングや見直す業務対象を具体的に説明してくれているので,棚卸ししてみると実はやらなくてもいい仕事があるかもしれません.

日々の業務の中で状況は刻々と変化するはずなので,自分の要不要なタスクを見直して本質的に時間を割くべきことを選別するのは未来の自分やチームへの時間投資だと思いました.アジャイルインセプションデッキにも「To Stopリスト」と同じようにやらないことリストを作るというのがあるなと思いました.

関連記事

note.com

第5章 職場は「猛獣園」である - チームで戦う

チームとして成果を上げるためにどうするかはチームによって事情や状況は違うと思いますが,筆者がベンチャーと大企業でのそれぞれの経験が本章で事例紹介されてます.タイトルにあるように猛獣園のようなチームはベンチャー時代の多様性かつ突き抜けた人材が溢れてた頃のお話です.筆者の経験として突出した能力のある人は癖があるというものですが,自分も出会ったことあります.癖のある人と他のメンバーがどう関わればチームとしてパフォーマンスを出せるかを突き詰めればより強いチームになれると思います.アプローチとして各々の意見の時間確保とその傾聴,締めるところは締める,相手のことを全力で理解する,ファインプレーを賞賛する等がアプローチとして紹介されています. 自分の存在とパフォーマンスが正当に評価されており,意見も考慮・取り込んでもらえるのであれば不満は低く抑えられそうです.

また,チームの中での強力なプレイヤーがいるときのその人が強い分他の人が依存しているのを改善する方法や採用がなかなかうまくいかない時の対処なども本章で触れられ,チームで活動しているところに関連する視点をみれるので自分もまた行き詰まった時に立ち返りたいと感じました.

まとめ

その仕事、全部やめてみよう」の章ごとで感じたことを書きました.本書では5つのメッセージから仕事の取り組みを見直す視点を学ぶことができますが,この視点とは別に「仕事を楽しむこと」も触れられていました.仕事は1日の大半の時間を充てるものなのでこの仕事は楽しい!と思えたらイキイキと取り組めると思うし,充実度が違うはずです.自分の大好きな漫画のハイキューでも同じようなエピソードがあるので,それを紹介して締めます.話の中で全国のトップ選手から凡庸なプレイをしていた選手に対してこんな問いかけをしているシーンがあります.

「月島くんさ、バレーボール楽しい?」

「いえ、特には」

「それ(楽しいと思えないの)はさ、下手くそなんだからじゃない?」

たかが部活と思いなんで全力で取り組むのかがわからなかった月島にバレーボールを全力で楽しんでいればそんなこと気にしなくてよくなる上に力が伸び,また別の景色を見えることができるかもしれないことを伝えたシーンだなと思います.そして,この煽りシーン後の試合で月島が覚醒し,主人公たちは地方大会を勝ち抜き全国行きの切符を手にします.本書の終わりにも家庭教師の先生とのエピソードで受験勉強の先にある「楽しさ」を伝えてくれたお話がありました.本書を読み終えて自分の仕事の無駄を取り払って合理化し,仕事を楽しむことを追求していくことでこれからもワクワクし続けたいと思えた本でした.本書は仕事の業種に関係なく楽しめる内容だと思うので気になる方は一読してみてはどうでしょうか?

機械学習の専門知識を証明する『AWS 認定 Machine Learning Speciality』の試験勉強でやったことを整理する

タダです.

データ分析に興味がありその勉強の一環で,8/21 に「AWS 認定 Machine Learning Speciality」を受けて合格しました.今回は自分がどんな勉強をしたかを振り返り,今後受験される方の勉強の参考になれば嬉しいです.

試験範囲について

試験範囲については試験のガイドで確認できます.課題に対する機械学習の手法を選択できる能力,AWS サービスを特定する能力,拡張性・コスト最適化・信頼性ある・セキュアなソリューションを設計し実装する能力が問われそうだと認識しました.

この試験では、特定のビジネス上の課題に対応する ML ソリューションの設計、実装、展開、保守を行う能力を評価します。この試験で評価する能力は次のとおりです。

・ 特定のビジネス上の課題に対して適切な ML の手法を選択し、その理由を明確に説明する。

・ ML ソリューションを実現するうえで適切な AWS サービスを特定する。

・ スケーラビリティに優れ、コスト最適化され、信頼性が高く、セキュアな ML ソリューションを設計し、実装する。

aws.amazon.com

試験の割合が以下のようになっています.

試験分野 試験における比重
分野 1: データエンジニアリング 20%
分野 2: 探索的データ解析 24%
分野 3: モデリング 36%
分野 4: 機械学習の実装と運用 20%

試験勉強で注力したこと

次に,試験に向けて注力して勉強したことをまとめていきます.大きく3つのことをやりましたが,自分は機械学習に興味はあるものの業務でデータを集めてきてモデルを開発したり,その基盤を作るといったことはしたことがなかったです.そのため専門知識は本や解説記事をみて学んでいかなきゃいけなかったので,2と3をずっと繰り返し勉強していました.

1. 問われるトピックを確認する

サンプル問題や模擬試験を解くことでどのような問題が問われるのかを確認しました.出題の割合通りモデリングと探索的データ解析パートの出題割合が高く感じたためこの分野に重きを置いた勉強をしていきました.公式ブログにも記載がありましたが,SageMaker,EMR,Lambda,Glue,S3 のトピックは勉強しようと思いました.

この新しい試験は、特定のビジネス上の問題に対して ML ソリューションを設計、実装、デプロイ、保守する能力を検証したい開発者およびデータサイエンティストのために AWS の専門家によって作成されました。

さらに、特定のビジネス上の問題に適した ML アプローチを選択して正当化し、ML ソリューションを実装するのに適切な AWS のサービスを特定し、スケーラブルでコスト最適化された信頼性の高い安全な ML ソリューションを設計および実装する能力を検証します。AWSレーニングと認定では、ML および人工知能 (AI) サービス、特に Amazon SageMaker、および Amazon EMR、AWS Lambda、AWS Glue、Amazon S3 などのその他のサービスの使用に関して 1 年以上の実務経験があることをお勧めしています。

aws.amazon.com

また,「Exam Readiness: AWS Certified Machine Learning - Specialty」をみて試験分野で必要な勉強のトピックを確認しました.

www.aws.training

2.機械学習の基礎や機械学習の開発フローを学ぶ

自分は教師あり学習教師なし学習といった入り口の勉強はしていたたものの,機械学習アルゴリズムごよの特徴やモデルの開発フローの基礎を理解できていませんでした.そのため,書籍を使って勉強を進めました.アルゴリズムの知識の整理には「見て試してわかる機械学習アルゴリズムの仕組み 機械学習図鑑」を使いました.主要なアルゴリズムの解説,図解,実装イメージを簡潔に説明していてアルゴリズムの具体的なイメージを掴むのに助かりました.

モデルの開発に関する勉強は「仕事で始める機械学習」の1~6章を見て行いました.機械学習プロジェクトが立ち上がってからシステムにモデルを組み込み,評価を行うまでを簡潔に書かれていて開発フローを掴みたいと思っていた自分にとってありがたい一冊でした.

仕事ではじめる機械学習

仕事ではじめる機械学習

Youtube 動画

書籍だけで理解が深まらない場合は,Youtube の動画を見ました.中でもスタビジというチャンネルにお世話になりました.機械学習のトピックを5分~12分ほどで解説してくれているので書籍で勉強した専門知識の整理をするために見ていました.

3. 機械学習の知識とサービスの理解を深める

AWS機械学習関連のサービスが紹介されているためこのページに載っているサービスを中心にドキュメントやよくある質問を確認して理解を深めました.機械学習のためにデータを収集->保存->処理->分析->デプロイの工程ごとに登場するサービスや機能を整理しました. aws.amazon.com

また,「AWS ではじめるデータレイク」にも関連のトピックが出てくるのでこの本にもサービスの理解で助けられました.

関連記事

sadayoshi-tada.hatenablog.com

BlackBelt シリーズおよびYoutube 動画

ドキュメントと合わせて BlackBelt シリーズおよび Youtube の動画を見ました.SageMaker を中心に資料及び解説動画を確認しました.

SlideShare

Youtube

youtu.be

youtu.be

AWS Well-Architected レンズ

SageMaker の設計や運用周りのドキュメントがないかと探していた時に「AWS Well-Architected レンズ」を確認していきました.機械学習だけではないですが,トピックごとに AWS Well-Architected の5つの柱に当てはめた観点で解説してくれてます.日本語も2020年4月にリリースされているので読みやすかったです.

レンズは AWS Well-Architected が提供するガイダンスを、機械学習、分析、サーバーレス、ハイパフォーマンスコンピューティング (HPC)、IoT、金融サービスなどの特定の業界およびテクノロジー領域にも広げます。ワークロードを完全に評価するには、AWS Well-Architected フレームワークと 5 つの柱とともに、適切なレンズを使用します。

docs.aws.amazon.com

まとめ

AWS 認定 Machine Learning Speciality」に向けて勉強した内容をおおまかにまとめました.次は,Database Speciality に挑みたいと思います!

関連記事

sadayoshi-tada.hatenablog.com

『AWS Copilot CLI』 v0.3.0 で追加された機能を整理する

タダです.

AWS Copilot CLI」がv0.3.0が8/14にリリースされました.v0.2.0が出たのが7/21だったので一カ月後に新しいバージョンがリリースされて開発が早いなと思います.この記事でv0.3.0のリリースノートを参照してどのような機能が追加されたかを整理しておきます.

github.com

Manifest ファイルで context とビルドの引数を指定可能に

Manifest ファイルでビルドコンテキストを指定する contextargs でビルドの引数を指定可能になりました.なお,既存のパイプラインでこの機能を利用するにはcopilot pipeline initで再度buildspec.ymlを生成する必要があります.

github.com

task run コマンドの追加

単発の ECS タスク実行やバッチジョブのデプロイを行えるcopilot task runコマンドが追加されました.

copilot task runコマンドのパラメータ情報は下記の記事にまとめています. sadayoshi-tada.hatenablog.com

既存 VPC とサブネットを使用したり,CIDR のオーバーライドが可能に

copilot env initコマンドで既存の VPC やサブネットを使いたい場合や CIDR をオーバーライドしたい場合に対応できるようになりました.

既存リソースを使う時のオプションとして次の3つが追加されてます.

  • --import-vpc-id
  • --import-public-subnets
  • --import-private-subnets

また,オーバーライドをしたい場合のオプションとして次の3つが追加されています.

  • --override-private-cidrs
  • --override-public-cidrs
  • --override-vpc-cidr

追加されたパラメーターも下記の記事で更新しています. sadayoshi-tada.hatenablog.com

環境の初期化時に一時認証の利用が可能に

copilot env initコマンド実行時に一時認証情報を使うことができるようになりました.引用文にもあるようにテストや本番環境を作る時だけに必要なクレデンシャルだから AWS CLI で常時使っているものではなく一時認証情報を使うのが安全に寄与するためこの機能が追加されたようです.

Unlike the Application credentials section, the AWS credentials for an environment are only needed for creation or deletion. Therefore, it's safe to use the values from temporary environment variables. Copilot prompts or takes the credentials as flags because the default chain is reserved for your application credentials.

github.com

全てのコマンドを確認しきれてませんが,copilot env initのパラメーターに AWS CLI のクレデンシャルに関するものが追加されてます.この辺のアップデートも「AWS Copilot CLI」をセキュアに開発されたいのだなという意図を感じます.

Linux 用に ARM64 のビルドターゲットにサポート

Linux 用の ARM64 がサポートされました.「AWS Copilot CLI」のMakefilebuildspec.ymlの中に更新がありました.

github.com

まとめ

AWS Copilot CLI」のv0.3.0で追加された機能やアップデートを整理しました.今後もツールのリリースに追随していきどんなことができるのかを把握していきたいと思います.「AWS Copilot CLI」のことを気になっている人の参考になれば嬉しいです.

関連記事

sadayoshi-tada.hatenablog.com

sadayoshi-tada.hatenablog.com

sadayoshi-tada.hatenablog.com

sadayoshi-tada.hatenablog.com

sadayoshi-tada.hatenablog.com