- 1. IAMロールとGitHub Actionsの統合によるデプロイのセキュリティ強化
- 2. 自宅でのAWS認定試験を体験
- 3. AWSのDHCPセットに複数のnameserverを指定しても意味がない
- 4. TerraformでSNSからLambdaにPub/SubするLocalStack環境を作ってみよう
- 5. 【AWS】用語を整理しながら学ぶAWS AWS SDK for Python (Boto3)
- 6. CloudFormationでEC2にEBSボリュームをアタッチする際に詰まったこと
- 7. AWSにおけるパイプラインのベストプラクティスパターン整理
- 8. 【AWS】オンプレ環境のログファイルをS3に移行させる方法
- 9. ローカル環境でDynamoDBを操作する
- 10. AWS Cognito トークンの有効期限を設定してNuxtで確認する時の備忘録
- 11. 【AWS】AWS Cloud Questが日本語化になったのでやってみた ### 02 開始準備編
- 12. AWS CLIのインストールから各種設定まで (MacOS)
- 13. AWSの代替連絡先はあくまで代替連絡先である。
- 14. AWS Certified DevOps Engineer – Professional(DOP-C02) 合格体験記
- 15. データ活用基盤を作ってみたその8(構築・データ収集-Lambda)
- 16. データ活用基盤を作ってみたその11(構築・データ活用-Athena)
- 17. データ活用基盤を作ってみたその12(Terraformのtips)
- 18. データ活用基盤を作ってみたその10(構築・データ加工-Glue)
- 19. データ活用基盤を作ってみたその9(構築・データ蓄積-S3)
- 20. データ利活用基盤を作ってみたその7(構築・IAM)
IAMロールとGitHub Actionsの統合によるデプロイのセキュリティ強化
これまで、AWS SDKをLambdaにデプロイする際のクレデンシャル(IAMユーザーのアクセスキーとシークレットアクセスキー)管理について課題を感じていました。
環境変数からリソースの強い操作権限をもったIAMユーザーのアクセスキーを読み込む方法だと、キーが流出したときのセキュリティリスクが大きいので、IAMロールを利用する方法に変更しました。
本記事では、この変更を実施する際の手順を備忘録としてまとめています。
# 手順
GitHub ActionsのデプロイワークフローでGitHub SecretsからAssumeRole権限をもったIAMユーザーのアクセスキーとシークレットアクセスキーを読み込み、AssumeRoleでIAMロールの権限を引き受けるようにしました。## IAMユーザーの作成
コンソールやIaCツールからIAMユーザーを作成し、以下のカスタムポリシーを作成して関連付けます。
`Resource`欄については、IAMロール作成後にARNをコピペします。“`json
{
“Version”: “2012-10-17”,
“Stateme
自宅でのAWS認定試験を体験
最近、**AWS Certified Solutions Architect – Associate**の認定試験を受けました。試験言語は日本語を選びましたが、英語の問題文も表示可能。試験時間は基本160分(非英語母国語話者向けには通常追加30分を含む。特に申請はしなかったですが、自動付与されたみたいです)。
### 試験準備?
試験の準備ではまず、onvueというアプリ(PC)をダウンロードしてインストールし、デバイスのチェックを行いました。この過程で、Zoomのバックグラウンドプロセスが動いていることが検出され、手動で終了させる必要がありました?。その後は、携帯で身分証明書の写真を撮ってアップロードし、試験環境の写真も撮影しました。
### 試験環境チェック?️♂️
試験官とのチャットボックスを通じて、カメラで周囲の環境を撮影するよう指示されました。腕時計は外すことになりました⌚、手が届かない場所に物を置くように言われました。面白かったのは、手を伸ばして物が届かないことを確認されました?。
### 試験開始?
準備が整ったら、いよいよ試験開始です。何か問題があれば、チ
AWSのDHCPセットに複数のnameserverを指定しても意味がない
VPCにはDHCPセットという機能がありそこでnameserverを複数指定できます。
思った挙動と違ったので記事にしました。## まずはローカルで試してみる
/etc/resolv.confにnameserverを複数指定すると、
DNSリクエストが失敗した時次のnameserverに問い合わせますdocker環境を用意したのでそれを使って確かめます
“`
docker-compose up
“`
クライアントの/etc/resolv.confはこう
“`
nameserver 192.168.0.3
nameserver 192.168.0.22
nameserver 192.168.0.11
“`
DNS1は問い合わせ先を知っていて、DNS2は知らないですそしてclientからnslookupを打つと名前解決してくれます
存在しないDNSだろうがzoneファイルに何もなかろうが関係ないです。“`
# nslookup web.local
;; communications error to 192.168.0.3#53: timed out
;; c
TerraformでSNSからLambdaにPub/SubするLocalStack環境を作ってみよう
# 概要:information_source:
Mac(M2チップ)環境でTerraform + LocalStack(無料版)を使い、以下の環境を作るのがゴールです。![スクリーンショット 2023-08-26 21.09.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203671/8927e883-ba0a-149c-b4b8-03529949ea8e.png)
# ハローキータ:sunny:
AWSの勉強をしようと思ったものの、個人でそんなにお金はかけられない、けど勉強はしたい…
そこへLocalStackとの出会いがあり、せっかくやるならTerraformも一緒に覚えようと思い立ちました:bulb:己の頭の整理も兼ねて、今回初めて記事を書きます:pencil:
# 謝辞:bow:
筆者自身TerraformとLocalStackの経験が浅いため、詳しい説明は省きますのでご了承ください。そのため、本記事は”LocalStackとTerraformでこんなことができるんだ
【AWS】用語を整理しながら学ぶAWS AWS SDK for Python (Boto3)
## はじめに
この記事では AWSが提供する`AWS SDK for Python (Boto3)`(以下、Boto3)を学習していく記事です。主な内容としては実践したときのメモを中心に書きます。(忘れやすいことなど)
誤りなどがあれば書き直していく予定です。## AWS SDKとは
AWSが提供するAWSでリソースを操作し、構築に利用するツールです。
AWSの公式サイトには下記のように表現されています。> AWS での構築ツール
> AWS でアプリケーションを開発および管理するためのツール
> 選択したプログラミング言語を使用して、AWS でアプリケーションを簡単に開発する
> Python 固有の API と有益なライブラリを使って、アプリケーションを開発する[参考](https://aws.amazon.com/jp/developer/tools/)
サービスではなく、ツールの一つです。そもそもSDKとはなんでしょうか。
### 補足:SDKとは(SDKの定義)
SDKとは何だったかここではCircleCIさんのサイトから引用して見ていきましょう。
CloudFormationでEC2にEBSボリュームをアタッチする際に詰まったこと
# AWS::EC2::Instance上でEBSボリュームを定義すると・・・
例えば以下のようにAWS::EC2::Instanceテンプレートで定義したEBSボリュームが
一部不要になったので削除しようとした。“`yaml
EC2Instance:
Type: “AWS::EC2::Instance”
Properties:
…
BlockDeviceMappings:
## 以下ボリュームをコメントアウトで削除
# – DeviceName: /dev/sdb
# Ebs:
# VolumeSize: 30
# VolumeType: gp3
# DeleteOnTermination: “true”
# Encrypted: “true”
– DeviceName: /dev/sdc
Ebs:
VolumeSize: 5
AWSにおけるパイプラインのベストプラクティスパターン整理
# はじめに
この記事ではAWSにおけるパイプラインのベストプラクティスパターンを整理しています。具体的には以下2点をまとめた上で、AWSにおけるパイプラインのベストプラクティスパターンを整理します。
– AWSにおけるCI/CDのテクノロジースタック
– プロビジョニング有無、デプロイ有無ごとの使用サービス整理AWSの区分でいう「Level 200:トピックの入門知識を持っていることを前提に、ベストプラクティス、サービス機能を解説するレベル」の内容です。
# この記事を読んでほしい人
– AWSでCI/CDの実現方法を網羅的に整理したい人
– これからAWSでCI/CDを実装したいのでパターンごとにパイプラインのベストプラクティスをおさえたい人
– AWS Certified DevOps Engineer Professionalを目指している方# AWSにおけるCI/CDのテクノロジースタック
まずは、AWSにおけるCI/CDのテクノロジースタックを整理して、これから紹介する技術の全体像を抑えましょう。全体像を整理すると以下になります。
![](https://
【AWS】オンプレ環境のログファイルをS3に移行させる方法
## はじめに
オンプレサーバのログファイルをS3に移行させないといけない事案を対応したので備忘録として記事にします。## 方法
AWS CLIを使ってコマンドでS3にファイルを送っていきます。
今回使うのは「S3 Sync」です。## 手順
### AWS環境側の用意
まず連携先となるAWS環境のS3を用意します。
その次に連携する時の認証で使うIAMユーザも用意しておきます。
IAMユーザ作成する時アクセスキーも作成して情報を控えておいてください。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3577451/3c6dd95c-14cb-8b1f-56cb-56d1c2ed4b7a.png)
### オンプレサーバ側の用意
サーバにAWS CLIをインストールします。(OSによってインストール方法違うので皆さん自分の環境にあった記事を参考にしてください!)AWS CLIがインストールされているか確認
“`
$ aws –version
“`サーバに作成したI
ローカル環境でDynamoDBを操作する
AWS環境で色々試そうとするとお値段が気になる。
SDK使ってDBアクセスする場合LambdaやIAMRoleのセットアップも必要。(Lambdaは使わなくてもローカルからできますが)
気兼ねなく検証したいのであれば **DynamoDB Local** がおすすめです!!:::note warn
以下の前提で話しています。
* 言語:Typescript
* Docker Desktopインストール済
:::# DynamoDB Local のセットアップ
[AWS公式ドキュメント](https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/DynamoDBLocal.DownloadingAndRunning.html)に DynamoDB Local のセットアップ手順があります。
いくつか手段がありますが、私は Docker を用いた手順を選択しました。以下ymlが提供されています。
“`docker-compose.yml
version: ‘3.8’
services:
dy
AWS Cognito トークンの有効期限を設定してNuxtで確認する時の備忘録
# 初めに
前回「Nuxt3 + AWS Cognito スターターセット」という記事を書いた。これはチームメンバーに認証の実装をお願いするために骨組みとして作ったものだが、トークンの認証期限を確認する機能も必要だと思ったので、本記事ではそこを追加実装していく。https://qiita.com/3dy3day/items/5cee7d1ed6ec9a37ab30
https://github.com/sandy-sunday/nuxt3_cognito_tutorial
# トークンの種類
みんな大好きDevelopersIOにとても丁寧な説明があるので、それを読むことをお勧めする。
簡単にまとめると、以下の3種のトークンがある。**idToken**: いわゆる認証に使用
**accessToken**: ユーザー属性の追加・変更・削除に使用
**refreshToken**: 新しいIDトークンおよびアクセストークンの取得に使用https://dev.classmethod.jp/articles/study-tokens-of-cognito-user-pool
【AWS】AWS Cloud Questが日本語化になったのでやってみた ### 02 開始準備編
## はじめに
前回の内容
【AWS】AWS Cloud Questが日本語化になったのでやってみた ### 01 登録編https://qiita.com/fsd-otomo/items/f99edcc05272c7b57df6
今回は、開始準備編ということで、実際にクエストを開始するまでの設定作業や、
体験できる課題に関して表にまとめましたので、参考にしていただければと思います。## 開始準備
##### 1. 様々な課題を選んでゲームを進めていきます。
「クラウドプラクティショナーロール」では 12 の課題、 9 つのサービスが学習可能です。
以下のようにたくさんの課題が存在しています。
![qiita23101116.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2811087/fdaf7de2-4f2f-e384-1739-a3ee738f2e56.png)| 課題名 | 課題内容 | 学べる事 |
| —- | —- |—- |
| 高可用なアプリケーション |
AWS CLIのインストールから各種設定まで (MacOS)
## 概要
– MacOSでAWS-CLIを使ってみたくなったので、備忘録として残したい## 環境
ProductName: macOS
ProductVersion: 13.3
BuildVersion: 22E252## 必要なこと
– Homebrewのインストール
– Pythonのインストール
– pipのインストール### なんでPythonが必要なのか
AWS CLIはPythonスクリプトの形式で提供されているため。
### pipとは
Pythonのパッケージ管理ツールである## Homebrewのインストール方法
homebrewは、以下のURLからダウンロードできます。
https://brew.sh/ja/## Pythonのインストール方法
Pythonは下記、コマンドを使ってすぐに入れることができます。“`
$ homebrew install python
““Pythonがどこにinstallされたか
下記のコマンドで確認してみたいと思います。“`
$ which python
“`
上記のコマンドで、
AWSの代替連絡先はあくまで代替連絡先である。
# はじめに
AWSを利用している場合、リソースのメンテナンス通知や、サポートケースの受信など、様々なケースでメールを受信することがあります。
これらのメールは基本的にルートユーザーのメールアドレス(以下、アカウントメールアドレス)に対して送信されます。
また、アカウントメールアドレスとは別の **代理のメールアドレス(代替連絡先)** を設定することも可能です。今回、アカウントメールアドレスが受信する内容を、別のメールアドレスで集約できないか調査することがあり、代替連絡先について調べてみました。その内容をここにまとめます。
# 最初にまとめ
「代替の連絡先」の機能は、登録しているメールアドレス宛にすべての AWS からの通知(メンテナンスや請求の通知等)が配信されることを約束するものではありません。
基本的にはユーザーに連絡がつかない場合等の代替の連絡先という位置づけです。 **AWSからのお知らせを確実に受信したい場合はアカウントメールアドレス宛のメールを受信できる状態にするのが適切です。**# 代替連絡先について
代替連絡先は、請求 (Billing) ・操作 (Ope
AWS Certified DevOps Engineer – Professional(DOP-C02) 合格体験記
# はじめに
少し前にDVA、SOAと取得したので、将来的に6冠を目指すということで、そのままの流れでDOPを受験しました。# スコア
**852/1000**無事に合格できました!
初の「Professional」資格でしたが、やはりAsocciateの資格と比較して難しい。。。
合格体験記などで、SAPより簡単と記載する方も多いですが、文章量も問題のレベル感もAsocciateで出題されていた内容より深い内容が問われ、自分の理解力が低いところをピンポイントで問われたりするなど、なんとか合格はしたものの勉強期間、計画を含めて、力不足を痛感した試験でした。# 受験対策
### 書籍
– なし
調べてはみましたが、DOPの対策本的なものは出ていませんでした。### Web問題集
https://kws-cloud-tech.com/10問単位で実施できるので、4~5周くらい実施しました。
空いてる時間などにちょっとずつ消化してました。https://cloud-license.com/
テスト受験前のAWS公式模擬試験で結構悲惨な点数だったので、追い込み用とし
データ活用基盤を作ってみたその8(構築・データ収集-Lambda)
# はじめに
こんにちは。NTTデータ先端技術の@tsuchidahrkです。
本記事は、データ活用基盤を作ってみた連載記事のその8です。
本シリーズの取り組みの内容については[その1(構成シナリオ)](https://qiita.com/kamein/items/81df29ef9d32bf0a0810)をご覧ください。
前の記事は、[その7(構築・IAM)](https://qiita.com/fujitak-intellilink/items/4c4d5b62dac2d7b4d39f)からご覧ください。
本記事では、今回作成したデータ活用基盤データ収集処理の設計、構築方法、データ収集処理の実装について紹介します。# 目次
– データ収集処理設計
– データ収集処理の流れ
– 構築方法
– データ収集処理の実装
– まとめ# データ収集処理の設計
データ活用基盤を構築する際に欠かせないデータ収集処理の設計について紹介します。
本システムでは、その1の機能・非機能要望を満たせるように設計しました。
データ収集処理に関連する機能・非機能要望は以下になります。
||項目|要望|
データ活用基盤を作ってみたその11(構築・データ活用-Athena)
# はじめに
こんにちは。NTTデータ先端技術の亀井(@kamein)です。
本記事はデータ活用基盤を作ってみた連載記事のその11(構築・データ活用-Athena)です。本シリーズの取り組みの内容については[その1(構成シナリオ)](https://qiita.com/kamein/items/81df29ef9d32bf0a0810)をご覧ください。
今回のPJではデータ活用を蓄積領域(S3)のデータ閲覧としており、Athenaで実現します。本記事では、Athenaの設定手順や利用手順についてご紹介します。# 目次
+ 今回のPJにおけるデータ活用の範囲
+ Athenaについて
+ 実装内容
+ ポリシー付与
+ AWS CLIインストール
+ ネットワーク穴あけ
+ 利用手順
+ 振り返り
+ 最後に# 今回のPJにおけるデータ活用の範囲
今回のデータ活用におけるデータ活用はAI,BIのような使い方ではなく、データ連携の用途です。
蓄積領域(S3)に格納されたデータを既存システム側扱いのサーバ(EC2)からCliベースでデータを閲覧を目指しており、
データ活用基盤を作ってみたその12(Terraformのtips)
# はじめに
こんにちは、NTTデータ先端技術の[白木](@shiraki_ils)です。
本記事はデータ活用基盤を作ってみた連載記事の12(TerraformのTips)です。
本シリーズの取り組みの内容については[その1(構成シナリオ)](https://qiita.com/kamein/private/81df29ef9d32bf0a0810)をご覧ください。
前の記事は、[データ活用基盤を作ってみたその11(構築・データ活用-Athena)](https://qiita.com/kamein/items/c5c3d6d2c343df4b5c7d)からご覧ください。
今回は、TerraformでAWSの構築を行った際のtipsなどについて記載させていただきます。# 目次
* 前段
* Tips
* 詰まった点
* 最後に# 前段
本PJでは、AWS上に下記構成でTerraformを用いてインフラの構築を行いました。
メンバーは7名で実施しましたが、ほぼ全員がTerrafom未経験者だったので、手探りで進めた中でのtipsや詰まった点をまとめました。
構成はこのようになって
データ活用基盤を作ってみたその10(構築・データ加工-Glue)
## はじめに
こんにちは、NTTデータ先端技術の[白木](@shiraki_ils)です。
本記事はデータ活用基盤を作ってみた連載記事の10(構築・データ加工-Glue)です。
本シリーズの取り組みの内容については[その1(構成シナリオ)](https://qiita.com/kamein/private/81df29ef9d32bf0a0810)をご覧ください。
前の記事は、[その9(構築・データ蓄積-S3)](https://qiita.com/EumJinman/items/4a80e5f1cc09973b6302)からご覧ください。
今回は、作成したデータ活用基盤の加工処理について記載します。## 目次
* データ加工処理設計
* データ加工処理の流れ
* 構築方法
* データ加工処理の実装
* 詰まったところ
* まとめ## データ加工処理設計
データ活用基盤を構築する際に欠かせないデータ加工処理の設計について紹介します。
本システムでは、その1の機能・非機能要望を満たせるように設計しました。
データ加工処理に関連する機能・非機能要望は以下になります。| |
データ活用基盤を作ってみたその9(構築・データ蓄積-S3)
## はじめに
こんにちは。NTTデータ先端技術の@EumJinmanです。
本記事は、データ活用基盤を作ってみた連載記事のその9(構築・データ蓄積-S3)です。
本シリーズの取り組みの内容については[その1(構成シナリオ)](https://qiita.com/kamein/items/81df29ef9d32bf0a0810)をご覧ください。
前の記事は、[その8(構築・データ収集-Lambda)](https://qiita.com/tsuchidahrk/items/92cee4db92d68010e3c9)からご覧ください。
今回は、データ活用基盤のストレージの設計、構築方法、注意点について記載します。
※S3に対するアクセスポリシーは[その7(構築・IAM)](https://qiita.com/fujitak-intellilink/items/4c4d5b62dac2d7b4d39f)に記載しております。## 目次
・ ストレージ設計
・ 構築方法
・ 注意点
・ 最後に## ストレージ設計
データ活用基盤を構築し、データを活用するために欠かせないストレージの設
データ利活用基盤を作ってみたその7(構築・IAM)
## はじめに
こんにちは。NTTデータ先端技術の@fujitak-intellilinkです。
本記事は、データ活用基盤を作ってみた連載記事のその7です。
本シリーズの取り組みの内容については[データ活用基盤を作ってみたその1(構成シナリオ)](https://qiita.com/kamein/items/81df29ef9d32bf0a0810) をご覧ください。
前の記事は、[データ活用基盤を作ってみたその6(構築・デプロイ方法) ](https://qiita.com/shiraki_ils/items/863465b40c0bf85f9a03) からご覧ください。
本記事では、データ活用基盤におけるIAMの構成・設定について記載します。## 目次
[アクター一覧](#アクター一覧)
[構築内容](#構築内容)
[反省と注意点](#反省と注意点)
[まとめ](#まとめ)## アクター一覧
主に以下の5種類のアクターを想定しています。
本システムは、「データ活用基盤側」と「既存システム側」に分かれています。
今回のメインはあくまで「データ活用基盤側」のリソースである