- 1. AWS DEA(Beta)受験記(2023/12/27投稿)
- 2. 【AWS】Amazon Linux 2023 DockerのPythonバージョンアップ
- 3. AWS Ambassador Japan Meetup Event with NTT DATA Nov.2023に参加しました
- 4. Amazon Qとは :AIチャットボット
- 5. Amazon Athenaとは?
- 6. Step Functionsの勉強がてら、Bedrockとか使ってボラギノールメソッドの動画を作る
- 7. EC2とECSの違いについて
- 8. CLIでECSの設定値を取得する方法
- 9. 【Redshift】2023年下半期の最新情報まとめ
- 10. AWS Certified Machine Learning – Specialty
- 11. AWS セキュリティグループ設定の半自動化をしてみた!
- 12. motoのmock_dynamodbを使ってみました
- 13. インターネットからアクセスできないリポジトリをAWS上に作成したい
- 14. AWS WAFのログから特定Cookieの機密情報をKinesis Data Firehose + Lambda関数でマスクしてS3に保存するIaCをCDKで実装する
- 15. expdpの.dmpから全テーブルのcsvファイルを出力~RDS for Oarcleへimpdpするまで~
- 16. 【Terraform】ネットワーク環境構築の基礎部分について
- 17. serverless frameworkで作ったLambda Function についてnodejs16.x以下のバージョンをnodejs18.xに上げるためのメモ書き
- 18. Route53 でローカルドメインを管理する時のポイント
- 19. CloudFormationでEC2を複数設置
- 20. TerraformでのECSのコンテナ定義の表記方法の違いの比較
AWS DEA(Beta)受験記(2023/12/27投稿)
# はじめに
この度AWS認定のDEA(Data Engineer Associate)を受験してきましたので、勉強した内容と受験した感想を書いておきます。
結果はBeta終了後から約90日後に通知されるので、結果が来たら追記します。(多分ダメそう)※試験内容には言及できないので、本記事では勉強方法や受験した感想が中心となります
# 前提
* AWSのデータ分析基盤は実務経験あります
* AWS認定は全て取っています(詳細は[こちら](https://qiita.com/handy-dd18/items/d21d914bf1c475d777f2)) ※PASは[こちら](https://qiita.com/handy-dd18/items/18e8a856906f97bbb964)
* 2023年11月にDAS更新しました([こちら](https://qiita.com/handy-dd18/items/c07088ee2f17dd3fa487))
* Microsoft:AZ-900/AZ-104/AZ-700/AZ-305/AZ-204/DP-900/AZ-500/DP-20
【AWS】Amazon Linux 2023 DockerのPythonバージョンアップ
# はじめに
Amazon Linux 2023 をベースとした Docker イメージ作成時に Python バージョンアップを行うための Dockerfile について書きます。
Python バージョンアップ方法はこちらを参考にしました。https://note.com/yuu________/n/nbe90710b842b
# Dockerfileの書き方
まず、Amazon Linux 2023 の Docker コンテナの Python バージョンを確認します。 `3.9.16` となっています。
“`
[ec2-user@ip-172-31-13-197 ~]$ docker run -it amazonlinux:2023 /bin/bash
bash-5.2# python3 –version
Python 3.9.16
bash-5.2# python –version
bash: python: command not found
“`次に、以下の Dockerfile を作成します。Python は `3.11.0` をインストール
AWS Ambassador Japan Meetup Event with NTT DATA Nov.2023に参加しました
# 第1部 The community activities about AWS for each countries
イタリア、スペイン、ドイツ、日本のNTT DATA社員の方々から貴重なお話を伺うことができました。NTT DATAさんは、情報発信とコミュニケーションを重要視していらっしゃることがわかりました。AI技術を活用した環境に配慮したITサービスの提供によって、持続可能な未来への貢献と革新的なアイデアの創出にも取り組んでいらっしゃるみたいです。
また、柔軟な働き方と国際的な協力について魅力を実感し、異なる文化との協力によって視野が広がっていることを感じました。日本のユーザーコミュニティも世界に負けることなく拡大を遂げていることが伺えました。コミュニティはお互いの価値観や知識を共有する重要な場であり、共に学び合い、成長し合える場なので、私も積極的に参加していこうと思います。
![IMG_0125.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617930/83f10cd5-29a4-
Amazon Qとは :AIチャットボット
## Amazon Qとは
Amazon Qは、Amazon Web Services (AWS) が提供するビジネス向けのAIチャットボットです。企業データと専門知識を活用して、特定のビジネスニーズに応じたサポートを提供することができます。セキュリティとプライバシーにも配慮されており、企業のポリシーやデータアクセス制限に適合するように設計されています。
https://aws.amazon.com/jp/q/?sc_icampaign=launch_reinvent23-amazon-q&sc_ichannel=ha&sc_icontent=awssm-4017_launch_reinvent23&sc_iplace=hero&trk=46b249b4-5ba5-4977-8b58-b606ed83594d~ha_awssm-4017_launch_reinvent23
https://zenn.dev/d2c_mtech_blog/articles/13cb85ed161f5b#%E3%81%93%E3%82%93%E3%81%AA%E4%BD%BF%E3%81%8
Amazon Athenaとは?
## Amazon Athenaとは
Amazon Athenaは、AWS(Amazon Web Services)が提供するインタラクティブなクエリサービスです。このサービスを使用すると、Amazon S3に保存されているデータをSQLを用いて簡単に分析できます。サーバーレスなので、インフラストラクチャの管理が不要であり、クエリを実行した分だけ料金が発生します。https://aws.amazon.com/jp/athena/
👉 ポイント:
– Athenaは、AWSのインタラクティブなクエリサービス。
– Amazon S3に保存されたデータをSQLで分析可能。
– サーバーレスで、クエリ実行分のみの料金体系。## Athenaの特徴
Athenaの主な特徴はその使いやすさと柔軟性です。SQL知識を持つユーザーであれば、簡単に大量のデータを分析できます。また、多様なデータ形式(JSON、CSV、Parquetなど)に対応しており、ビッグデータ分析にも適しています。👉 ポイント:
– SQLを使って直感的にデータ分析が可能。
– 多様なデータ形式に対応。
– ビッ
Step Functionsの勉強がてら、Bedrockとか使ってボラギノールメソッドの動画を作る
Step Functions触り始めて2日目の人です。
今年の仕事も締まったということで、自分の勉強がてらStep Functionsを使ってみたくてやってみた話です。エラー処理だとかめちゃめちゃ度外視していますが、とりあえず動いたので…最初の一歩としてまあいいかなと…## 最終的にやったこと
最終的に何をやったかというと、inputにタイトルの文言を送ると、
“`json
{
“input”: “とあるエンジニアのアプリケーション開発の進捗状況”
}
“`
Bedrockで簡単なストーリーを作って、そのストーリをもとにTitanとPollyで画像と音声を作って動画にするという感じです。Step Functionsはこんな感じ。![stepfunctions_graph.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3635880/26005354-2e84-692a-addc-715589f6e8e3.png)
## 使ったサービス
・Step Functions
・Bedroc
EC2とECSの違いについて
## EC2とは
Amazon EC2(Elastic Compute Cloud)は、AWS(Amazon Web Services)が提供するクラウドコンピューティングサービスです。このサービスを使用すると、仮想サーバー(インスタンス)をクラウド上に簡単に構築できます。EC2を使用すると、ハードウェアの管理なしに、アプリケーションやサービスを実行するための計算リソースを得られます。👉 ポイント:
– EC2は、AWSのクラウドコンピューティングサービス。
– 仮想サーバー(インスタンス)を提供。
– ハードウェアの管理なしで計算リソースを使用可能。## ECSとは
Amazon ECS(Elastic Container Service)もAWSが提供するサービスの一つですが、こちらはコンテナ管理を目的としています。ECSを使用すると、Dockerコンテナを簡単にデプロイ、管理、スケールできます。つまり、複数のコンテナを効率的に運用するためのサービスです。👉 ポイント:
– ECSは、AWSのコンテナ管理サービス。
– Dockerコンテナのデプロイ、管理、スケール
CLIでECSの設定値を取得する方法
Amazon ECS (Elastic Container Service) は、コンテナ管理サービスです。
CLI (コマンドラインインターフェース) を使って、ECSの設定値を取得する方法について簡単に説明します。
## ECS CLIの基本
ECSを管理するためのCLIツールは、AWS CLIです。AWS CLIを使うと、ECSのクラスターやサービス、タスクなどの情報を操作・取得できます。
### インストール
AWS CLIをまだインストールしていない場合、AWSの公式サイトからダウンロードしてインストールします。
### 設定
AWS CLIを使うためには、AWSの認証情報(アクセスキーIDとシークレットアクセスキー)が必要です。これらはAWS Management Consoleから取得できます。
## ECSの設定値を取得する
ECSの設定値を取得するには、主に`describe`コマンドを使用します。
### クラスター情報の取得
クラスターの詳細を取得するには、以下のコマンドを使用します。
“`
aws ecs describe-clus
【Redshift】2023年下半期の最新情報まとめ
クラウドデータウェアハウスの雄、Redshiftの2023年下半期最新動向をまとめてみました。
普段からRedshiftを触っていても、最新動向のキャッチアップは優先度が低くなりがちだと思いますので、本記事をお役立てください。
これまでの最新動向は以下にまとめていますので、是非あわせてお読みください。
– [2023年上半期](https://qiita.com/cgshimo/items/e05b87f8f8f523ed749e)
– [2022年下半期](https://qiita.com/cgshimo/items/725cfe5308340ee7f76c)
– [2022年上半期](https://qiita.com/cgshimo/items/58e69bc7850eee266d03)# Redshift公式ページ
https://aws.amazon.com/redshift/# Redshift最新情報(2023/06/17~2023/12/27)
https://aws.amazon.com/jp/redshift/whats-new/主に日本のリージ
AWS Certified Machine Learning – Specialty
## [Content-Based Filtering(CF) Recommendation Engine](https://developers.google.com/machine-learning/recommendation/content-based/basics?hl=ja)
コンテンツ ベースのフィルタリングは、アイテム機能を使用して、以前のアクションや明示的なフィードバックに基づいて、ユーザーの好みに類似した他のアイテムを推奨します。– メリット
– レコメンデーションはそのユーザーに固有のものであるため、モデルには他のユーザーに関するデータは必要ありません。これにより、多数のユーザーに簡単にスケーリングできます。
– このモデルは、ユーザーの特定の関心事をキャプチャでき、他のユーザーがほとんど関心を持たないニッチな商品をおすすめできます。
– デメリット
– アイテムの特徴表現はある程度手作業で設計されているため、この手法には多くのドメイン知識が必要です。したがって、このモデルは手作業で設計した特徴量で十分です。
– このモデルは、
AWS セキュリティグループ設定の半自動化をしてみた!
新卒一年目エンジニアのyuchamです:wink:
現在、プロジェクトでセキュリティグループのインバウンドルールの設定をすることがあったのですが、手動で100個近くある設定をすることはとても大変でした、、、、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3583957/e15383b6-e1ec-b885-fe8a-90991645f21e.png)
### 1.自動化の提案
これから何個もセキュリティグループの設定を手動で行うのはなかなか、ハードだなと思ったので上司にCSVか何かで読み込ませてできるのではないかと提案しました。そこから、いろいろネット上で記事を漁っていると、
CSVを読み込ませることで簡単にセキュリティグループを設定できるとわかりました。こちらのサイトですね。
https://zenn.dev/nosehana/articles/8aa280e954c3b1
しかし、いろいろ事情がありまして自動化はまた今度になりました、、、
### 2.半自動化
motoのmock_dynamodbを使ってみました
# やりたいこと
LambdaでDynamoDBからデータを取得するプログラムの単体テストをやるため、DynamoDB関連の処理をモック化したい# 前提
・Pythonインストール済み
・pipenvインストール済み
(今回は便宜上pipenv内でtoxでテストをやるのですが、ローカルで諸々ライブラリを入れてテストをやっても大丈夫です)# ディレクトリ構成
“`ruby:
root
┣━ functions
┗━ api
┗━ app.py
┣━ tests
┣━ conftest.py
┗━ test_app.py
┣━ Pipfile
┗━ tox.ini
“`# ソースの中身
ごく簡単の処理ですが、あるDynamoDBテーブルからget_itemをやりたい
“`ruby:app.py
import boto3
import os# DynamoDB関連情報はLambdaの環境変数から取る
DYNAMO_TABLE_NAME = os.environ.get(‘DYNAMO_T
インターネットからアクセスできないリポジトリをAWS上に作成したい
# はじめに
この記事はDevOps on AWS大全 実践編の一部です。
DevOps on AWS大全 実践編の一覧は[こちら](https://qiita.com/tech4anyone/items/c27e74f9ae569ced259f)。この記事ではプライベートGitリポジトリのアーキテクチャを決める流れを解説しています。
具体的には以下流れで説明します。
– 解決したい課題の整理
– 今回使うAWSサービスの整理
– アーキテクチャの策定
– 策定したアーキテクチャで達成できたことAWSの区分でいう「Level 400 : 複数のサービス、アーキテクチャによる実装でテクノロジーがどのように機能するかを解説するレベル」の内容です。
# この記事を読んでほしい人
– DevOpsエンジニアがアーキテクチャを決めるときにどのような思考フローを踏んでいるか知りたい人
– セキュアなGitリポジトリのアーキテクチャを知りたい人
– AWS Certified DevOps Engineer Professionalを目指している人# 前回までの流れ
[こちら](h
AWS WAFのログから特定Cookieの機密情報をKinesis Data Firehose + Lambda関数でマスクしてS3に保存するIaCをCDKで実装する
[AWS CDK Advent Calendar 2023](https://qiita.com/advent-calendar/2023/aws-cdk)の記事です。終わっても空いてた枠にシュルっと入りました。
NewsPicksのSREチームでセキュリティ周りも担当している[あんどぅ](https://twitter.com/integrated1453)といいます。
AWS WAFを利用する中で少しニッチな、しかし重要なロギングについてCDKで実装した例をご紹介します。
ボリュームが多いので、同じような構成でCDKを利用して実装する方の参考になれば幸いです。## WAFのログは重要。プライバシー保護も重要
同じアドカレ内でも書かれていますが、WAFを運用していると誤遮断がつきものなので、WAFのログは非常に重要です。
https://zenn.dev/tkg216/articles/57a2ed6a77fd55
WAFのルールを適用する際は、COUNTモードで適用して一定期間運用した後に、**不正と判断されたリクエストのログを確認して**、問題ない検知をしていること
expdpの.dmpから全テーブルのcsvファイルを出力~RDS for Oarcleへimpdpするまで~
# はじめに
故あって、oracleのdmpから全テーブルのデータをcsvファイルにする必要がありました。
その際の作業内容を備忘録的に書きます。## 環境用意
dmpを展開するためにoracleが必要です。今回はたまたま使えるAWSアカウントがあったのでRDSを立てることにしました。
RDS for Oracleの立て方、およびSQLPLUSクライアントの用意の仕方は公式が詳しいです。
[Oracle DB インスタンスを作成して接続する](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html)なお、EC2からRDSに接続するところについては、私は昔ながらのtnsnames.oraを使いました。
`$ORACLE_HOME/admin/network/tnsnames.ora`を作成し、中身はこうです。
“`tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS
【Terraform】ネットワーク環境構築の基礎部分について
# 目的
Udamy教材でTerraform学習を始めた為、インプット整理として躓いた点など学習の一部を抜粋してまとめる。## 教材
https://www.udemy.com/course/iac-with-terraform/
## VPC
“`network.tf
#—————–
# VPC
#—————–resource “aws_vpc” “vpc” {
#IPv4 CIDR ブロック
cidr_block = “192.168.0.0/20”
#インスタンスを実行させるハードウェアを共有 OR 占有するのかを指定
instance_tenancy = “default”
#DNS解決
enable_dns_support = true
#パブリックDNSホスト名の自動割当て
enable_dns_hostnames = true
#IPv6 CIDR ブ
serverless frameworkで作ったLambda Function についてnodejs16.x以下のバージョンをnodejs18.xに上げるためのメモ書き
# 概要
AWS Lambdaのruntime `nodejs16.x` のサポートが来年6月で切れまーす!
みなさまのお手元にはこの震えるようなAWS(またはクラスメソッドさん)からのメールは届いていますか?つまりそれは、nodejs12.x,14.xから16.xと逃げ回って遂に18.xへの対応をやらなければならないときが来ましたということです、年貢の納めどきです。
具体的にはライブラリのバージョンを上げたり、過去の互換を捨てたものは変更したり、ソースコードをなおしたりとやることはめんどくさく、作業は泥臭いものになります。
それでも先に進むというみなさま、覚悟はいいですか?
・・・では進みましょう。
# ざっくりやることのリスト
これが全てではないと思いますが、移行を主眼として必ずやらないといけないことを列挙します。
## 1. serverless.{yml|ts} の変更
runtimeを変更しました。
16から20…
これで2年+αくらいは追い回されずにすむはずです。![image.png](https://qiita-image-store.s3.
Route53 でローカルドメインを管理する時のポイント
# はじめに
皆さん、Route 53使ってますか? 今日は、Route 53 Private(内部DNSとして使う)について考えてみたいと思います。Route 53 Publicは私的には最高で非の打ちどころがないと思っていますが、Route 53 Privateは良く考えて組まないと思わぬ障害ポイントになりそうだなぁと思っています。# Route 53の特徴
まずは、Route 53の特徴を上げてみます。**【好きなところ】**
– マネージドサービスなのでbindのパッチ当て地獄から解放される(笑)
– 冗長性の担保は気にしなくていい(それはAWSが内部でやってくれる)
– AWS上で使う分にはネットワークの接続性を考えなくて済む(VPCにバインドすればxx.xx.xx.2でDNS引けるので)
– ALIASが使えて便利(CNAME的に設定するけどクライアントから見るとAエントリを返してくれる)**【嫌いなところ】**
– オンプレから引きたいときはInbound endpointを作る必要がある
– オンプレのDNSを引きたいときはOutBound endpoin
CloudFormationでEC2を複数設置
EC2を複数台構築することなったので、CloudFromationを使って構築を進めていきたいと思います。
### AWS CloudFromationとは
AWS CloudFormation は、インフラストラクチャをコードとして扱うことで、AWS およびサードパーティーのリソースをモデル化、プロビジョニング、管理することができます。
https://aws.amazon.com/jp/cloudformation/
とのことで、簡単に言うと「AWSのリソースをコードで作成・管理できるもの」といえると思います。
AWSのマネジメントコンソールからリソースの作成はできますが、すべてのリソースを削除したり、再作成するのは、大変です。なので、CloudFormation使ってリソースをコードで管理するのはとても便利です。### 作成イメージ
パブリックサブネットにEC2を3台設置しようと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3656335/f692847d-138
TerraformでのECSのコンテナ定義の表記方法の違いの比較
# 概要
Amazon ECSをTerraformで構築する際にコンテナ定義の表記方法が公式ドキュメント[^1]に複数載っていたのですが、使い分けがよく分からなかったので調べてみました。例としてはECSを扱っていますが、TerraformでJSONを扱う時全般の話です。# jsonencode関数を使用する場合
Terraformではjsonencodeという関数を使用すると、HCLの形式でJSONをインラインで定義することが可能です。以下は、jsonencode関数を使用してタスク定義を記述した例です。“`tf
resource “aws_ecs_task_definition” “service” {
family = “service”
container_definitions = jsonencode([
{
name = “awesome-container”
image = “epic-image:latest”
cpu = 10
memory = 512