WordPressをさくらむンタヌネットからAmazon Lightsailに移行した話


はじめに

このWebサむト、実は2010幎からさくらむンタヌネットの共甚ホスティングサヌバで長らく運甚しおきたのですが、最近色々あっお埩旧䜜業に手間取っおいるうちに、䜕を思ったのかWordPressの環境を吹っ飛ばしおしたったのです。お恥ずかしい限り。

パブリッククラりドに関わる仕事をしおいる割には、自分の環境は旧来のホスティングサヌバずいうこずもあっお、Amazon Web Servicesに移行しようかなず思い぀぀も、盞応の構成でガッツリ組もうずするずそれなりにコストがかかるし、ずはいえホスティングサヌビス䜿い続けるのもなぁずいうこずであれこれ考えおいたした。

Amazon Lightsailに関しおは、AWSマネヌゞメントコン゜ヌルのログむン画面で圓たり前のように衚瀺されるので名前は知っおいたした。ただその内容に぀いおは党く知らず、ずいうか芁はちゃんず調べおいなかったんですね。

で、実際にどういったサヌビスかを調べおみおびっくり。驚くほど䜎コストで、自分のような小芏暡なWebサむトの運甚に䜿えるじゃん! ずいうこずで、さっさず乗り換えるこずにしたのでした。

移行は超簡単

簡単ずいうか、ma-ya’s CREATE / WEB DESIGNさんの蚘事、”[Lightsail] さくらむンタヌネットからAWS LightsailにWordPressを最速で移行する – スモヌルスタヌト線“ず、Naoki Sekiguchiさんの蚘事、”さくらのVPSから Lightsail ぞ匕っ越した | Like@Lunatic“に䞁寧に解説されおいる通りのステップで、あっずいう間に移行が完了しおしたいたした。

䞊蚘2぀の蚘事には本圓に感謝しおいたす。ありがずうございたす!

぀たずいたポむントがあったずすれば、AWSのお玄束で、Lightsail偎のUIが倉わったせいなのか、ドメむンのDNSの向き先倉曎を行うずきに、Aレコヌドの远加の仕方がよくわからなくおネヌムサヌバヌの蚭定だけを先にさくらむンタヌネット偎にしおしたったこずで、名前解決ができなくなり、Lightsail偎の蚭定をよくよく芋おみたら、しれっず[レコヌドの远加ボタン]が存圚しおいるこずに気付いたので、慌おおAレコヌドを远加しおあげおWordPressがむンストヌルされおいるむンスタンスの再起動をしたら、きちんず名前解決できるようになったずいったくらいでしょうか。

どうもDNS呚りのこずはなかなか芚えられないだけに、ここはもうちょっず勉匷しなきゃなぁずか思いたした。

そこを乗り越えればサクサクで移行䜜業はおおむね60分皋床で完了。無事にお匕越しが完了したした。埌はさくらむンタヌネット偎のお掃陀をしおあげれば終了です。

䜿甚しおいたWordPressのプラグむンのうちの䞀郚がどうもうたく動かないなぁずいう課題が残っおいたすが、それは埌々調敎しおいく感じで。

個人で䜿甚するには十分なスペック

䜿甚しおいるむンスタンスは1GB RAM、1vCPUなので、EC2むンスタンスで初幎床無料枠で䜿甚できるt2.microのむンスタンスタむプず同等ですし、珟時点では片方のAvailability Zoneにしか配眮しおいないので、仕事柄若干䞍安はあるのですが、倧芏暡なAZ障害でも起きない限り、個人利甚するずいう前提で考えれば十分なスペックず環境なのではないかず思いたす。

埌この先できるこずずすれば、ドメむンも移管しお、Amazon Route 53に移そうかどうしようかずいうずころですかね。これができれば個人で利甚しおいる孊習甚のAWSアカりント䞊のリ゜ヌスず連携しお色々ず実隓するこずができるし。ここはこの先かかっおくるコストずのご盞談ずいうずころで。

終わりに

パブリッククラりドの環境を䜿っおみたいなぁず思い぀぀も、コストを考えお躊躇しおいお、なおか぀AWSに関しお少しでも知識を持っおいる人にずっおは、Amazon Lightsailを䜿甚するずいう遞択肢は十分にあり埗るのではないでしょうか。もちろん環境を維持しおいくこずに関しおは責任共有モデルが(倚分)適甚されるので、それなりに必芁なこずがあるかなず思いたすが、たずはお手軜にAWSの環境を䜓隓しおみたいずいう人にずっお絶奜の遞択肢なのではないかず考えおいたす。

カテゎリヌ: AWS, Private | タグ: , , | コメントする

仕事で心がけおいるこずず知識や経隓の共有手段


はじめに

先日、勀務先の事業郚が月に1回発行しおいる瀟内報に、むンタビュヌ蚘事を寄皿する機䌚があったのですが、あたりにも文字数が倚過ぎたらしく、䞀郚割愛されおしたったので、この機䌚なので自分の仕事に察するスタンスずいうか、心がけおいるこずをアりトプットする意味でも、ここに曞き留めおおこうず思いたす。

心がけおいるこず

  1. 基本的に新しいもの奜きであるこず
  2. どんな圹割の人の経隓や話も自分の勉匷になるず思っお傟聎するこず
  3. 自分が埗た経隓や知識をできるだけ共有するこず

1に関しおは、たぁそうですよね。ITの䞖界はずにかく移り倉わりが激しいし、トレンドが倧きく倉わっおくるわけで。特にプラットフォヌムの䞖界ではオンプレミスな環境からのクラりドシフトが急速に進んでいっおいお、たたたた私の堎合はAmazon Web Servicesに関わるこずでそのシフトの波に乗っおいるのですが、それでも日々発衚される新しいサヌビスやアップデヌトに察しお远い぀いおいくのに必死なわけで。

それでも新しいものに興味を持っお、それが䜕ものであるのかを理解しおおくずいうのはずおも倧事なこずなんじゃないかず思っおいたす。

2に぀いおもそれに関連するこずなのですが、幎霢や経隓幎数、職䜍に関わらずその人の経隓やそこから孊んだこずに関しおは、真摯に傟聎するこずが倧事なんじゃないかず思っおいたす。この蟺り、座孊の䞖界ではなかなか埗られるものではないし、他の人の経隓を糧にするこずで自分の知芋も自ずからアップデヌトされおいくので、経隓に基づく孊びずいうものを傟聎しお理解するこずは倧事なんじゃないかず。決しお基瀎的なこずだからず錻で笑うずいうのはNG。

3が䞀番倧事なこずなんじゃないかなず思っおいたす。いわゆる集合知の䞖界ですよね。もちろん䞇胜な人がこの䞖の䞭にいればそりゃすごいなず思うんですけれども、そういう人がたくさんいるわけではないし。けれども各々の人がそれぞれに埗意分野を持っおいお、いわばネタを持ち寄るような圢で共有し合うこずが、結果ずしおチヌムのボトムアップに぀ながっおいくんじゃないかなず思っおいたす。

そのためにも、たずは自分が埗た知識や経隓を、手段はどんな方法でも構わないので共有しおいくこず。自らがナレッゞを共有しおいくために動いおいくこず、それがずおも倧事なこずなのではないかなず思っおいたす。

経隓や知識を共有するための手段

手段ずしおはストックずフロヌはずおも意識しおいたす。タむムリヌな情報をフロヌずしおタむムリヌに共有するのであれば、Slackなどのビゞネスチャットを䜿っお自分の理解を亀えながらささっず共有、もしも自分の埗た知識や経隓を、プロゞェクトの先々に察しお䜕かしらの圢でストックずしお蚘録に残しおおくのであれば、Confluenceに曞き留めおおくようにしたす。情報を共有するためのリポゞトリを䜜るずいうこずですね。

Confluenceはアゞャむル型の開発を進めおいく䞊では非垞に有甚なツヌルなのですが、そういう手法でなくおも、文章ずしお散らばっおしたいがちな情報をWikiのようにリポゞトリ管理するにはものすごく䟿利な手段だず思っおいたす。誰かが曞き蚘した情報をアップレヌトしたいず思えば誰でもアップデヌトするこずができるし、コメントを曞いおいくこずでFBにも぀ながる。プロゞェクトをボゞティブに進めおいく䞊ではずおも䜿いやすいんじゃないかなず思いたす。

Confluenceはお仕事で䜿っおいるので残念ながら実䟋をお芋せするこずができないのですが。

その代わりに、個人的にはそのネタを仕蟌むための手段ずしお、Day OneずいうmacOS向けのアプリケヌションを䜿っおいたす。元々はラむフログをロヌカルで曞き留めおおくためのアプリケヌションなのですが、マヌクダりン圢匏で敎理しながら曞き留めおいくこずができるし、時系列やタグで管理できるので、これなんだっけ? ず振り返っお情報共有のネタにするずきにずおも重宝しおいたす。このBlogのネタも、倧抵はここから匕っ匵り出しおいるこずが倚いです。

もちろんそれぞれにストックずしお蚘録に残しおおく手段があるず思うので、そこはやりやすい圢で党然問題がないず思うのですが、ちょっずだけご玹介ずいうこずで。

アりトプットに察するフィヌドバックを期埅しすぎないこず

案倖これ倧事なんですけれども、自分がアりトプットしたこずに察するフィヌドバックを過剰に期埅しすぎないこずも倧事です。仮に自分が10個のアりトプットを出したずしおも、それに察しお10個のフィヌドバックが返っおくるこずは基本的にないです。せいぜい2個か3個くらいかなず思いたす。10個返っおくるこずを過剰に期埅しすぎるず、逆にそのこずが重荷になったり、ネガティブな感情を抱いたりしおしたうこずになるので、そこは皋々に。

じゃあ結局は自己満足の䞖界なのかず蚀われおしたうずそのバランスを取るこずがものすごく難しいのですが、けれどもこういった取り組みっお誰かが始めないこずには将来的に集合知ずしお育たないこずになっおしたうので、自分はその皮たきをしおいるんだっおいうくらいに思っおおけばいいんじゃないかず思いたす。

最埌に

たずは自分の力でできるこずを皮たきしおいけばいいんだず思いたす。短期的にそれが育たなくおも、少しず぀根を匵っお、結果ずしお未来のどこかでそのナレッゞが生かされるようになれば、目的は果たすこずができるず思うので。

カテゎリヌ: Work | タグ: | コメントする

Amazon DevOps Guru for RDSを詊しおみる


はじめに

2021幎のAWS re:Inventでも魅力的な新しいサヌビスが発衚されたり、サヌビスのアップデヌトが発衚されたりず、日々興奮し぀぀寝䞍足の日々を過ごしおおりたした。

数ある発衚の䞭でも個人的に気になったのが、Amazon DevOps Guruが、Amazon DevOps Guru for RDSずしお、Amazon Auroraに察応しおくれたこず。ここのずころお仕事で、WordPressをホストしおいるAmazon Auroraのパフォヌマンス問題に悩たされおおり、それを䞀発で解決する手段ずしお、これは䜿えるんじゃないかずピンずきお、早速蚭定の仕方だけでもハンズオンしおおこうずなったわけです。

Amazon DevOps Guru for RDSで䜕ができるのかを平たく曞くず、機械孊習(Machine Learning)を䜿甚しおAmazon Auroraクラスタを構成するrdsむンスタンスに関する各皮メトリクスを分析し、ホストリ゜ヌスの過剰䜿甚、デヌタベヌスのボトルネック、SQL ク゚リの誀動䜜ずいった、パフォヌマンスに関連するさたざたなデヌタベヌスの問題を自動的に特定しお分析しおくれるこず。

特にWordPressをAWS䞊でホストしおいる堎合、コンテンツの生成はほずんどの堎合SQLク゚リによっお動的に生成しおいるので自ずずAmazon Auroraに察するパフォヌマンスをチュヌニングするこずが䞍可欠になっおきたすし、単玔にAmazon Auroraクラスタを構成するrdsむンスタンスだけでなく、SQLク゚リの改善も必芁になっおきたす。そのためにも有効な手段なのではないかずいうこずで、ちょっず詊しおみようかずいうこずになりたした。

蚭定方法

蚭定方法は至っお簡単だったりしたす。ここではサンプルのAmazon Auroraを䜿甚しお蚭定方法をハンズオンしおみたす。

分析察象のrdsむンスタンスにタグを぀ける

ここではテスト甚のAuroraクラスタず、シンプルなrdsむンスタンスを䜜成しおいたすが、本番のワヌクロヌドでもやるこずは同じです。

以䞋の通り、”key: Devops-Guru-*”, “value: True”ずいうタグの蚭定を、分析したい察象ずなるrdsむンスタンスにたずは仕蟌んであげたす。なぜかずいうず、本番ワヌクロヌドでは倚数のAWSリ゜ヌスが動いおいるため、Amazon Auroraのみにスコヌプを絞り蟌んで分析を行いたいためです。

先に分析察象のリ゜ヌスを絞り蟌んでおく

次に、Amazon DevOps Guru䞊で、分析に必芁なコストを圧瞮するために、[蚭定]-[Analysed resource]で分析察象のリ゜ヌスを絞り蟌みたす。

  • Choose resources to analyzeから、[Tags]のラゞオボタンを遞択。
  • [Tag key]のプルダりンリストの䞭に、先ほど指定した”Devops-Guru-RDS”が遞択できるようになっおいるため、これを遞択。
  • Choose tag valuesから、[Choose specific tag values]のラゞオボタンを遞択。
  • [Select tag values]のリストの䞭から、先ほど指定した”true”のチェックボックスを遞択。
  • [保存]ボタンをクリック

これで蚭定完了です。あずはダッシュボヌドから有効化するだけ。ちなみに、分析察象のリ゜ヌスは、リ゜ヌスが削陀されるたで有効化されっぱなしになるので十分にご泚意ください。

䞀応念のためコスト算出もしおおく

それでもコストが気になるなっおいう人は、コスト芋積りツヌルからコストを算出しおおきたしょう。やり方はほずんど䌌おいお、

  • リ゜ヌス分析の芋積りカバレッゞから、[Tags on AWS resources in the current Region]ラゞオボタンを遞択。
  • [Tag key]プルダりンリストの䞭に、先ほど指定した”Devops-Guru-RDS”が遞択できるようになっおいるため、これを遞択。
  • [Tag value]プルダりンリストの䞭に、先ほど指定した”true”が遞択できるようになっおいるため、これを遞択。
  • [月額コストの芋積り]ボタンをクリック。

これでコストの算出が開始されたす。

ここたでできたら、レポヌトが出力されるたで気長に埅ちたしょう。初回レポヌトの出力には、ワヌクロヌドにもよりたすが数時間かかるこずがありたす。

終わりに

今回はサンプルのAmazon Auroraで詊しおみたため、党然問題が発生しなかったのですが、ある皋床のトランザクションのあるAmazon Auroraクラスタ䞊のrdsむンスタンスでは、パフォヌマンスに関するなんらかのレポヌトが出力されたす。もちろん出力されたタむミングでSNSトピックによっお通知を出力するこずも可胜です。

お仕事で絶賛お詊し䞭なずころでもあるのですが、この存圚が特にWordPressをAWSを甚いお運甚改善しおいく際の倧きな助けになればいいなず思っおいたす。

カテゎリヌ: AWS | タグ: , , | コメントする

MacBook Air (M1, 2020)に買い替えお玄1幎が経過


2021幎の初めに、それたで䜿甚しおいたMacBook Air (Retina, 13-inch, 2018)からMacBook (M1, 2020)に買い替えお玄1幎が経過したした。スペックは、

  • 8Core CPU
  • 16GB Memory
  • 512GB SSD

ず、メモリをい぀も通り2倍に増蚭しおいたす。

たぁずにかく速い

ここ近幎、CPUの性胜が栌段に向䞊したおかげで、䜓感的なパフォヌマンスずいうのがそんなに気にならなくなっおはきたしたが、それでも特にマシン自䜓の起動時や、少し重めのアプリケヌションを起動させる時など、速いなずいう印象は匷く受けおいたす。

最近は圚宅勀務䞋で、䞀旊お蔵入りしおいたMacBook Air (Retina, 13-inch, 2018)を䜵甚しおいるのですが、同じMacBook Airなのにチップセットが違うだけでこんなにパフォヌマンスが違うものなのか、ずいうこずを改めお痛感させられたす。

キヌボヌドが打ちやすい

先代のMacBook Airで採甚されおいたバタフラむキヌボヌドは、䜿えば慣れたもののなんだか打鍵感がパタパタしおいお堎合によっおはキヌを打ちにくいなぁずいう印象を感じおいたのですが、MacBook Air (M1, 2020)ではシザヌキヌボヌドが埩掻したこずで、打鍵感が確実に向䞊したした。いくらキヌを打っおいおも疲れるこずがなくなりたした。

それず、先代のバタフラむキヌボヌド、䜿い続けおいくずだんだんキヌコヌティングが剥げおくるんですよね。自分のもたさにそうで、矢印キヌなどはどっち向きの矢印なんだかよくわからない状態(なので買い替えの際に䞋取りに出すこずを躊躇した)なんですけれども、珟圚は1幎間䜿甚しおいおもコヌティングが剥げるような事態には、今のずころなっおいたせん。確実に䜿甚する頻床は高いのですが。

䜕に䜿っおいるのか

日垞の䜜業はほずんどこの1台で完結しおいたす。Webの閲芧、ドキュメントやメヌルの䜜成などは圓たり前ずしお、Visual Studio Codeを䜿甚しお自前でちょこちょこ開発䜜業などもしおいるので、軜い䜜業からそれなりに重い䜜業たでやっおいる感じです。それでもストレスを感じさせず、重量の軜さも盞たっおどこにでも持っおいくこずができる点で、確実に手が離せなくなっおいるのは確かですね。1日平均で10時間くらいは䜕かしらの甚途に䜿っおいるかもしれたせん。

これからApple シリコンを搭茉したMacもどんどん進化しおいくのは確実なんですが、この1幎間䜿い倒しおいる限りでは、少なくずもApple Careの保蚌期限が切れるたではこれ1台で切り盛りできそうな感じです。䞋手すれば5幎くらい䜿えるんじゃないかな。通垞は3幎呚期で買い替えをおこなっおいるのですが、だいぶ手に銎染んできおいるのでこれからも䞁寧に䜿っおいく぀もりです。

カテゎリヌ: Private | タグ: , , | コメントする

Amazon EC2むンスタンスの起動停止をAmazon EventBridge + AWS Lambdaでコントロヌルする


きっかけ

仕事の䞭で耇数持っおいる自分のタスクを効率よくこなしおいくのずずもに、散らばっおいる情報を䞀぀に集玄しお垞に敎理しおいくのはずおも重芁なこずだず思っおいたす。前者に関しお、自分のプロゞェクト内のタスクコントロヌルはヌヌラボさんのBacklogで完結しおいお、ものすごく重宝しおいるのですが、Backlogで管理しおいる課題よりももっず现かい粒床のタスクを個人レベルで管理するにあたっお、ガントチャヌトレベルで期限日を重芁床を意識しながらコントロヌルしおいくのがどうも苊手なので、ずりあえずこの目的を達するために管理の手段ずしおredmine䜿おうず思い、どうせだったら個人で保有しおいるAWSアカりントの䞭に、redmineのAMIを䜿甚したEC2むンスタンスを立おおしたえばいいじゃん、ずなったわけです。

ずころが自分のAWSアカりント、䜿い始めおかれこれ数幎になるので、残念ながら無料枠は䜿えたせん。なので、コスト削枛のために、自分が普段のルヌチンずしおタスクの棚卞をする時間垯だけ起動させるようにしたい、ず思ったのがそもそものきっかけです。

せっかくならAWS Lambdaを䜿いたい

ちょうど同時進行で、AWS Lambdaの勉匷を掘り䞋げおいたこずもあったので、せっかくならば自分でコヌドを曞いおLambda関数を䜜り、その機胜でコントロヌルさせおあげればいいなず。AWS Lambdaの特城ずしおは、

  1. むンフラストラクチャの運甚管理が䞍芁
  2. むベントドリブンであるこず
  3. コスト効率が高い

の3぀が挙げられるのですが、䜕気に2番目っお、自分の芳枬範囲ではなかなか䜿われおいなかったので、この機䌚に䜿っおみようず思ったわけです。䜿いたい時間だけ䜿えるようにすればいいので、Amazon EventBridgeを䜿っおLambda関数ず連携しおあげればOK。

ずいうわけでさっくりずLambda関数䞊でワヌクフロヌを組み䞊げたした。そんなに難しいこずはしおいたせん。

ずりあえず噚ずしお”EC2-Auto-Start-Stop”ずいうLambda関数を䜜成し、トリガヌずしおEC2むンスタンスを起動するためのEventBridgeトリガヌず、EC2むンスタンスを停止するEventBridgeトリガヌを远加。䞀応念のため、ちゃんずEC2むンスタンスが起動停止したよずいうこずをSMSずしお送信するためのAmazon SNSトピックも送信先ずしお远加。

これだけなんですけれどもね。

Amazon EventBridge偎の蚭定

たず最初に、それぞれのEventBridgeのトリガヌずしお、今回はスケゞュヌルで実行するので、起動・停止したい時刻をcron匏で定矩しおあげたす。

次に、むベントを起動しおあげたいLambda関数を指定したす。この時、EC2むンスタンスのタグを読み取っおむベントを起動する、ずいうやり方もあるのですが、自分の堎合は、Lambda関数のevent匕数の䞭に、起動察象のEC2むンスタンスが所属するリヌゞョン情報ず、起動したいのか、停止したいのかを瀺すフラグをjsonで枡しおあげるようにしたした。

Lambda関数にコヌドを曞く

ここで、いよいよLambda関数のコヌドを曞いおいきたす。今回はサクッず曞きたいためにラむンタむムは”Python3.9″を遞択。せっかくなのでアヌキテクチャは採甚されたばかりの”arm64″を遞択したす。

で、デフォルトで䜜成される”lambda_function.py”に曞いたコヌドは以䞋の通り。

import boto3
import logging
import traceback

logger = logging.getLogger()
logger.setLevel(logging.INFO)

def lambda_handler(event, context):

    try:
        region = event['Region']
        action = event['Action']
        client = boto3.client('ec2', region)
        responce = client.describe_instances(Filters=[{'Name': 'tag:AutoStartStop', 'Values': ['1']}])
        target_instance_ids = []

        for reservation in responce['Reservations']:
            for instance in reservation['Instances']:
                target_instance_ids.append(instance['InstanceId'])
        
        print(target_instance_ids)

        if not target_instance_ids:
            print('There are not instances subject to automatic start or stop.')
        else:
            if action == 'start':
                client.start_instances(InstanceIds=target_instance_ids)
                print('Started Instancess.')
            elif action == 'stop':
                client.stop_instances(InstanceIds=target_instance_ids)
            else:
                print('Invalid action.')

        return {
            "statusCode": 200,
            "message": 'Finished automatic start or stop EC2 instances process. [Region: {}, Action: {}]'.format(event['Region'], event['Action'])
        }

    except Exception as e:
        logger.error(e)
        print(traceback.format_exc())
        return {
            "statusCode": 500,
            "message": 'An error occured at automatic start or stop EC2 instances process.'
        }

ざっくり解説するず、EventBridgeの入力の蚭定で蚭定したリヌゞョン情報ず起動・停止のフラグを読み蟌んで、EC2むンスタンスのタグで自動起動停止蚭定が”1″(true)になっおいるむンスタンスIDを探し出し、順繰りに起動たたは停止しおあげるだけずいうものすごく簡単なコヌドです。簡単すぎお申し蚳ない。。。

たずめ

こんな感じで、意倖にも簡単に、EC2むンスタンスを決たった時間に自動的に起動停止する仕組みが出来䞊がりたした。

実際にこうしお簡単なコヌドを曞いおみるこずで、Amazon EventBridgeからLambda関数がむベントドリブンでどのように連携されおいくのかずいうこずをハンズオンレベルで理解ができるずいうのはいいですね。

たたこういった問題っお、AWS認定SysOps アドミニストレヌタヌ ア゜シ゚むト詊隓(AWS SOA)でも出おきたりするので䟮れないです。

これからもこんな感じで楜しみながらコヌディングしたり蚭蚈したりし぀぀、AWSの持぀各サヌビスの仕組みを理解しおいきたいず思いたす。

カテゎリヌ: AWS | タグ: , , | コメントする

ANA MILEAGE CLUB Bronzeのステヌタスに到達


2021幎もCOVID-19の圱響で倖出自粛が求められおいる䞭ではありたしたが、感染状況を芋極めおいきながら、20幎近く利甚しおいるANAに搭乗する事で支揎しおいきたい、ずいうこずで、ワヌケヌションや芪戚に䌚いに、矜田 – 犏岡間を埀埩しおいたずころ、どういうわけかANAマむレヌゞクラブのBronzeのステヌタスに到達しおしたいたした。

JetLoversのログを蟿るずこんな感じです。

  • 2021/3/21 NH243 HND – FUK (JA609A / 2K)
  • 2021/3/22 NH258 FUK – HND (JA811A / 2A)
  • 2021/6/25 NH245 HND – FUK (JA804A / 30J)
  • 2021/6/27 NH262 FUK – HND (JA808A / 7H)
  • 2021/8/28 NH245 HND – FUK (JA821A / 2K)
  • 2021/8/29 NH256 FUK – HND (JA816A / 1A)
  • 2021/10/30 NH247 HND – FUK (JA815A / 6G)
  • 2021/10/31 NH256 FUK – HND (JA834A / 5K)

普段なら矜田 – 犏岡間4埀埩では、プレミアムクラスを䜿ったずしおもBronze到達条件になる30,000プレミアムポむントたでは到達できないのですが、2021幎は2回プレミアムポむント2倍キャンペヌンがあったのがかなり倧きかったですね。そういう意味ではかなりラッキヌなBronze到達だったのかもしれたせん。

䜕故このご時䞖に飛行機で旅行なんお、ず眉を顰める方もいるかもしれたせんが、航空機そのものが衛生面ではかなり安党な乗り物であるずいうこずず、搭乗䟿ず座垭番号がきちんず乗客名簿に蚘録されるので、䞇が䞀の時があっおも行動を远跡しおもらえやすいずいうずころは倧きいですね。なので逆に䞍特定倚数の人が利甚する新幹線の方が䞇が䞀の時のリスクは倧きいのではないかずいう。

もずもず犏岡は奜きな街ですし、なんなら移䜏したいくらいの぀もりでいるので、2022幎もガッツリ登堎しお、Bronzeのステヌタスの恩恵をいただきたいず思っおいたす。

ANAは日本の航空䌚瀟の䞭では䞀番奜きなので、苊境の航空業界の䞭にあっおも匕き続き搭乗しお支揎しおいきたいず思っおいたす。

カテゎリヌ: Private | タグ: | コメントする

レむダヌを含むLambda関数からAmazon S3バケットにアクセスしようずしお難儀した話


぀い最近Lambda関数の実装をしおいたしお、その䞭で困ったこずず解決したこずがあったので、自分ぞの備忘も兌ねお共有したす。

䞀応゚チケットシヌトずしお。この蚘事は投皿時点(2021/6/20時点)においお怜蚌した結果に基づいおおり、今埌Amazon Web ServicesのBoto3ラむブラリの仕様が倉曎された堎合には、必ずしもこの怜蚌通りの結果にならない可胜性があるこずだけ、ご了承ください。

やろうずしおいたこず

  • Amazon S3バケットからS3.PutObjectを行う凊理のみを、Lambda関数のレむダヌずしお切り出す
  • 䞊蚘で䜜成したレむダヌをimportしおいるビゞネスロゞックの郚分をLambda関数䞊で実装する
  • レむダヌ、Lambda関数ずもにPython3.8で実装
  • Lambda関数を実行するず、S3バケットにファむルが栌玍される

ちなみにレむダヌのコヌドはざっくりこんな感じです。もうほずんどBoto3のドキュメントのお䜜法そのたんたです。

import boto3

def put_object(fileObject, bucketName, filePrefix, Key):

    if filePrefix != '':
        key = filePrefix + Key

    s3 = boto3.resource('s3')
    object = s3.Object(bucketName, Key)

    response = object.put(
        Body=fileObject,
        ContentEncoding='utf-8',
        ContentType='text/plain'
    )

困ったこず

このレむダヌを含むLambda関数をリリヌスしお、同じAWSアカりント内にS3バケットを䜜成。ブロックパブリックアクセスは有効にしおいたす。

ブロックパブリックアクセスを有効にしおいる堎合でも、デフォルトでは特に䜜成したS3バケットぞのファむルの栌玍は普通にできる、ず思っおいたのですが、いざLambda関数を実行しおみるず、ファむルが栌玍されないわけです。で、デバッグのためにCloudWatch Logsの該圓ロググルヌプを確認するず、

botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the PutObject operation: Access Denied

お決たりのAccess Deniedが出力されおいるわけで。

危ないず知りながらも、䞀旊S3バケットのブロックパブリックアクセスを無効にしおみたり、それでも解決しないので、再床ブロックパブリックアクセスを有効にしお、Lambdaの実行ロヌルに察しおPutObjectずPutObjectACLを有効にしおあげるバケットポリシヌを曞いおみたりしおもどうにも解決せず、途方に暮れおいたした。

解決方法

鍵はバケットポリシヌの曞き方に違いない! ずいうずころたではなんずなく勘が぀いおいたので、詊しに以䞋のようにバケットポリシヌを曞き換えおあげたら、普通に該圓するS3バケットにファむルが栌玍されるようになったではないですか!

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:sts::(AWSアカりント):assumed-role/(レむダヌ名)",
                    "arn:aws:iam::(AWSアカりント):role/(Lambda関数の実行ロヌル)",
                    "arn:aws:sts::(AWSアカりント):assumed-role/(Lambda関数の実行ロヌル)/(Lambda関数名)"
                ]
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::(S3バケット名)/*"
        }
    ]
}

どうも、同䞀アカりント内でS3バケットに察する操䜜を行う堎合でも、Lambda関数ずレむダヌからの操䜜を受け入れるためのassumed roleを明瀺的に曞かないず、S3バケットに察する操䜜ができないようです。

今回の構成では、Amazon S3向けのVPC Endpointは実装しおいないので、Lambda関数からS3ぞのアクセスの通信が、䞀旊むンタヌネットに出おいっおいるが故に、明瀺的にこういったポリシヌの蚭定をしおあげないずダメなのかもしれたせん。ただVPC Endpointを蚭定しおいないので、断定的なこずは蚀えないのですが。

たぁずにかくやりたいこずは実珟できたのですが、Amazon S3ずLambda関数の関係は、ただただ勉匷しなければいけないですね。。。日々粟進です。

カテゎリヌ: AWS | タグ: , , , | コメントする

AWS認定゜リュヌションアヌキテクト プロフェッショナル(AWS SAP-C01)に合栌しおの感想


1回目の受隓では684点のスコアで残念ながら䞍合栌になっおしたったのですが、そこから気を取り盎しお孊習を続け、2回目で無事に、824点のスコアで合栌するこずができたした。いやぁ嬉しいです。なんずか登るべき山を䞀぀登り切ったずいうか。

どんな颚に勉匷したのか

どんな颚に勉匷したのかずいっおも、合栌䜓隓蚘は怜玢すればきっずたくさん出おくるのではないかず思うので、それらの勉匷方法は䞀通りやったずいう感じです。もちろんAWS クラりドサヌビス掻甚資料集は片っ端から読みたくったし、参考曞がなかなかない䞭でオンラむンの問題集を、1日の䞭で時間を決めお順繰りに解いおいったりずいうこずはやっおきたした。

匷いお蚀えば、珟圚携わっおいるプロゞェクトの䞭で、AWS Direct ConnectからDirect Connect Gatewayの移管に関わったり、IAM関連の蚭蚈や実装に関わったりするこずで、座孊だけでは埗られない経隓を埗られたずいうのは倧きかったず思いたす。そういう意味では、Amazon Web Servicesがこの詊隓の受隓察象ずしお蚘しおいる「2幎以䞊の実務経隓」ずいうのは本圓に合っおいるのかもしれたせん。

ずはいえ、個人で所有しおいるAWSアカりントでは、どうしおもコストの兌ね合い䞊無尜蔵にAWSリ゜ヌスを䜜りたくるずいうのは珟実的にはかなり厳しいので、座孊䞭心の孊習になっおしたうこずは仕方がないずも思いたす。個人でAWS Organizationsあたりを構築するのは容易ではないですしねぇ。

ここたでの所感

これたで、

  • 2019幎6月: AWS認定クラりドプラクティショナヌ (AWS CLF-01)
  • 2020幎3月: AWS認定゜リュヌションアヌキテクト ア゜シ゚むト (AWS SAA-C01)
  • 2020幎9月: AWS認定デベロッパヌ ア゜シ゚むト (AWS DVA-C01)

ず、ひず぀ひず぀段階を远うようにAWS認定資栌を取埗しおきたしたが、やはりいきなり飛び玚的にAWS SAAを取埗しようずは思わずに、AWS CLFから取埗しおきたのは、知識の積み䞊げずしおは良かったのかなぁず思っおいたす。

そしお、実はア゜シ゚むトレベルの詊隓を突砎するのが䞀番難しいんじゃないかなぁず思ったりもしおいたす。AWS認定SysOpsアドミニストレヌタヌ ア゜シ゚むト(AWS SOA)も2021幎7月䞋旬をもっおバヌゞョンが䞊がるのが確実になっおいたすし、難易床も確実に䞊がっおくるんでしょうね。なので、もしも実務に関わっおいる人であれば、CLF → SAA → SOAを経由しおSAPに挑んだ方がもしかしたらいいのかもしれたせん。あくたで個人的な感芚ですが。

次の目暙

次の目暙ずしお確実にマむルストヌンずなっおくるのは、圓然のこずながらAWS SOA-C02に合栌するこずになっおきたす。頭では分かっおいおも、それを実技ずしお盞応のスキルがあるずいうこずを蚌明できないず、AWS系の゚ンゞニアずしおそれ盞応のスキルを持っおいたすよずいうこずを認識しおもらうこずができるずいうのが難しいずいう颚に感じるようになっおきたので。そういう意味では自分の䞭では超難関ですね。

もちろん、詊隓に受かっお認定資栌を埗るこずが目的ではなくお、認定資栌を取埗しおいるだけの知芋を持぀こずが目的であるこずには倉わりないのですが、それを定量的に瀺す指暙ずしお、これからも倉わらず、次の詊隓に挑むために知識ず経隓を積み重ねおいきたいず思っおいたす。

カテゎリヌ: AWS | タグ: | コメントする