- 1. サーバごとかつ日ごとに不定の時刻でEC2インスタンスを自動起動停止するLambda関数
- 2. LINEメッセージをAWS Lambdaで送受信してみたお話
- 3. Slack連携による生産性向上の施策(その1)〜Workflow Builder編〜
- 4. RDS ProxyをやめてRDS Data APIに切り替えた
- 5. AWSエンジニアとしてのキャリアを築く
- 6. 【Rails,AWS】SageMakerのエンドポイントをRailsで使用してみる
- 7. AWS Lambda LayersでError importing numpy: you should not try to import numpy from its source directory
- 8. Your current quota does not allow you to purchase the required number of Reserved Instance
- 9. RDS 延長サポートの料金
- 10. cdk-nagを導入してみた
- 11. VPS / AWS EC2の初期設定でやること一覧
- 12. AWS Developer Associate(DVA)受験記
- 13. 【AWS】新UIのCodePipelineで「手動トリガー」「自動トリガー」を切り替える方法
- 14. 100本ノックしてみたい中堅エンジニア 【AWS】~AWSとは~ 2/100
- 15. AWS無料枠を活用するなら必須のアラート設定のやりかた。
- 16. カテキョの生徒のために、英語読解問題生成サイトを作った
- 17. ネットワークによる可用性の実現
- 18. AWSアップデートクイズでクラウドの最新情報を楽しく学ぼう!(2023年12月~2024年3月)
- 19. Terraform、AWS DMSによるデータベース移行
- 20. Amazon SNS メール通知で日本語が文字化けした話
サーバごとかつ日ごとに不定の時刻でEC2インスタンスを自動起動停止するLambda関数
# 作成経緯
まず筆者が下記のLambda関数を作成するに至った経緯を記す。対象となっているサーバはベンダーが作業時に使う踏み台サーバである。
踏み台用のAWSアカウントを切り出し、SSMセッションマネージャーのポートフォワードで
ベンダーには踏み台サーバへアクセスしてもらっている。この踏み台サーバの稼働時間は、ベンダーの作業によって変わるため一定ではない。
そのため、EventBridgeでサーバごとにルールを作成し、都度実行時間を更新するのは
手間がかかりすぎるため、EC2インスタンスの起動停止時間を可変にする仕組みを考えた。
折角作ったので備忘としてここに残す。(正直EC2インスタンスに起動用タグ・停止用タグを付与し、
タグを対象に月〜金の9時〜18時といった固定時間でEventBridgeルールを作成。
ベンダーにはこの運用ルールを伝え、人間をルールに合わせて作業させればいいと思う。
これができるなら本記事を読む必要はない)# 概要
EC2インスタンスの起動停止を行うLambda関数を作成し、
この関数をEventBridgeで毎日毎時実行する。
対象とな
LINEメッセージをAWS Lambdaで送受信してみたお話
## はじめに
業務にてLINE MessagingAPIを利用したLINEでのコミュニケーションツールを作成したので、技術共有と自分の備忘録もかねて書いていきます。
流れとしては、[公式LINEアカウントへのログイン処理をAWS Lambda経由で実装してみた](https://qiita.com/inacyc_k/items/8337489e3e148db1f9e5)の続きの実装になります。あわせてぜひ読んでいただければと思います。## LINE MessagingAPI ってなに
みなさん、LINEの公式アカウント利用していますか?(私はよく佐川急便とかUNIQLOの公式アカウントをよく利用しています)LINEの公式アカウントをユーザーに友だち登録いただくことでメッセージが届いたり、チャット上で会話形式の質問に回答したりとWebサイトやメルマガよりも気軽に情報発信することができます。このようにMessagingAPIは、
・さまざまなメッセージをユーザーへ送信
・ユーザーが送ったメッセージを受信
そして
・ユーザープロフィールの取得(アイコン画像やユーザー名)
・アカウ
Slack連携による生産性向上の施策(その1)〜Workflow Builder編〜
# はじめに
こちらの記事は三部構成になっております。
– Slack連携による生産性向上の施策(その1)〜Workflow Builder編〜
– Slack連携による生産性向上の施策(その2)〜Slack App編〜
– Slack連携による生産性向上の施策(その3)〜AWS Lambda編〜また、全ての記事の内容を含んだ動画も用意しております。
動画で確認したい方は[コチラ](https://www.youtube.com/watch?v=JE7ZVJ9yE9Q)まで。
※動画開始50分頃からの内容になります。# 事の経緯
![スクリーンショット 2024-04-04 16.45.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763114/66db9017-f5c8-4045-9040-0dd90bebbb12.png)
![スクリーンショット 2024-04-04 16.47.23.png](https://qiita-image-store.s3.ap-northeast-1.
RDS ProxyをやめてRDS Data APIに切り替えた
## はじめに
RDS Proxyとは
https://aws.amazon.com/jp/rds/proxy/
RDS Data APIとは
https://docs.aws.amazon.com/ja_jp/rdsdataservice/latest/APIReference/Welcome.html
Lambda×RDS(Aurora含む)の場合、RDS Proxyを間に挟むのはごく一般的な構成かと思います。
私も以前はLambdaからRDSアクセスがあるなら必須だよな〜と思っていたのですが、あるシステムでRDSにAuroraServerlessV2を採用した際、従来通りRDS Proxyも作成したら料金が跳ね上がってびっくりしました。
AuroraServerlessV2の場合のRDS Proxyの料金は、1時間1ACUあたり`0.025USD`で課金されます。
https://aws.amazon.com/jp/rds/proxy/pricing/
ただこの料金体系、よく見ると最低料金が8ACUとなっており、要は使用しているのが1ACUだけであっても、8AC
AWSエンジニアとしてのキャリアを築く
## はじめに
コラムとしてAWSエンジニアとしてのキャリアを築く上で、
やったこと、これからやりたいことを書く。
AWSエンジニアとして走り出したいエンジニアの参考になれば幸いです。
※個人ブログに後でまとめようかな
## AWS全冠をとる
AWS全冠をとる、これは個人として箔をつけるためにまずやっておきたいこと
但し、受験費用もかかる。
そのため、受験費用の補助や、資格手当が出る企業を選べるとモチベも上がりやすい
## AWSを含め技術発信を深める
Qiita、Zenn、SpeakerDeck、個人ブログなどで
些細な内容でも発信を続けていくと、発信慣れしてくる。
発信しながら、PDCAを回して改善を繰り返すと情報発信が早く、上手くなってくる。## AWSパートナー企業で働く
AWSが躊躇なく使える企業で働くという意味でクラウドの部署がある一般企業より、
クラウドやAWSを専門としている会社があればそこに入るのが確実。ただ、初心者から飛び込んで敷居が高い場合は、目当ての企業に最初から飛び込まず、
1社挟んで下積み期間で設計構築の実務経験を積むことを年齢とのバランスを見て
検
【Rails,AWS】SageMakerのエンドポイントをRailsで使用してみる
どうもこんにちは。
今回は、以下の記事でトレーニングしたBERTモデルをRailsアプリケーションで呼び出してみました。
https://qiita.com/PDC-Kurashinak/items/f55d5d9e534f59440313
# 前提条件
上の記事で手順12まで実行できていることを前提として進めます。
# SageMakerノートブックインスタンス側での設定
## 1. トレーニングしたモデルをデプロイ
SageMakerのノートブックインスタンス内で以下のコードを実行します。
“`python
predictor = huggingface_estimator.deploy(
initial_instance_count=1,
instance_type=’ml.g4dn.xlarge’,
endpoint_name=’endpoint-01′ # ここは任意の名前
)
“`ここで発行したエンドポイントは、「リアルタイム推論」をするためのエンドポイントとなります。
「サーバレス推論」をするためのエンドポイントを発行する手
AWS Lambda LayersでError importing numpy: you should not try to import numpy from its source directory
# AWS Lambda LayersでError importing numpy
AWS Lambda Layersでlangchainを使おうとして以下のエラーが発生しました。“`
[ERROR] Runtime.ImportModuleError: Unable to import module ‘lambda_function’: Error importing numpy: you should not try to import numpy from
its source directory; please exit the numpy source tree, and relaunch
your python interpreter from there.
Traceback (most recent call last):
“`Keith’s Layers (Klayers) のnumpyをレイヤーに追加して解決する。
## numpyのARNを確認
### Klayersへ遷移
https://github.com/k
Your current quota does not allow you to purchase the required number of Reserved Instance
AWSでは、セキュリティとリソースの管理を目的として、各アカウントに対して様々なサービスの使用量に上限(クォータ)を設定しています。これらのクォータは、一部はAWSによって初期設定され、一部はユーザーが管理することができます。
例えば、月毎に最大購入越えエラー
“`
Error: Your current quota does not allow you to purchase the required number of Reserved Instances. (Status Code: 400; Error Code: ReservedInstancesLimitExceeded; Request ID: xxxxxxx-e0ed-43e5-a918-xxxxxxxxx)
Instance ID(s): 20240408
Timestamp (YYYY-MM-DD HH:MM:SS UTC): 20240408-1542
“`![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0
RDS 延長サポートの料金
# 延長サポートとは
RDS にて使用するエンジンにおいて、定期的にバージョンが更新されていき、古いバージョンの標準サポートは使えなくなるため、バージョンアップを実施する必要があります。
ただ、企業等の要件によっては、古いバージョンを使い続けることが必要になることもあると思います。
そこで AWS は、延長サポート料金を追加で支払うことで、旧バージョンを使用できるようにしています。[Amazon RDS での MySQL のバージョン](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/MySQL.Concepts.VersionMgmt.html#MySQL.Concepts.VersionMgmt.ReleaseCalendar)
|MySQL メジャーバージョン |RDS 標準サポート終了日 |RDS 延長サポート開始 1 年目の価格設定日 |RDS 延長サポート開始 3 年目の価格設定日 |RDS 延長サポートの終了日 |
|—|—|—|—|—|
|MySQL 8.0 |20
cdk-nagを導入してみた
## はじめに
### 背景・目的
– 私が参画しているクラウドマイグレーションプロジェクトでは、CDKを用いてAWS環境構築を行っています。
– セキュリティと開発効率とを両立するために、発見的統制に重きをおいたガードレール戦略を採用しています。(主要開発メンバ向け権限について、セキュリティ及びガバナンス上許容できない操作はIAM権限で拒否しつつ、それ以外の操作については比較的自由度を持たせています。)
– `Security Hubアラート対応工数軽減`及び`Security Hubによる発見的統制の補助`を目的として、cdk-nagを用いたデプロイ前のセキュリティチェックを導入してみました。
– 本記事では、cdk-nagの概要・運用方法・導入後の所感について説明します。### 対象読者
– CloudFormationやCDK等のIaCツールを用いたAWS環境構築経験がある方
– AWS環境構築時のセキュリティ担保方法に関心がある方## cdk-nagの概要
– cdk-nagは、CDKでのAWS資源デプロイ前にセキュリティルールへの準拠状況をチェックできるツ
VPS / AWS EC2の初期設定でやること一覧
## はじめに
半年ほど前からインフラを触るようになって、VPS のインスタンスを破壊・再構築することが多くなりました。
再構築するたびに記憶を掘り起こしながらセットアップするのも面倒なので、この記事に手順をまとめておきます。
EC2を立てた人でもやることは同じなので参考になるかと思います。## 手順
### 1. root ユーザーでログイン
大抵の VPS はインスタンス作成時に秘密鍵をダウンロードするため、その鍵を使ってログインします。
“`bash
ssh -i /path/to/private_key root@ip_address
“`場合によっては次のようなエラーが出ます。
“`
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permiss
AWS Developer Associate(DVA)受験記
## はじめに
AWS Developer Associate合格したので、今後受ける人のために記録を残します。
https://aws.amazon.com/jp/certification/certified-developer-associate/ちなみに自分の点数は 799/1000 でした。(720点から合格)
![スクリーンショット 2024-04-10 21.35.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1654164/14122382-b06f-176c-65cc-9eecc9cba2ae.png)
## 失敗談
Cloud Practitionerが勉強期間2週間くらいで受かったので、1つ上の資格なら楽勝と思っていました。その結果、1回目は勉強期間1ヶ月で受けて撃沈しました。Associateから難易度の格が違い、体感として、Cloud Practitionerの5倍くらい難しかったです。仕事も忙しく、半年くらい合間合間に勉強し、2回目でようやく合格しました。
【AWS】新UIのCodePipelineで「手動トリガー」「自動トリガー」を切り替える方法
# 概要
AWS CodePipelineを利用して、GithubのマージをトリガーにしてCodebuildを走らせる設定を使っていました。
しかし、検証環境であれば自動で走るのが嬉しいものの、本番環境では手動リリースしたいことがあります。以前までは、CodePipelineのUIのラジオボタンで自動か手動が選べたのですが、数ヶ月?かいつからかUIが変わって無くなってしまいました。
自力でなんとか切り替え方法がわかったので紹介します。
### 前提:CodePipeline設定
– Sourceのアクションプロバイダーは GitHub バージョン2 を利用
– Buildのアクションプロバイダーは AWSCodebuild を利用
– CodePipeline と GitHub の連携は CodeStarSourceConnection を使用
– Github側の AWS Connector for GitHub は以前からインストール済## CLIでパイプラインの情報を取得する
CLIでパイプライン名を指定して以下コマンドを実行すると、パイプラインの情報が取得
100本ノックしてみたい中堅エンジニア 【AWS】~AWSとは~ 2/100
## はじめに
まずは、AWSについて説明しないと話が始まらないと思うので、本記事ではAWSについて大まかに説明していきます。
# AWSとは?
現在、多くの企業で利用されているAWS(Amazon Web Services)は、Amazonが提供するクラウドサービス[^1]です。
2006年からサービス開始したAWSは、Azureなど他のクラウドサービスと比べると歴史も長く、200を超えるサービスと頻繁なアップデートにより、ITの素早い成長を支えています。:::note info
図を見てわかる通りMicrosoft Azureがシェアを伸ばしている一方、やや減少傾向にありますが今もなお世界一位のシェアを誇ります。今後の新しいAWSサービスでシェア拡大に期待ですね:blush:
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87924/1761d546-79f2-12a8-7d66-a1c03697b491.png)# AWSをなぜ利用するのか
さて、シェア
AWS無料枠を活用するなら必須のアラート設定のやりかた。
## AWSでのアラート(コスト)設定のやりかた。
AWSの無料枠を使って学習する人などに向けて、枠を超えて利用しないようにアラートの設定方法を記載します。
初投稿なのでお手柔らかにお願いします。
※画像の倍率低いので見づらいかもしれないです。1. まずはサービス欄に「Budgets」と入力し、選択する
![qiita投稿用 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2502858/d51c5201-3927-167d-2aae-f517006ec4f0.png)2. 左側のタブの予算を選択し、オレンジ色の予算を作成をクリックする
![qiita投稿用 (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2502858/4519a50f-9cb5-f43a-33e5-6022b0ea2782.png)3. 予算の設定をテンプレかカスタムで選べるのでどちらかを選択します
今回は「カスタム」を選
カテキョの生徒のために、英語読解問題生成サイトを作った
## はじめに
### 背景
バイトの家庭教師で、高校3年生の生徒に大学受験を指導しています。
その生徒は英語の素養がある一方、長文の読解速度・精度に課題を抱えていました。
一般に大学受験における英語は出題傾向として、西日本は精読重視、東日本は速読重視といわれていましたが、現代は共通テストとかいうので全国民が **速読** の能力が必要になりました。
**速読** の能力を底上げするにはとにかく **演習量** を通じて「問題で聞かれている箇所だけ目を通す」訓練を内面化することかと思います。### やったこと
演習量が欲しいので、今驚きのLLMを使って無限に英語読解問題を生成するサイト[「EnglishExamForever」](https://englishexamforever.pages.dev/#/)をサーバーからフロントまで一人で開発しました。[生徒思いの王、生徒思いキング](https://qiita.com/uts1_6/items/11e348ead4bae71571b8)ですね。
動作動画はこんな感じです。
ネットワークによる可用性の実現
## 初めに
本日は、VPC/Direct Connectのリソースによる可用性の実現に関してまとめてみました。## VPC
![スクリーンショット 2024-04-10 17.34.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3744656/b82c87a9-6f04-2426-25c2-a4d831d1fbcc.png)##### サブネット
ネットワークセキュリティの境界を明確にする為、パブリックサプネットとプライベートサブネットを構成する##### AZ
データセンターレベルの障害や特定地域の自然災害に対応する為、複数のAZでサブネットを構成する##### NATゲートウェイ
複数のAZ間では、それぞれにNATゲートウェイを配置する必要がある## Direct Connect
##### 接続例
![スクリーンショット 2024-04-10 17.40.44.png](https://qiita-image-store.s3.ap-northeast-1.amazon
AWSアップデートクイズでクラウドの最新情報を楽しく学ぼう!(2023年12月~2024年3月)
# はじめに
私は、社内のパブリッククラウド活用を推進するチームに所属しています。
チームに参加した当初、クラウドの知識が殆どなかったため、各サービスの仕様や使い方を熱心に学んでいました。また、プラットフォームでサービス認定という業務を担当していたこともあり、AWS のアップデートに触れる機会が多かったです。
現在、当チームに参加してから 5 年の月日が経ちました。以前よりもアップデートを追う習慣が薄まっており、私以外のメンバーも危機感を感じていました。そこで、当チームでは年始から AWS アップデートのクイズ大会を月次で開催しています。実践し始めて四半期が経過したので、本記事で当チームの自作クイズを公開します。
:::note warn
– 各クイズは、アップデート当時の情報を参考にしています。今後のアップデートで変わる可能性がある点にご注意ください。
– 各クイズの内容は新しいアップデートを扱っているため、AWS 認定試験に取り込まれていない可能性があります。試験対策とは別物として、お楽しみください。
:::# アップデートクイズ
新しい知識の波に乗り、12 問の
Terraform、AWS DMSによるデータベース移行
# はじめに
この技術記事では、Terraform、AWS DMS (Database Migration Service)を使用して、データベース移行を安全かつ効率的に実行する方法を説明します。Terraformを利用したAWS DMSは、安全かつ効率的なデータベース移行を実現し、コードによるバージョン管理と踏み台サーバーによるRDSインスタンスへの安全な接続、DMSレプリケーション機能による高可用性とスケーラビリティにより、時間と労力を大幅に削減します。
![aws-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/731268/0a192f9d-3192-b7e2-7ff7-993e481e6a89.png)
この技術記事で解説するコードは、以下の Github リポジトリで公開されています。
https://github.com/sugiyama404/practice_dms
また、以下の記事を参考にしました。
https://qiita.com/neruneruo/items
Amazon SNS メール通知で日本語が文字化けした話
# はじめに
Amazon SNS メール通知機能を使用した際、日本語が文字化けしました。
同じ事象に遭遇し困っている方の参考になれば幸いです。# 構成
1. CloudWatch Logs ロググループにサブスクリプションフィルタを設定し、文字列 “ERROR” を検知します。
1. Lambda 関数をトリガーし、SNS を使用してログの内容をメール通知します。Lambda 関数では Boto3 の[ SNS.Client.publish ](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sns/client/publish.html)を使用して SNS メール通知します。![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3516261/42305b74-57a4-98a7-5a19-dd4cd79cbe9a.png)
# 発生した事象
通知されたメール本文が以下のように文字