- 1. 入門 AWS CloudFormation #2(EC2編)
- 2. AWS Certified Cloud Practitioner 受験記録
- 3. Private環境でパスワード認証(SecretManager + Lambda)のTransfer Familyを使ってEFSにファイルをアップロードしてみた(FTP)
- 4. AWS SDK V3 のSNS(Simple Notification Service)で、いくつか動作確認した話(AWS SDK V2 → V3 移行Tips)
- 5. 複数 ENI がアタッチされた EC2 インスタンスを AWS Backup からリストアする
- 6. EC2の自動停止
- 7. 会社で利用しているBizRobo! の運用環境と構成を紹介します
- 8. AWS CDKについて学ぶ→TypeScriptでTDDを意識して実践→CDKプロジェクトの環境別のデプロイを考えてみた
- 9. 【AWS】ECS+FARGATEでサービスのタスクを更新する
- 10. 【AWS】CodeBuildのエラー COMMAND_EXECUTION_ERROR
- 11. Terraformでセキュリティグループを設定してEC2にhttp接続する
- 12. 【AWSコスト最適化設定】AWSを安く使おう!
- 13. 【AWS学習】AWSサービスとグローバル、リージョン、AZとの関係
- 14. [AWS][Terraform]Iot ruleをLambdaのトリガーに設定する方法
- 15. Auto Scaling グループの起動テンプレートでの spot インスタンスの嵌り
- 16. AWS クラウドプラクティショナー受験記録
- 17. AWS DataSyncとAzure File Sync 比較 ~AWS DataSync動作確認編~
- 18. AWS cloud9で表示数を増やす方法
- 19. AWS LambdaでSSM RunCommandを実行する(AWS SDK for JavaScript v3)
- 20. クラウドプラクティショナーの備忘録
入門 AWS CloudFormation #2(EC2編)
インフラやクラウドの専門というわけではないのですがそろそろIaC周りもちゃんと勉強しておきたい・・・という感じなのでAWSのCloudFormationについて入門しつつ復習として記事にまとめておきます。
※とりあえず最初ということでEC2を絡めたごく基本的なところの記事を書いていきます。将来もしかしたら3記事目以降を執筆して追加のEC2関係や他の様々なサービスや機能などにも触れていくかもしれません。
# 注意事項と記事までの振り返り
本記事の処理を動かすとEC2関係などで色々と追加になったり起動したりします。その辺はリソースの停止や削除などをしないとお金がかかったりしてくる可能性があるためご注意ください。
また、本記事は2記事目となります。前回までの内容を踏襲していく形となっているのでご注意ください。
1記事目:
https://qiita.com/simonritchie/items/330391e741f394897550
前回までに設定した主な内容:
– `cloudformation-test-1`と`cloudformation-test-2`という名前での
AWS Certified Cloud Practitioner 受験記録
# はじめに
AWS未経験者が1週間準備して受験しました(2023年1月)。
[AWS Certified Cloud Practitioner(CLF)](https://aws.amazon.com/jp/certification/certified-cloud-practitioner/)はAWS資格の中で、最も基礎レベルの試験です。
AWSが提供するサービスを概要を広く問われます。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599506/156e1314-9de7-81fd-70f5-4beb40f2fdf8.png)
—
# 自己紹介
– 会社:従業員多めのメーカー
– 仕事:先行開発部隊で信号処理開発や解析・評価。
プログラミングはするけど業務でのソフト開発は未経験
– AWS経験:数時間程度≒未経験。—
# なぜ受けたのか
– ~~お金に目が眩んだからです~~
– ~~会社とAWSが主催するイベントに参加し、受験料半額のバウチャーを
Private環境でパスワード認証(SecretManager + Lambda)のTransfer Familyを使ってEFSにファイルをアップロードしてみた(FTP)
# 概要
Private環境でパスワード認証のTransfer Familyを使ってEFSにファイルをアップロードしたいと思い、色々ぐぐって調べてみました。その結果、以下のような記事がクラメソさんから上がっていて非常に助かったんですが、残念ながら記事ではPrivate環境用ではなかったので、Private環境用に直した流れを記載します。
[参考にしたクラメソさんの記事](https://dev.classmethod.jp/articles/upload-files-directly-to-efs-via-sftp-using-transferfamily-for-vpc-internet-key-password-authentication/)# 構成
構成は以下の通りです。PrivateなEC2からVPCEndpoint経由でEFSにファイルをアップロードします。Transfer Familyはパスワード認証なので、ユーザ名やパスワードをSecrets Managerに持たせて、Lambdaで認証します。
![名称未設定ファイル-ページ3.drawio.png](http
AWS SDK V3 のSNS(Simple Notification Service)で、いくつか動作確認した話(AWS SDK V2 → V3 移行Tips)
# はじめに
https://qiita.com/Syoji_Yonemoto/items/f96a4d10b05715e95d1c
引き続いて、今度は、SNS(Simple Notification Service)についても確認しました。
と言っても、それ程、確認したメソッドは多くありません。# 結論
SNS(Simple Notification Service)に関しては、私が普段使うメソッド群については、問題ありませんでした。
やはり、Firehoseだけが罠だったのでしょうか、、、# V2 と同じ使い方で問題なく動作確認できたメソッド
+ subscribe
+ publish# 余談
subscribeが、「何故あるのか?」というネタ話。その昔、SNS(Simple Notification Service)にLambdaをsubscribeするのに管理コンソールからは、「一覧に表示された100件の中からしか選択できない。」というイケてないUIだった時代があって、LambdaからARNを指定して、subscribeを追加するという運用をしていた時期が
複数 ENI がアタッチされた EC2 インスタンスを AWS Backup からリストアする
## やりたいこと
* 複数 の ENI がアタッチされた EC2 インスタンスを AWS Backup でバックアップ
* 復旧ポイントからリストアした際にも、複数 ENI がアタッチされた状態でリストアしたい## 実現方法
* AWS CLI または SDK などから、StartRestoreJob API を実行する必要がある
* コンソールから起動するリストアジョブでは、ネットワークインターフェースをカスタマイズできない## 複数 ENI がアタッチされた EC2 のバックパップ
複数 ENI がアタッチされた EC2 も AWS Backup でバックアップすることができます。バックアップデータは AMI として保存されますが、AMI にはネットワークインターフェースの情報は含まれません。ただし取得された復旧ポイントのメタデータにはネットワークインターフェースの情報が含まれています。復旧ポイントのメタデータは [GetRecoveryPointRestoreMetadata API](https://docs.aws.amazon.com/ja_jp/aws-ba
EC2の自動停止
# 概要
awsを使ってインフラを構築する際、ec2インスタンスを停止することを忘れてしまうことが多くありました。
使用していない時間の稼働費用ってもったいないですよね…!
防ぐために共有しようと思いました。# EC2自動停止
・`CloudWatch` > `イベント` > `ルール` > `ルールの作成`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2886909/b10e8251-13e7-5040-12d5-8fb693621afc.png)・スケジュールを選択
・停止したい時間をCron式で入力
※GMTなので日本時間に合わせるため**+9時間**する
・例として今回は毎日22:00に停止→`0 13 ? * * *`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2886909/d1ee2f6c-92d4-c389-0178-ffdc6645556a.png)
会社で利用しているBizRobo! の運用環境と構成を紹介します
月一投稿のつもりで始めたブログですが Organization 機能の利用には一定の投稿実績が必要らしいので、しばらくは頻度上げて投稿していきます。
## はじめに
BizRobo!はサーバ型のRPA製品なので、多くの場合[^1]サーバ環境を構築して運用します。
ここでいうサーバとは大きなコンピュータという意味ではなく “`サービスを提供する役割“` のことで、専用のソフトウェアを指します。[^2]ややこしく思えるのは、サービスを提供する規模が小さい場合には1台のPCに複数のサーバを構築してしまうのが効率的ですし、一定以上の規模(ロボット数や利用者数)が見込まれる場合にはサーバごとにコンピュータを分けて構築することが合理的であったりする点です。
インフラの扱いに慣れていたりBizRobo!をある程度使ったことがある人なら何となく妥当なサーバ構成をイメージできるかもしれませんが、初めてBizRobo!に触れる人にとっては考えるための「とっかかり」がなく不安になるのではないでしょうか。
弊社サポート部門でも顧客からの問い合わせに応じて環境構成の指針を提供したり一緒に考えたりし
AWS CDKについて学ぶ→TypeScriptでTDDを意識して実践→CDKプロジェクトの環境別のデプロイを考えてみた
# はじめに
[AWS CDK](https://aws.amazon.com/jp/cdk/)は、AWS リソース(インフラやサーバーなど)をコードから構築できる開発キットで、このAWS CDKを使ってAWS リソースを構築したくて勉強しました。
個人的にAWS公式サイトは迷子になるので、勉強したことを残しておきたくて記事にしました。
(ただのやってみた系の記事です)## やったこと
– AWS CDKについて理解する
– AWS CDKを使った開発方法を理解して、実践する
– テストコードも書く(TDDを意識)
– 環境(開発・検証など)が分かれている場合の実装方法を考えて実践する※ 開発方法の理解が目的なので、記事内で出現するコードは簡単な内容で実装しています。
※ [CDK Pipelines](https://aws.amazon.com/jp/blogs/news/deploying-a-cdk-application-using-the-cdk-pipelines-modern-api/)を使った自動デプロイはやっていません。## 前提知識
【AWS】ECS+FARGATEでサービスのタスクを更新する
ECS+FARGATEの構成でWebアプリを作成しようと思っているので、ソースを変更したときにサービスの更新もしなければならないのでやってみる
現状はこんな感じ↓ フリー席予約アプリを作ろうと思っているので「Hello World フリー席予約アプリです」が表示されている
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884542/cf4b1cbe-d94f-9cc6-1c79-53fc21d44208.png)1. ソースの変更
codecommitでソースを管理しているので変更していきたいと思う
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884542/301ece5b-620e-894b-68e5-c48917cc0893.png)
今回は「こんにちは! フリー席予約アプリです」とした2. タスク定義を変更する
![image.png](https://qiita-i
【AWS】CodeBuildのエラー COMMAND_EXECUTION_ERROR
AWSでcodebuildをしたら`COMMAND_EXECUTION_ERROR: Error while executing command: docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG -f $DOCKERFILE .. Reason: exit status 1`なるエラーが出力され、うまくいかなかった。
https://qiita.com/tatsuakimitani/items/b4447635476c628f5dee
↑の方の記事を見てみたが、当てはまるものはなく・・・
そこで、ログを見てみると・・
“`
[eslint]
src/App.tsx
Syntax error: ‘>’ expected (23:4)
“`
そのまま書かれていました
下のコードの`>`が抜けていました
何かの拍子に削除してしまったようです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884542/51804e47-9364-e36e-7
Terraformでセキュリティグループを設定してEC2にhttp接続する
# はじめに
Terraformの勉強を始めたので備忘録を兼ねて行ったことを投稿しようと思います。
これは[前回の投稿](https://qiita.com/kakita-yzrh/items/980f3209d587e7e349a6)の続きです。
前回の投稿ではTerraformでIAMを設定してEC2にセッションマネージャー経由で接続しました。
今回はhttp接続できるようにセキュリティグループをTerraformで設定します。
※EC2にはセッションマネージャー経由で接続できるので、予めnginxをインストールして起動しておきます# Terraformでセキュリティグループの定義を行う
### http接続用のセキュリティグループを定義
http接続できるようにセキュリティグループを定義します。
“`terraform:securitygroup.tf
resource “aws_security_group” “test” {
name = “tf_test”tags = {
Name = “tf_test”
}
}resource “aws_
【AWSコスト最適化設定】AWSを安く使おう!
## 前書き
AWSを何も考えずに学習していると、びっくりしてしまうような請求が
来てしまった。。そんな経験がある方もいらっしゃるのでは。。
今回はSAAアソシエイト試験の学習も兼ねて安く!安心に!
利用する方法をまとめてみました!## コスト最適化とは?
いわゆる安く使うために必要な設計が必要になります。
具体的には。。・不必要なリソースを少しでも削減する
・ケースごとに最適なサービスを利用する
・マネージド型サービスを上手く使いコスト削減
・請求されるコストを把握すること
など。。公式にもコスト最適化のための記事が出ています!
https://aws.amazon.com/jp/architecture/cost-optimization/?cards-all.sort-by=item.additionalFields.sortDate&cards-all.sort-order=desc&awsf.content-type=*all&awsf.methodology=*all
## AWSの課金の仕組み/課金を抑える
基本的にAWSは利用料に比例してコストが
【AWS学習】AWSサービスとグローバル、リージョン、AZとの関係
## AZ(アベイラビリティーゾーン)
物理的なデータセンタ群。地理的にも電力的にも独立している。
そのため、落雷や大雨などの浸水などの障害が発生しても他のAZに影響が出ないように配置されているAZ間で冗長的に配置することで、可用性の高いシステムを構築することができる。
AWSが掲げる7つのベストプラクティスである「故障に備えた設計で障害を回避」にも該当する。## リージョン
複数のAZが存在する地域——-
リージョン > AZ
リージョンの中にAZが配置されているイメージ
例) 東京リージョン > 新宿AZ(本当はどこに配置されているか不明だけどイメージで。。。)## サービスレベル
**注意**
1つのリージョン内のAZサービス間であれば、プライベートIPアドレスで接続できる。
リージョン間では、グローバルIPアドレスで接続しなければならない。グローバルサービス > リージョンサービス > AZサービス
### グローバルサービス
どこのリージョンからでも共通のサービスとして利用できる### リージョンサービス
リージョン毎に作成・管理される
[AWS][Terraform]Iot ruleをLambdaのトリガーに設定する方法
# はじめに
– 最近業務でTerraformを使ってLambdaのトリガーにIot ruleを追加する機会があったので、設定方法を備忘録として残しておきます。
– バージョン
– Terraform:1.3.5
– aws provider:4.49.0# やりたいこと
– TerraformでLambdaのトリガーにIot ruleを追加したい
※マネジメントコンソールから追加する場合は下記のようにLambda設定画面から「トリガーを追加」をクリックし、「AWS Iot」を選択し、「Rule」のARNを入力すればOK
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2954734/51ff6f2e-19c3-a83a-dde3-3cad295ece74.png)# ハマったこと
以下のIot ruleリソースを作成するTerraformコードを作成し、lambdaブロックのfunction_arnに対象Lambdaを記述したのですが、terraform appl
Auto Scaling グループの起動テンプレートでの spot インスタンスの嵌り
起動テンプレートで、スポットインスタンスを選択して、デフォルトに設定、楽しみに待っていても、インスタンスが立ち上がってきません。
Auto Scaling グループの、アクティビティ履歴を確認すると、起動に失敗したという内容で、以下のような文言があります。
“`
Launching a new EC2 instance. Status Reason: The attribute ‘disableApiTermination’ cannot be used when launching a Spot instance. Launching EC2 instance failed.
“`終了保護を外すことにより、ターゲットグループにインスタンスが立ち上がるようになりました。
インスタンスの詳細を確認してみると、ライフサイクルが、spot となっています。
これで、安くなっているのでしょうかね。
試しに、インスタンスを停止しようとしてみました。
“`
You can’t stop the Spot Instance ‘i-xxxx’ because it is asso
AWS クラウドプラクティショナー受験記録
昨年、AWS認定クラウドプラクティショナーに合格しました。
![スクリーンショット 2023-01-10 22.38.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691862/706a44d8-9c54-d0dd-6189-fad16dc982cb.png)かなり時間が経ってしまいましたが、勉強開始〜受験までを記録に残そうと思います。
筆者は未経験入社の3年目です。AWS実務経験も無し。# 受験動機
・~~資格手当ほしい~~
・新卒研修時に触れてたこと(EC2構築、S3の使用くらい)
・実務で触れる機会が出来たとき用に最低限の知識がほしい
~~・AWS分かってたらちょっとカッコいい~~’22/7月ごろに受験を決め、業務や予定との兼ね合いで受験日を9/3に決めて申し込みました。
# 使用テキスト
[AWS認定資格 クラウドプラクティショナーの教科書: 合格へ導く虎の巻 CloudTech制作委員会シリーズ Kindle版](https://www.amazon.co.jp/g
AWS DataSyncとAzure File Sync 比較 ~AWS DataSync動作確認編~
AWS DataSync(以下、DataSync)と Azure File Sync(以下、File Sync)シリーズの4本目の記事です。
1本目は記事はこちら
[AWS DataSyncとAzure File Sync 比較 ~共通点と相違点~](https://qiita.com/hidekko/items/9610ef551999f6ea1f37)
2本目は記事はこちら
[AWS DataSyncとAzure File Sync 比較 ~前提条件定義編~](https://qiita.com/hidekko/items/45eab57f6c6088eb1607)
3本目は記事はこちら
[AWS DataSyncとAzure File Sync 比較 ~AWS DataSync構築事前準備編~](https://qiita.com/hidekko/items/8e7a3fb6494462926597)
4本目の記事はこちら
[AWS DataSyncとAzure File Sync 比較 ~AWS DataSync構築編~](https://qiita.com/hidekko/i
AWS cloud9で表示数を増やす方法
ログなど出力の量が多いものを表示させたい場合に、デフォルトの表示数が少ないため
全ての出力が表示されない場合があります。
cloud9のターミナルに表示できる数を増やす設定ができます。右上歯車>Usersetting>Scrollback(デフォルト1000なので数を増やします)
AWS LambdaでSSM RunCommandを実行する(AWS SDK for JavaScript v3)
# 概要
LambdaからSSMのRunCommandを実行する処理の作成方法について記述します。言語は`JavaScript`でSDKのv3(バージョン3)で書いてあります。v3では、サービスのインスタンスを作成して、非同期で`send`メソッドを呼び出すというのが全サービス共通の書き方になります。`send`メソッドはPromise型を返します。何のアクションを行うかは`send`メソッドの引数の型によって判断されます。
## 公式ドキュメント
https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/
# サンプルプログラム
## 処理の流れ
SSMClient生成 → SendCommandCommand生成 → send実行 → ListCommandsCommand生成 → send実行 (RunCommandが終了するまで繰り返し) → send実行 → send実行 → …
注意点としては、RunCommandを実行した後その処理がサーバーで正常終了したのか異常終了したのかすぐにわからない点です。R
クラウドプラクティショナーの備忘録
# はじめに
AWSのクラウドプラクティショナー取得のために勉強したことをまとめます。https://aws.amazon.com/jp/certification/certified-cloud-practitioner/
こちらのサイトに試験ガイドや模擬問題が提供されています。
# 試験ガイドについて
4つの分野から問題が出されるそうなので、試験ガイドの中にある出題範囲のリストをベースに何となく大事そうだと思ったポイントを記載しておきます。
## 第1分野 クラウドのコンセプト
* 総所有コスト(TCO)を削減するために「資本的支出(CapEx)」を「運用維持費(OpEx)」に変えていくことができる。モノを持たないことで、変化に強い財務体質が作れる。
* Well-Architectedが5本柱からサステナビリティが追加されて6本柱になった件## 第2分野 セキュリティとコンプライアンス
* 責任共有モデルはサービスによって異なる
* EC2はOS以上がユーザー責任
* RDSはデータとプログラムがユーザー責任
* lambdaはプログラムだけが